【问题标题】:VM has reported a failure when processing extension AzureDiskEncryption处理扩展 AzureDiskEncryption 时 VM 报告失败
【发布时间】:2019-12-04 14:02:47
【问题描述】:

我正在运行以下脚本:

$keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $rgName;
$diskEncryptionKeyVaultUrl = $keyVault.VaultUri;
$keyVaultResourceId = $keyVault.ResourceId;
$keyEncryptionKeyUrl = (Get-AzureKeyVaultKey -VaultName $keyVaultName -Name myKey).Key.kid;

Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgName `
-VMName "myVM" `
-DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
-DiskEncryptionKeyVaultId $keyVaultResourceId `
-KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
-KeyEncryptionKeyVaultId $keyVaultResourceId

返回以下大约 1 分钟的处理:

Set-AzureRmVmDiskEncryptionExtension:长时间运行操作失败 状态为“失败”。附加信息:'VM 报告失败时 处理扩展“AzureDiskEncryption”。错误信息:“未能 发送 DiskEncryptionData、检查 KeyVault 输入、ResourceIds 并重试 加密操作”。错误代码:VMExtensionProvisioningError ErrorMessage:VM 在处理扩展时报告失败 'AzureDiskEncryption'。错误信息:“发送失败 DiskEncryptionData,检查 KeyVault 输入、ResourceIds 并重试 加密操作”。错误目标:开始时间:3/2/19 2:10:59 PM 结束时间:2019 年 3 月 2 日下午 2:10:59

我已验证所有值都正确传递给了 set 命令,并且没有传递任何空值。

【问题讨论】:

  • kv 是否启用了磁盘加密?你有 kv 的权限吗?
  • 在实际密钥下,它具有加密/解密、签名、验证、包装和解包密钥复选框,​​但我找不到启用磁盘加密的属性?那是别的地方吗?我创建了 azure 密钥库、密钥、虚拟机和硬盘,并在同一帐户下运行 powershell 命令。有什么方法可以确保我有权访问密钥保管库?我可以通过 GUI 很好地访问它
  • 权限下,有高级权限,可以在那里开启KV进行磁盘加密
  • 我可以在密钥库下找到访问策略,并注意到在密钥权限下不允许加密操作。然而,即使勾选了所有这些(加密、解密、签名、验证、包装密钥、解包密钥),抛出的错误消息也是一样的。更改是否有一定的时间或瞬间生效?
  • 您还需要高级访问策略,没有它们就无法工作。 user-images.githubusercontent.com/2538465/…

标签: azure azure-virtual-machine


【解决方案1】:

在这种情况下,OP 需要根据高级访问策略启用 Key Vault 以进行磁盘加密。

【讨论】:

    【解决方案2】:

    我遇到了这个问题,但是几天来我一直在头疼,下面的步骤解决了我的问题。

    1. 检查 $KeyVault、$DiskEncryptionKeyVaultUrl 和 $KeyVaultResourceId 的值 变量并确保它们不为 null 或为空。
    2. 如果步骤 1 已完成,请彻底检查 Key Vault 创建过程,然后 检查它是否与 VM 位于同一区域并且已启用 用于磁盘加密:Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName - EnabledForDiskEncryption

    【讨论】:

    • 启用此策略起初并没有解决我的问题。我在 Azure 云 shell 中运行脚本,发现会话似乎缓存了 keyvault 设置。在我关闭会话并打开一个新会话后,它立即生效。
    【解决方案3】:

    如果你仍然遇到这个问题,你可以试试这个:

    1. 转到需要加密的虚拟机磁盘。
    2. 点击身份
    3. 为分配的系统或用户将状态设置为“开启”。

    然后执行以下命令。 可在https://docs.microsoft.com/en-us/azure/virtual-machines/windows/encrypt-disks上获得解释

    $keyVault = Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $rgName;

    $diskEncryptionKeyVaultUrl = $keyVault.VaultUri;

    $keyVaultResourceId = $keyVault.ResourceId;

    $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $keyVaultName -Name myKey).Key.kid;

    Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgName `

    -VMName "myVM" 
    -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl `
    -DiskEncryptionKeyVaultId $keyVaultResourceId `
    -KeyEncryptionKeyUrl $keyEncryptionKeyUrl `
    -KeyEncryptionKeyVaultId $keyVaultResourceId$
    

    【讨论】:

      猜你喜欢
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 2018-09-16
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      相关资源
      最近更新 更多