Поделиться через


Включение Шифрование дисков Azure с идентификатором Microsoft Entra на виртуальных машинах Linux (предыдущий выпуск)

Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы

Новый выпуск Шифрование дисков Azure устраняет требование для предоставления параметра приложения Microsoft Entra для включения шифрования дисков виртуальной машины. В новом выпуске больше не требуется предоставлять учетные данные Microsoft Entra во время включения шага шифрования. Все новые виртуальные машины должны быть зашифрованы без параметров приложения Microsoft Entra с помощью нового выпуска. Инструкции по включению шифрования дисков виртуальных машин при использовании нового выпуска см. в статье Шифрование дисков Azure для виртуальных машин под управлением Linux. Виртуальные машины, которые уже зашифрованы с параметрами приложения Microsoft Entra, по-прежнему поддерживаются и должны продолжать поддерживаться с помощью синтаксиса Microsoft Entra.

Доступно несколько сценариев включения шифрования дисков, и последовательность действий для каждого может отличаться. В следующих разделах более подробно рассматриваются сценарии для виртуальных машин Linux "инфраструктура как услуга" (IaaS). Шифрование дисков можно применить только к виртуальным машинам поддерживаемых размеров и операционных систем. Также необходимы следующие элементы:

Прежде чем зашифровать диски, сделайте моментальный снимок, резервную копию или и то, и другое. Резервные копии обеспечивают возможность восстановления в случае любого непредвиденного сбоя во время шифрования. Для виртуальных машин с управляемыми дисками необходимо создать резервную копию до начала шифрования. После создания резервной копии можно зашифровать управляемые диски с помощью командлета Set-AzVMDiskEncryptionExtension с параметром -skipVmBackup. Дополнительные сведения о резервном копировании и восстановлении зашифрованных виртуальных машин см. в статье Резервное копирование Azure.

Предупреждение

  • Если вы ранее использовали Шифрование дисков Azure с приложением Microsoft Entra для шифрования этой виртуальной машины, необходимо продолжить использовать этот параметр для шифрования виртуальной машины. Вы не можете использовать Шифрование дисков Azure на этой зашифрованной виртуальной машине, так как это не поддерживается, что означает отключение от приложения Microsoft Entra для этой зашифрованной виртуальной машины еще не поддерживается.
  • Чтобы убедиться, что секреты шифрования не пересекают региональные границы, для шифрования дисков Azure требуется, чтобы хранилище ключей и виртуальные машины были расположены в одном регионе. Создайте и используйте хранилище ключей, которое находится в том же регионе, что и виртуальная машина, которую требуется зашифровать.
  • Шифрование томов ОС Linux может занять несколько часов. Обычно для шифрования томов ОС Linux требуется больше времени, чем для томов данных.
  • При шифровании томов ОС Linux виртуальная машина должна считаться недоступной. Настоятельно рекомендуется избегать входа по протоколу SSH во время шифрования, чтобы избежать блокировки открытых файлов, к которым необходимо получить доступ во время процесса шифрования. Чтобы проверить ход выполнения, используйте команды Get-AzVMDiskEncryptionStatus или vm encryption show. Можно ожидать, что этот процесс займет несколько часов для тома ОС размером 30 ГБ, а также дополнительное время для шифрования томов данных. Если не используется параметр шифрования всех форматов, время шифрования тома данных соответствует размеру и количеству томов данных.
  • Отключение шифрования на виртуальных машинах Linux поддерживается только для томов данных. Отключение не поддерживается для томов данных или ОС, если том ОС был зашифрован.

Включение шифрования на виртуальной машине IaaS под управлением Linux, которая уже существует или работает

В этом сценарии шифрование можно включить с помощью шаблона Azure Resource Manager, командлетов PowerShell или команд Azure CLI.

Внимание

Требуется обязательно создать моментальный снимок или резервную копию экземпляра виртуальной машины на основе управляемого диска вне шифрования дисков Azure и перед включением этой функции. Можно создать моментальный снимок управляемого диска из портала Azure или использовать резервное копирование Azure. Резервные копии обеспечивают возможность восстановления при любом непредвиденном сбое во время шифрования. После создания резервной копии можно зашифровать управляемые диски с помощью командлета Set-AzVMDiskEncryptionExtension с использованием параметра -skipVmBackup. Команда Set-AzVMDiskEncryptionExtension завершается ошибкой для виртуальных машин на основе управляемых дисков до тех пор, пока не будет выполнено резервное копирование и не будет указан этот параметр.

