Виртуальная машина сообщила о сбое при обработке расширения AzureDiskEncryption

#azure #azure-virtual-machine

#azure #azure-virtual-machine

Вопрос:

Я запускаю следующий скрипт:

 $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 : длительная операция завершилась неудачно со статусом «Сбой». Дополнительная информация:»Виртуальная машина сообщила о сбое при обработке расширения AzureDiskEncryption». Сообщение об ошибке: «Не удалось отправить данные DiskEncryptionData, проверить ввод по умолчанию, идентификаторы ресурсов и повторить операцию шифрования».’ Код ошибки: VMExtensionProvisioningError Сообщение об ошибке: виртуальная машина сообщила о сбое при обработке расширения ‘AzureDiskEncryption’. Сообщение об ошибке: «Не удалось отправить данные DiskEncryptionData, проверить вводы KeyVault, идентификаторы ресурсов и повторить операцию шифрования». Ошибка Target: Время начала: 23/2/19 14:10:59 Время окончания: 23/2/19 14:10:59

я проверил, что все значения правильно переданы команде set и никакие значения null не передаются.

Комментарии:

1. включен ли kv для шифрования диска? есть ли у вас разрешения на kv?

2. под фактическим ключом подписаны флажки encrypt / decrypt, sign, verify, wrap и unwrap key, но я не могу найти свойство с надписью enable для шифрования диска? это где-то еще? я создал хранилище ключей azure, ключ, виртуальную машину и жесткий диск и запустил команду powershell под той же учетной записью. есть ли способ убедиться, что у меня есть разрешения на доступ к хранилищу ключей? я могу получить к нему доступ через графический интерфейс

3. в разделе разрешения есть расширенные разрешения, вы можете включить KV для шифрования диска там

4. я смог найти политику доступа в хранилище ключей и заметил, что в соответствии с разрешениями ключа криптографические операции были запрещены. однако даже после пометки всех из них (шифровать, дешифровать, подписывать, проверять, переносить ключ, разворачивать ключ) выдается одно и то же сообщение об ошибке. через какое время изменения вступают в силу или мгновенно?

5. вам также нужны расширенные политики доступа, без них это не сработает. user-images.githubusercontent.com/2538465 /…

Ответ №1:

в этом случае OP необходимо включить хранилище ключей для шифрования диска в соответствии с расширенными политиками доступа.

введите описание изображения здесь

Ответ №2:

У меня была эта проблема, но я несколько дней ломал голову над приведенными ниже шагами, которые устранили мою проблему.

  1. Проверьте значения переменных $KeyVault, $DiskEncryptionKeyVaultUrl и $KeyVaultResourceId и убедитесь, что они не равны null или пустым.
  2. Если шаг 1 завершен, тщательно проверьте процесс создания хранилища ключей и убедитесь, находится ли оно в том же регионе, что и виртуальная машина, и включено ли шифрование диска:Set-AzureRmKeyVaultAccessPolicy -VaultName $keyVaultName — EnabledForDiskEncryption

Комментарии:

1. Поначалу включение этой политики не решило проблему для меня. Я запустил скрипт в облачной оболочке Azure и обнаружил, что сеанс, похоже, кэширует настройки keyvault. После того, как я закрыл сеанс и открыл новый, он сразу же заработал.

Ответ №3:

Если вы все еще сталкиваетесь с проблемой, вы можете попробовать это:

  1. Перейдите на диск виртуальной машины, который необходимо зашифровать.
  2. Нажмите Идентификация
  3. Измените статус на «ВКЛЮЧЕНО» для назначенной системы или пользователя.

введите описание изображения здесь

Затем выполните приведенные ниже команды. Оно доступно с объяснением на https://learn.microsoft.com/en-us/azure/virtual-machines/windows/encrypt-disks

$KeyVault = Get-AzKeyVault -имя_хранения $keyVaultName -имя_ресурсной группы $rgName;

$diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;

$keyVaultResourceId = $KeyVault.Идентификатор ресурса;

$keyEncryptionKeyUrl = (Get-AzKeyVaultKey -Имя хранилища $keyVaultName -Имя MyKey).Key.kid;

Set-AzVMDiskEncryptionExtension -ResourceGroupName $rgName `

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