Пошаговое руководство: использование шифрования диска на виртуальных машинах Microsoft Azure

В прошлом процесс шифрования виртуальной машины в Microsoft Azure требовал наличия учетной записи приложения Azure AD для выполнения этой работы. В настоящее время у нас есть более простой способ шифрования наших виртуальных машин в Microsoft Azure, и этот новый метод имеет интеграцию с порталом Azure. В этой статье мы рассмотрим основы включения шифрования с использованием нового метода, включая создание Azure Key Vault. Мы также включим шаги, которые можно выполнить на портале Azure, и командлеты/функции PowerShell для поддержки процесса шифрования. Нет процесса перехода от предыдущего метода к этому новому. Рекомендуется использовать этот новый метод в будущем.
Подготовка хранилища ключей
Первым шагом является создание Key Vault. Войдите на портал Azure, нажмите «Создать ресурс», введите и в новой колонке нажмите «Создать». Появится новый мастер, который позволит нам настроить все основные параметры, необходимые для начала использования нового Key Vault с шифрованием диска. На вкладке укажите имя, регион и ресурс. Нажмите «Далее: политика доступа». Во вкладке . Отметьте параметр Шифрование диска Azure для шифрования тома, нажмите Проверить + создать, чтобы начать подготовку Key Vault.
Примечание. Если вы используете топологию «концентратор и луч», правильным подходом будет использование Key Vault в области общей инфраструктуры в концентраторе. Таким образом, все ваши зашифрованные виртуальные машины будут использовать централизованное хранилище ключей для извлечения и шифрования своих дисков.
Если вы пропустили приведенную выше конфигурацию и только что создали Key Vault, мы всегда можем включить шифрование диска, выбрав Политики доступа в свойствах Key Vault.
После создания Key Vault нашим следующим шагом будет создание первого набора ключей, которые будут использоваться для шифрования наших дисков. Откройте только что созданное Key Vault, нажмите Keys, а затем нажмите Generate/Import.
На странице выберите «Создать » и введите имя нового ключа. (В нашем примере мы помечаем PROD-DiskEncryption, потому что собираемся использовать этот единственный ключ для всей среды PROD.)
Определите тип ключа, размер ключа RSA, и мы можем определить активацию и срок действия ключа. Нажмите «Создать».
Шифрование виртуальной машины с помощью портала Azure
В настоящее время портал Azure предлагает простой способ шифрования вашей виртуальной машины с интеграцией с Azure Key Vault. В виртуальной машине, где мы хотим зашифровать диск, нажмите «Диски» (пункт 1), и появится список всех существующих дисков, связанных с данной виртуальной машиной.
В пункте 3 мы можем увидеть текущий статус шифрования для любого заданного диска. Чтобы начать процесс шифрования, нажмите «Шифрование» (пункт 2).
В новом блейде у нас есть три варианта: Нет (без шифрования), Диск ОС (только операционная система) или Диски ОС и данных (все диски в ВМ).
А пока давайте выберем только диск ОС и можем заполнить необходимую информацию (Key Vault, ключ и версию). Однако мы можем воспользоваться ссылкой Выберите хранилище ключей и ключ для шифрования. Эта ссылка предоставит раскрывающееся меню со всеми Key Vault, ключами и версиями, доступными в вашей текущей среде, выберите ключ, который мы только что создали, и нажмите «Выбрать и сохранить».
Как только вы нажмете «Сохранить», появится диалоговое окно с запросом на подтверждение. Нажмите Да. Этот процесс приведет к перезапуску виртуальной машины. Убедитесь, что вы делаете это во время запланированного периода обслуживания.
В рамках этого перезапуска AzureDiskEncryption будет добавлен к виртуальной машине, как показано на изображении ниже.
Управление дисками и сценариями шифрования
Жизнь удалась, а диск операционной системы шифруется. Однако одно можно сказать наверняка: изменения произойдут! Давайте запустим несколько возможных сценариев при управлении шифрованием диска, чтобы увидеть, как действовать, когда эти требования возникают в вашей системе тикетов.
Начнем с требования добавить новый диск данных на ту же виртуальную машину, над которой мы работали в этой статье. Самое главное, прежде чем думать о шифровании, — это понять, что диск должен присутствовать и монтироваться в операционной системе, чтобы шифрование работало.
Если вы добавите диск с помощью портала Azure, он будет отображаться на виртуальной машине как неинициализированный и не будет зашифрован. Убедитесь, что вы инициализировали, отформатировали и присвоили диску букву (или выполните аналогичные действия, если он является частью пула дисковых пространств).
После того, как новый диск будет представлен операционной системе, вернитесь к кнопке «Шифрование», измените данные на ОС и диски данных и нажмите «Сохранить». В это время перезагрузка не потребуется, а после завершения новые диски будут зашифрованы.
Мы можем увидеть шифрование в действии на изображении ниже. Мы только что добавили новый том (буква E:), и после выполнения описанной выше процедуры новый диск был зашифрован как часть процесса.
Когда вы добавляете новые диски к виртуальной машине, нам нужно повторить процесс для шифрования новых дисков.
Использование PowerShell с шифрованием диска
Первый командлет PowerShell, о котором мы должны знать, это Get-AzVMDiskEncryptionStatus, который позволяет нам проверять текущий статус шифрования на уровне виртуальной машины.
Мы также можем включить шифрование с помощью PowerShell. Однако для этого требуется несколько параметров, таких как Key Vault (идентификатор и URL-адрес) и фактический ключ (URL-адрес ключа). Имея всю эту информацию, командлет (Set-AzVMDiskEncryptionExtension) будет похож на тот, что указан ниже.
Set-AzVmDiskEncryptionExtension -ResourceGroupName <ResourceGroupName> -VMName <VMName> -DiskEncryptionKeyVaultId <идентификатор ресурса хранилища ключей> -DiskEncryptionKeyVaultUrl <URL-адрес хранилища ключей> -KeyEncryptionKeyVaultId <идентификатор ресурса хранилища ключей> -KeyEncryptionKeyUrl "<URL-адрес ключа>" -VolumeType "All"
Я должен признать, что сбор этой информации — это не прогулка по парку, потому что вам нужно получить эту информацию с помощью двух командлетов и соединить части вместе, чтобы создать командлет, описанный выше. Я написал небольшую функцию (на данном этапе без проверки), и вам нужно указать имя Key Vault, имя ключа и имя виртуальной машины.
Функция соберет всю необходимую информацию в переменных и запустит шифрование всех дисков на предоставленной виртуальной машине. Вот код функции. Чтобы использовать ее в сеансе PowerShell, введите EncryptVM KeyVaultName KeyName VMName.
Function EncryptVM($KeyVault,$KeyName,$VM){ $kv = Get-azKeyVault -VaultName $KeyVault $key = get-Azkeyvaultkey -Name $KeyName -VaultName $KeyVault Set-AzVmDiskEncryptionExtension -ResourceGroupName $kv.ResourceGroupName ` -DiskEncryptionKeyVaultId $ kv.ResourceID ` -DiskEncryptionKeyVaultUrl $kv.VaultURI ` -VMName $VM -KeyEncryptionKeyVaultId $kv.ResourceID ` -KeyEncryptionKeyUrl $key.id -SkipVmBackup -VolumeType "Все" }
Используя PowerShell, мы можем отключить шифрование диска с помощью командлета Disable-AzVMDiskEncryption, указав имя виртуальной машины, и это заставит виртуальную машину перезапуститься. После перезагрузки все диски будут незашифрованы.
Примечание. В документации указано, что тома ОС не поддерживаются в расшифрованном виде после включения шифрования. Для большей информации, пожалуйста нажмите сюда.