Шифрование или отключение шифрования может привести к перезагрузке виртуальной машины.

Включение шифрования на существующей или работающей виртуальной машине Linux с помощью Azure CLI

Можно включить шифрование дисков для зашифрованного виртуального жесткого диска, установив программу командной строки Azure CLI 2.0. Его можно использовать в браузере с Azure Cloud Shell, а также установить на локальном компьютере и использовать в любом сеансе PowerShell. Чтобы включить шифрование на виртуальных машинах IaaS под управлением Linux, которые уже существуют или работают в Azure, используйте следующие команды CLI.

Используйте команду az vm encryption enable, чтобы включить шифрование на работающей виртуальной машине IaaS в Azure.

  • Шифрование работающей виртуальной машины с использованием секрета клиента:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI/my Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault "MySecureVault" --volume-type [All|OS|Data]
    
  • Шифрование работающей виртуальной машины с применением ключа шифрования ключей для упаковки секрета клиента:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI which is the Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type [All|OS|Data]
    

    Примечание.

    Синтаксис значения параметра disk-encryption-keyvault – это полная строка идентификатора: /subscriptions/[ИД или GUID подписки]/resourceGroups/[имя группы ресурсов]/providers/Microsoft.KeyVault/vaults/[имя хранилища ключей].

    Синтаксис параметра key-encryption-key — полный универсальный код ресурса (URI) KEK, как и в: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

  • Проверка того, что диски зашифрованы: чтобы проверить состояние шифрования виртуальной машины IaaS, используйте команду az vm encryption show.

        az vm encryption show --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup"
    
  • Отключение шифрования. Чтобы отключить шифрование, используйте команду az vm encryption disable. Для виртуальных машин Linux отключение шифрования возможно только для томов данных.

        az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type DATA
    

Включение шифрования на существующей или работающей виртуальной машине Linux с помощью PowerShell

Используйте командлет Set-AzVMDiskEncryptionExtension, чтобы включить шифрование на работающей виртуальной машине IaaS в Azure. Создайте моментальный снимок или сделайте резервную копию виртуальной машины с помощью резервного копирования Azure перед шифрованием дисков. Параметр -skipVmBackup уже указан в сценариях PowerShell для шифрования работающей виртуальной машины Linux.

  • Шифрование работающей виртуальной машины с использованием секрета клиента: следующий сценарий инициализирует переменные и запускает командлет Set-AzVMDiskEncryptionExtension. Группа ресурсов, виртуальная машина, хранилище ключей, приложение Microsoft Entra и секрет клиента уже должны быть созданы в качестве предварительных требований. Замените MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID и My-AAD-client-secret своими значениями. Измените значение параметра -VolumeType, чтобы указать диски, для которых выполняется шифрование.

        $VMRGName = 'MyVirtualMachineResourceGroup';
        $KVRGname = 'MyKeyVaultResourceGroup';
        $vmName = 'MySecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    
  • Шифрование работающей виртуальной машины с использованием ключа шифрования ключей для упаковки секрета клиента: шифрование дисков Azure позволяет указать существующий ключ из хранилища ключей для упаковки секретов шифрования диска, которые были сгенерированы при включении шифрования. Когда ключ шифрования ключей указан, шифрование дисков Azure использует его для упаковки секретов шифрования перед записью в хранилище ключей. Измените значение параметра -VolumeType, чтобы указать диски, для которых выполняется шифрование.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $keyEncryptionKeyName = 'MyKeyEncryptionKey';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType '[All|OS|Data]' -SequenceVersion $sequenceVersion -skipVmBackup;
    

    Примечание.

    Синтаксис значения параметра disk-encryption-keyvault – это полная строка идентификатора: /subscriptions/[ИД или GUID подписки]/resourceGroups/[имя группы ресурсов хранилища ключей]/providers/Microsoft.KeyVault/vaults/[имя хранилища ключей].

    Синтаксис параметра key-encryption-key — полный универсальный код ресурса (URI) KEK, как и в: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

  • Проверка того, что диски зашифрованы: чтобы проверить состояние шифрования виртуальной машины IaaS, используйте командлет Get-AzVmDiskEncryptionStatus.

        Get-AzVmDiskEncryptionStatus -ResourceGroupName MyVirtualMachineResourceGroup -VMName MySecureVM
    
  • Отключение шифрования дисков. Для отключения шифрования используйте командлет Disable-AzureRmVMDiskEncryption. Для виртуальных машин Linux отключение шифрования возможно только для томов данных.

        Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM'
    

