根据微软的文档和示例,应该可以配置 Azure 磁盘加密没有使用 Azure AD;例如https://docs.microsoft.com/en-us/azure/security/azure-security-disk-encryption-windows我们有以下内容:
$rgName = 'MySecureRg';
$vmName = 'MySecureVM';
$KeyVaultName = 'MySecureVault';
$KeyVault = Get-AzureRmKeyVault -VaultName $KeyVaultName -ResourceGroupName $rgname;
$diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
$KeyVaultResourceId = $KeyVault.ResourceId;
Set-AzureRmVMDiskEncryptionExtension -ResourceGroupName $rgname -VMName $vmName -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId;
然而,当我们尝试运行该脚本(当然,用我们自己的名称替换变量值)时,我们得到:
Set-AzureRmVmDiskEncryptionExtension : The input object cannot be bound because it did not contain the information
required to bind all mandatory parameters: AadClientID AadClientSecret
审查文件设置 AzureRmVmDiskEncryptionExtension我们再次看到几个不使用 Azure AD 的示例,包括非常明确的示例 1(这只是上述示例的一个变体),其中指出:
此示例演示了如何在不指定 AD 凭据的情况下启用加密。
那么:这里缺少什么吗?我们是否有办法在不使用 Azure AD 的情况下启用磁盘加密,或者文档和示例有误,我们确实需要 Azure AD?
补充信息:
- Azure Powershell 是最新版本。
- 过去没有使用过带有 Azure AD App 的 Azure 磁盘加密。
- 我已查看了概述文档并确认不存在任何不受支持的情形。
答案1
我无法添加评论,所以我将这样做。您以前是否使用过 Azure 磁盘加密和 Azure AD 应用?那么,如果没有 Azure AD,您将无法使用该命令。
警告如果您以前使用过使用 Azure AD 进行 Azure 磁盘加密 应用程序加密此 VM,则您必须继续使用此选项来加密您的 VM。您无法在此加密 VM 上使用 Azure 磁盘加密,因为这不是受支持的方案,这意味着尚不支持从此加密 VM 的 AAD 应用程序切换。
答案2
我们与 MS Azure 支持部门合作,使用 Azure 快速启动模板解决了这个问题https://azure.microsoft.com/en-us/resources/templates/201-encrypt-running-windows-vm-without-aad/(“在没有 AAD 的情况下在正在运行的 Windows VM 上启用加密”)。
缺失的信息是我们必须在我们的密钥保管库中生成一个密钥,然后访问该密钥的当前版本,检索其密钥标识符网址,并将其作为模板的输入(在“密钥加密密钥网址”字段中)。
似乎也可以通过向原始 Powershell 脚本提供适当的 KEK 参数来解决此问题,但我们尚未测试过。
结论似乎是,尽管 KEK 被标记为可选,但如果您希望在没有 AAD 的情况下加密,它实际上是强制性的。