Шифрование существующих дисков виртуальной машины

Завершено

Предположим, ваша компания решает реализовать Шифрование дисков Azure (ADE) на всех виртуальных машинах. Необходимо оценить, как развернуть шифрование для существующих томов виртуальной машины. Здесь мы рассмотрим требования к ADE и шаги, связанные с шифрованием дисков на существующих виртуальных машинах Linux и Windows. В следующем уроке выполняется процесс шифрования существующих дисков виртуальной машины.

Предварительные требования для шифрования дисков Azure

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

  1. Создайте хранилище ключей.
  2. Настройте политику доступа к хранилищу ключей для поддержки шифрования дисков.
  3. Используйте хранилище ключей для хранения ключей шифрования для ADE.

Azure Key Vault

Использование ключей шифрования ADE может храниться в Azure Key Vault. Azure Key Vault — это средство для безопасного хранения секретов и доступа к ним. Секрет — это все, к чему требуется жестко контролировать доступ, например ключи API, пароли или сертификаты. Azure Key Vault предоставляет высокодоступное и масштабируемое безопасное хранилище, как определено в федеральных стандартах обработки информации (FIPS) 140-2 уровня 2 проверенных аппаратных модулей безопасности (HSM). Key Vault позволяет вам полностью управлять ключами шифрования данных. Кроме того, можно управлять использованием ключа и проводить его аудит.

Примечание.

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

Настроить хранилище ключей и управлять им можно с помощью:

PowerShell

New-AzKeyVault -Location <location> `
    -ResourceGroupName <resource-group> `
    -VaultName "myKeyVault" `
    -EnabledForDiskEncryption

Azure CLI

az keyvault create \
    --name "myKeyVault" \
    --resource-group <resource-group> \
    --location <location> \
    --enabled-for-disk-encryption True

Портал Azure

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

  1. В меню портала Azure или на странице Домашняя выберите Создать ресурс.

  2. С помощью поля поиска найдите и выберите Key Vault (Хранилище ключей). Появится панель Key Vault (Хранилище ключей).

  3. Нажмите кнопку создания. Откроется панель Создать хранилище ключей.

  4. На вкладке Основные сведения введите указанные ниже значения для каждого параметра.

    Параметр Значение
    Сведения о проекте
    Отток подписок Выберите подписку, в которой будет размещаться хранилище ключей (по умолчанию используется текущая подписка).
    Группа ресурсов Выберите существующую группу ресурсов или создайте новую.
    Сведения об экземпляре
    Имя хранилища ключей Введите имя хранилища ключей.
    Область/регион Выберите регион, в котором находится виртуальная машина.
    Ценовая категория Стандартный. Вы можете выбрать ценовую категорию "Стандартный" или "Премиум". Основное различие заключается в том, что уровень "Премиум" позволяет использовать аппаратные ключи, поддерживаемые шифрованием.

    Снимок экрана, показывающий область хранилища ключей.

  5. Нажмите кнопку "Далее ", чтобы перейти на вкладку конфигурации Access. Для поддержки шифрования дисков необходимо изменить политики доступа. По умолчанию она добавляет учетную запись в политику.

  6. На вкладке конфигурации Access введите следующее значение параметра.

    Параметр Значение
    Доступ к ресурсам Установите флажок для Шифрование дисков Azure шифрования томов. Вы можете удалить учетную запись, если вам нравится, так как это не обязательно, если вы планируете использовать хранилище ключей для шифрования дисков.
  7. Выберите Review + create (Просмотреть и создать).

  8. После завершения проверки нажмите кнопку Create (Создать), чтобы создать новое хранилище ключей Key Vault.

Включение политик доступа в хранилище ключей

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

Вы можете включить три политики.

  • Шифрование дисков: требуется для шифрования дисков Azure.
  • Развертывание: (необязательно) позволяет Microsoft.Compute поставщику ресурсов извлекать секреты из этого хранилища ключей, когда этот хранилище ключей ссылается на создание ресурса. Например, при создании виртуальной машины.
  • Развертывание шаблона: (необязательно) позволяет Azure Resource Manager получать секреты из этого хранилища ключей, когда это хранилище ключей ссылается на развертывание шаблона.

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

Set-AzKeyVaultAccessPolicy -VaultName <keyvault-name> -ResourceGroupName <resource-group> -EnabledForDiskEncryption
az keyvault update --name <keyvault-name> --resource-group <resource-group> --enabled-for-disk-encryption true

Шифрование существующего диска виртуальной машины

После настройки хранилища ключей Key Vault можно зашифровать виртуальную машину с помощью Azure CLI или Azure PowerShell. Во время первого шифрования виртуальной машины Windows можно зашифровать все диски или только диск операционной системы. В некоторых дистрибутивах Linux можно зашифровать только диски данных. Чтобы иметь право на шифрование, диски Windows должны быть отформатированы как тома новой файловой системы технологии (NTFS).

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

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

Чтобы включить шифрование с помощью PowerShell, запустите Set-AzVmDiskEncryptionExtension командлет.


Set-AzVmDiskEncryptionExtension `
    -ResourceGroupName <resource-group> `
    -VMName <vm-name> `
    -VolumeType [All | OS | Data]
    -DiskEncryptionKeyVaultId <keyVault.ResourceId> `
    -DiskEncryptionKeyVaultUrl <keyVault.VaultUri> `
     -SkipVmBackup

Чтобы включить шифрование с помощью Azure CLI, выполните az vm encryption enable команду и укажите том, который требуется зашифровать с помощью --volume-type [all | os | data] параметра. Ниже приведен пример шифрования всех томов для виртуальной машины:

az vm encryption enable \
    --resource-group <resource-group> \
    --name <vm-name> \
    --disk-encryption-keyvault <keyvault-name> \
    --volume-type all

Просмотр состояния диска

Вы можете проверить, зашифрованы ли конкретные диски.

Get-AzVmDiskEncryptionStatus  -ResourceGroupName <resource-group> -VMName <vm-name>
az vm encryption show --resource-group <resource-group> --name <vm-name>

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

Расшифровка дисков

Чтобы отменить шифрование диска в PowerShell, используйте командлет Disable-AzVMDiskEncryption.

Disable-AzVMDiskEncryption -ResourceGroupName <resource-group> -VMName <vm-name>

В Azure CLI для этих целей используется команда vm encryption disable.

az vm encryption disable --resource-group <resource-group> --name <vm-name>

Эти команды отключают шифрование для томов типа all (все) указанной виртуальной машины. Как и версия шифрования, чтобы решить, какие диски расшифровываются, можно указать -VolumeType параметр [All | OS | Data]. Если значение не указано, по умолчанию используется значение All.

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

Отключение шифрования диска данных на виртуальной машине Windows, когда оба диска (диск ОС и диск данных) зашифрованы и работают не так, как ожидалось. Вместо этого необходимо отключить шифрование для всех дисков.

В следующем упражнении вы попытаетесь выполнить некоторые из этих команд на новой виртуальной машине.