Включение шифрования на существующей или работающей виртуальной машине с помощью шаблона

Включить шифрование дисков на существующих или работающих виртуальных машинах IaaS под управлением Linux в Azure можно с помощью шаблона Resource Manager.

  1. Выберите Развернуть в Azure на странице шаблона быстрого запуска Azure.

  2. Выберите подписку, группу ресурсов, расположение группы ресурсов, параметры, условия использования и соглашение. Нажмите кнопку Создать, чтобы включить шифрование на существующей или работающей виртуальной машине IaaS.

В следующей таблице перечислены параметры шаблона Resource Manager для существующих или работающих виртуальных машин, использующих идентификатор клиента Microsoft Entra:

Параметр Описание
AADClientID Идентификатор клиента приложения Microsoft Entra, имеющего разрешения на запись секретов в хранилище ключей.
AADClientSecret Секрет клиента приложения Microsoft Entra с разрешениями на запись секретов в хранилище ключей.
keyVaultName Имя хранилища ключей, в которое будет передан ключ. Его можно получить с помощью команды интерфейса командной строки Azure az keyvault show --name "MySecureVault" --query KVresourceGroup.
keyEncryptionKeyURL URL-адрес ключа шифрования ключей, который используется для шифрования созданного ключа. Это необязательный параметр, если выбрать nokek из раскрывающегося списка UseExistingKek. Если выбрать kek из раскрывающегося списка UseExistingKek, необходимо ввести значение keyEncryptionKeyURL.
volumeType Тип тома, для которого будет выполняться шифрование. Допустимые поддерживаемые значения: ОС или ВСЕ. (См. поддерживаемые дистрибутивы Linux и их версии для ОС и дисков данных в приведенном ранее разделе предварительных требований.)
sequenceVersion Версия последовательности операций с BitLocker. Этот номер версии увеличивается каждый раз, когда шифрование диска выполняется на той же виртуальной машине.
vmName Имя виртуальной машины, для которой будет выполняться шифрование.
passphrase Введите надежную парольную фразу, которая будет служить ключом шифрования данных.

Использование функции EncryptFormatAll для дисков данных на виртуальных машинах IaaS Linux

Параметр EncryptFormatAll сокращает время шифрования дисков данных Linux. Разделы, отвечающие определенным критериям, форматируются (в соответствии с их текущей файловой системой). Затем они снова подключаются туда, куда были подключены до выполнения команд. Если требуется исключить диск данных, который соответствует критериям, можно отключить его перед выполнением команды.

После выполнения этой команды все диски, которые были подключены ранее, будут отформатированы. Уровень шифрования запускается поверх теперь уже пустого диска. Если выбран этот параметр, временный диск, подключенный к виртуальной машине, также будет шифроваться. Если временный диск сбрасывается, при следующей возможности он будет переформатирован и повторно зашифрован для виртуальной машины с помощью шифрования дисков Azure.

Предупреждение

Параметр EncryptFormatAll не следует использовать, если в томах данных виртуальной машины есть нужные данные. Можно исключить диски из шифрования, отключив их. Сначала попробуйте использовать параметр EncryptFormatAll на тестовой виртуальной машине, чтобы понять его функцию и последствия использования, а уже потом используйте его на рабочих виртуальных машинах. Параметр EncryptFormatAll форматирует диск данных, и все данные на этом диске будут утеряны. Прежде чем продолжить, убедитесь, что все диски, которые требуется исключить, правильно отключены.

Если этот параметр устанавливается при обновлении параметров шифрования, это может привести к перезагрузке перед фактическим выполнением шифрования. В этом случае необходимо также удалить из файла fstab диск, который не требуется форматировать. Аналогично перед началом операции шифрования нужно добавить в файл fstab раздел, который требуется отформатировать и зашифровать.

Критерии EncryptFormatAll

Параметр проходит через все разделы и шифрует их, если они соответствуют всем приведенным ниже критериям:

  • это не корневой или загрузочный раздел, а также не раздел операционной системы;
  • этот раздел еще не зашифрован;
  • это не том BEK;
  • это не том RAID;
  • это не том LVM;
  • он подключен.

Выполняйте шифрование дисков, которые составляют том RAID или LVM, а не самого тома RAID или LVM.

Использование параметра EncryptFormatAll с шаблоном

Чтобы использовать параметр EncryptFormatAll, в любом готовом шаблоне Azure Resource Manager, который используется для шифрования виртуальной машины Linux, измените поле EncryptionOperation для ресурса AzureDiskEncryption.

  1. Например, используйте шаблон Resource Manager для шифрования работающей виртуальной машины IaaS под управлением Linux.
  2. Выберите Развернуть в Azure на странице шаблона быстрого запуска Azure.
  3. Измените значение поля EncryptionOperation с EnableEncryption на EnableEncryptionFormatAl.
  4. Выберите подписку, группу ресурсов, расположение группы ресурсов, другие параметры, условия использования и соглашение. Нажмите кнопку Создать, чтобы включить шифрование на существующей или работающей виртуальной машине IaaS.

Использование параметра EncryptFormatAll с командлетом PowerShell

Используйте командлет Set-AzVMDiskEncryptionExtension с параметром EncryptFormatAll.

Шифрование на работающей виртуальной машине с использованием секрета клиента и параметра EncryptFormatAll: например, следующий сценарий инициализирует переменные и запускает командлет Set-AzVMDiskEncryptionExtension с параметром EncryptFormatAll. Группа ресурсов, виртуальная машина, хранилище ключей, приложение Microsoft Entra и секрет клиента уже должны быть созданы в качестве предварительных требований. Замените MyKeyVaultResourceGroup, MyVirtualMachineResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID и My-AAD-client-secret своими значениями.

  $KVRGname = 'MyKeyVaultResourceGroup';
  $VMRGName = 'MyVirtualMachineResourceGroup';
  $aadClientID = 'My-AAD-client-ID';
  $aadClientSecret = 'My-AAD-client-secret';
  $KeyVaultName = 'MySecureVault';
  $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
  $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
  $KeyVaultResourceId = $KeyVault.ResourceId;

  Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -EncryptFormatAll

Использование параметра EncryptFormatAll с диспетчером логических томов (LVM)

Рекомендуем установить LVM-on-crypt. Для всех следующих примеров замените путь к устройству и точки подключения в соответствии с вашим вариантом использования. Эту настройку можно выполнить следующим образом.

  • Добавить диски данных, которые составляют виртуальную машину.

  • Форматировать, подключить и добавить эти диски в FSTAB-файл.

    1. Отформатируйте добавленный диск. Здесь мы используем символические ссылки, созданные Azure. Использование символических ссылок позволяет избежать проблем, связанных с изменениями имен устройств. Дополнительные сведения см. в статье Устранение неполадок с именами устройств.

      mkfs -t ext4 /dev/disk/azure/scsi1/lun0
      
    2. Подключите диски.

      mount /dev/disk/azure/scsi1/lun0 /mnt/mountpoint
      
    3. Добавьте сведения в FSTAB-файл.

      echo "/dev/disk/azure/scsi1/lun0 /mnt/mountpoint ext4 defaults,nofail 1 2" >> /etc/fstab
      
    4. Выполните командлет PowerShell Set-AzVMDiskEncryptionExtension с параметром -EncryptFormatAll для шифрования этих дисков.

       Set-AzVMDiskEncryptionExtension -ResourceGroupName "MySecureGroup" -VMName "MySecureVM" -DiskEncryptionKeyVaultUrl "https://mykeyvault.vault.azure.net/" -EncryptFormatAll
      
    5. Настройте диспетчер логических томов поверх новых дисков. Обратите внимание, что зашифрованные диски разблокируются после завершения загрузки виртуальной машины. Таким образом, подключение диспетчера логических томов также придется отложить.

Новые виртуальные машины IaaS, при создании которых используются зашифрованные виртуальные жесткие диски и ключи шифрования

В этом сценарии шифрование можно включить с помощью шаблона Resource Manager, командлетов PowerShell или команд интерфейса командной строки. В следующих разделах более подробно описаны шаблон Resource Manager и команды интерфейса командной строки.

Следуйте инструкциям, приведенным в приложении к этой статье, чтобы подготовить предварительно зашифрованные образы, которые можно использовать в Azure. После создания образа выполните действия, описанные в следующем разделе, чтобы создать зашифрованную виртуальную машину Azure.

Внимание

Требуется обязательно создать моментальный снимок или резервную копию экземпляра виртуальной машины на основе управляемого диска вне шифрования дисков Azure и перед включением этой функции. Можно создать моментальный снимок управляемого диска из портала или использовать резервное копирование Azure. Резервные копии обеспечивают возможность восстановления при любом непредвиденном сбое во время шифрования. После создания резервной копии можно зашифровать управляемые диски с помощью командлета Set-AzVMDiskEncryptionExtension с использованием параметра -skipVmBackup. Команда Set-AzVMDiskEncryptionExtension завершается ошибкой для виртуальных машин на основе управляемых дисков до тех пор, пока не будет выполнено резервное копирование и не будет указан этот параметр.

Шифрование или отключение шифрования может привести к перезагрузке виртуальной машины.

Использование Azure PowerShell для шифрования виртуальных машин IaaS с предварительно зашифрованными виртуальными жесткими дисками

Можно включить шифрование дисков для зашифрованного виртуального жесткого диска с помощью командлета PowerShell Set-AzVMOSDisk. В следующем примере приведены некоторые общие параметры.

$VirtualMachine = New-AzVMConfig -VMName "MySecureVM" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "SecureOSDisk" -VhdUri "os.vhd" Caching ReadWrite -Windows -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName "MyVirtualMachineResourceGroup"

Включение шифрования на добавленном диске данных

Новый диск данных можно добавить с помощью команды az vm disk attach или через портал Azure. Прежде чем запустить шифрование, необходимо подключить только что присоединенный диск данных. Нужно запросить шифрование диска данных, поскольку диск будет неработоспособным во время шифрования.

Включение шифрования на добавленном диске данных с помощью Azure CLI

Если виртуальная машина ранее была зашифрована со значением "All", то в дальнейшем значение параметра --volume-type должно оставаться "All". Значение "All" включает как диски ОС, так и диски данных. Если виртуальная машина была зашифрована с типом тома "OS", в дальнейшем параметр --volume-type следует заменить на "All", чтобы были включены диск ОС и новый диск данных. Если виртуальная машина была зашифрована с типом тома "Data", то в дальнейшем он может оставаться со значением "Data", как это показано здесь. Добавления и присоединения нового диска данных к виртуальной машине недостаточно для подготовки к шифрованию. Вновь подключенный диск также должен быть отформатирован и правильно подключен к виртуальной машине перед включением шифрования. В Linux диск монтируется в /etc/fstab с постоянным именем блочного устройства.

В отличие от синтаксиса PowerShell, интерфейс командной строки не требует предоставления уникальной версии последовательности при включении шифрования. CLI автоматически создает и использует свое собственное уникальное значение версии последовательности.

  • Шифрование работающей виртуальной машины с использованием секрета клиента:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI/my Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault "MySecureVault" --volume-type "Data"
    
  • Шифрование работающей виртуальной машины с применением ключа шифрования ключей для упаковки секрета клиента:

        az vm encryption enable --resource-group "MyVirtualMachineResourceGroup" --name "MySecureVM" --aad-client-id "<my spn created with CLI which is the Azure AD ClientID>"  --aad-client-secret "My-AAD-client-secret" --disk-encryption-keyvault  "MySecureVault" --key-encryption-key "MyKEK_URI" --key-encryption-keyvault "MySecureVaultContainingTheKEK" --volume-type "Data"
    

Включение шифрования на добавленном диске данных с помощью Azure PowerShell

При использовании PowerShell для шифрования нового диска для Linux необходимо указать новую версию последовательности. Версия последовательности должна быть уникальной. Следующий сценарий создает GUID для версии последовательности.

  • Шифрование работающей виртуальной машины с использованием секрета клиента: следующий сценарий инициализирует переменные и запускает командлет Set-AzVMDiskEncryptionExtension. Группа ресурсов, виртуальная машина, хранилище ключей, приложение Microsoft Entra и секрет клиента уже должны быть созданы в качестве предварительных требований. Замените MyVirtualMachineResourceGroup, MyKeyVaultResourceGroup, MySecureVM, MySecureVault, My-AAD-client-ID и My-AAD-client-secret своими значениями. Для параметра -VolumeType устанавливаются диски данных, а не диск операционной системы. Если виртуальная машина была зашифрована с типом тома "OS" или All, в дальнейшем параметр -VolumeType следует заменить на "All", чтобы были включены диск ОС и новый диск данных.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $vmName = 'MySecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion;
    
  • Шифрование работающей виртуальной машины с использованием ключа шифрования ключей для упаковки секрета клиента: шифрование дисков Azure позволяет указать существующий ключ из хранилища ключей для упаковки секретов шифрования диска, которые были сгенерированы при включении шифрования. Когда ключ шифрования ключей указан, шифрование дисков Azure использует его для упаковки секретов шифрования перед записью в хранилище ключей. Для параметра -VolumeType устанавливаются диски данных, а не диск операционной системы. Если виртуальная машина была зашифрована с типом тома "OS" или All, в дальнейшем параметр -VolumeType следует заменить на "All", чтобы были включены диск ОС и новый диск данных.

        $KVRGname = 'MyKeyVaultResourceGroup';
        $VMRGName = 'MyVirtualMachineResourceGroup';
        $vmName = 'MyExtraSecureVM';
        $aadClientID = 'My-AAD-client-ID';
        $aadClientSecret = 'My-AAD-client-secret';
        $KeyVaultName = 'MySecureVault';
        $keyEncryptionKeyName = 'MyKeyEncryptionKey';
        $KeyVault = Get-AzKeyVault -VaultName $KeyVaultName -ResourceGroupName $KVRGname;
        $diskEncryptionKeyVaultUrl = $KeyVault.VaultUri;
        $KeyVaultResourceId = $KeyVault.ResourceId;
        $keyEncryptionKeyUrl = (Get-AzKeyVaultKey -VaultName $KeyVaultName -Name $keyEncryptionKeyName).Key.kid;
        $sequenceVersion = [Guid]::NewGuid();
    
        Set-AzVMDiskEncryptionExtension -ResourceGroupName $VMRGName -VMName $vmName -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $diskEncryptionKeyVaultUrl -DiskEncryptionKeyVaultId $KeyVaultResourceId -KeyEncryptionKeyUrl $keyEncryptionKeyUrl -KeyEncryptionKeyVaultId $KeyVaultResourceId -VolumeType 'data' –SequenceVersion $sequenceVersion;
    

Примечание.

Синтаксис значения параметра disk-encryption-keyvault – это полная строка идентификатора: /subscriptions/[ИД или GUID подписки]/resourceGroups/[имя группы ресурсов]/providers/Microsoft.KeyVault/vaults/[имя хранилища ключей].

Синтаксис параметра key-encryption-key — полный универсальный код ресурса (URI) KEK, как и в: https://[keyvault-name].vault.azure.net/keys/[kekname]/[kek-unique-id].

Отключение шифрования для виртуальных машин Linux

Можно отключить шифрование с помощью Azure PowerShell, Azure CLI или шаблона Resource Manager.

Внимание

Отключение шифрования, выполняемого с помощью службы шифрования Azure, на виртуальных машинах Linux поддерживается только для томов данных. Отключение не поддерживается для томов данных или ОС, если том ОС был зашифрован.

  • Отключение шифрования дисков с помощью Azure PowerShell: для отключения шифрования используйте командлет Disable-AzureRmVMDiskEncryption.

        Disable-AzVMDiskEncryption -ResourceGroupName 'MyVirtualMachineResourceGroup' -VMName 'MySecureVM' [--volume-type {ALL, DATA, OS}]
    
  • Отключение шифрования с помощью Azure CLI. Для отключения шифрования используйте команду az vm encryption disable.

        az vm encryption disable --name "MySecureVM" --resource-group "MyVirtualMachineResourceGroup" --volume-type [ALL, DATA, OS]
    
  • Отключение шифрования с помощью шаблона Resource Manager: для отключения используйте шаблон Отключение шифрования на работающей виртуальной машине Linux.

    1. Выберите Развернуть в Azure.
    2. Выберите подписку, группу ресурсов, расположение, виртуальную машину, условия использования и соглашение.
    3. Нажмите кнопку Покупка, чтобы отключить шифрование дисков на работающей виртуальной машине Windows.

Следующие шаги