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

В этой статье вы узнаете, как шифровать управляемые диски Azure с помощью ключей, управляемых клиентом (CMKs) для виртуальных машин, развернутых в расширенной зоне Azure.

Этот процесс использует Azure Key Vault и набор шифрования дисков (DES).

Замечание

Хранилище ключей и DES можно создать с помощью портала Azure или Azure CLI. Назначение DES дискам для рабочих нагрузок расширенных зон Azure в настоящее время поддерживается только с помощью Azure CLI.

Необходимые условия

Контекст архитектуры высокого уровня

При использовании CMKs с ресурсами Расширенных зон Azure:

  • Операции уровня управления (Azure Resource Manager, метаданные Key Vault и DES) выполняются в родительском регионе Azure.
  • Ресурсы плоскости данных (виртуальные машины и диски) выполняются в расширенном местоположении зоны.
  • Шифрование дисков применяется на уровне управляемого диска (плоскости данных) с помощью DES.

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

В этом разделе описано, как создать хранилище ключей, ключ шифрования и DES в родительском регионе расширенной зоны.

В этом примере вы выбираете средство для создания средств шифрования. Создание и шифрование дисков работают только с помощью Azure CLI.

Создание хранилища ключей и ключа шифрования

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

  • Все ресурсы принадлежат одной группе ресурсов.
  • Включен контроль доступа на основе ролей Azure.
  • Защита от очистки включена.
  • Ключ RSA (2048-разрядная или более поздняя версия) создается или импортируется.

Создание набора шифрования дисков

Затем создайте DES, ссылающийся на ключ Key Vault. Система DES должна:

  • Создано в том же родительском регионе, что и хранилище ключей.
  • Используйте управляемое удостоверение, назначаемое системой.

Предоставьте службе DES доступ к ключу Key Vault, назначив ей роль пользователя службы шифрования Key Vault.

Развертывание виртуальной машины в расширенной зоне Azure

При развертывании виртуальной машины в расширенной зоне Azure необходимо указать следующее:

  • --location: родительский регион Azure.
  • --edge-zone: название расширенной зоны.

В следующем примере создается виртуальная машина Windows Server 2022 в расширенной зоне Лос-Анджелеса с помощью западной части США в качестве родительского региона.

az vm create --resource-group 'myResourceGroup' --name 'myVM' --image Win2022Datacenter --size Standard_DS4_v2 --admin-username 'username' --admin-password 'password' --edge-zone losangeles --location westus 

Создание зашифрованного управляемого диска с помощью DES (только cli)

После создания виртуальной машины создайте управляемый диск, зашифрованный с помощью DES. Этот шаг четко применяет к диску клиентские мастер-ключи (CMKs).

az disk create --resource-group 'myResourceGroup' --name 'myDisk' --edge-zone losangeles --location westus --size 64 --sku Premium_LRS --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set DES_ID

Проверка шифрования дисков

Используйте следующую команду, чтобы убедиться, что диск зашифрован с помощью CMK и связан с правильным DES:

az disk show -g 'myResourceGroup' -n 'myDisk' --query "{encryptionType:encryption.type, desId:encryption.diskEncryptionSetId}" -o json

Присоединение зашифрованного диска к виртуальной машине

После проверки подключите зашифрованный диск к виртуальной машине с помощью следующей команды:

az vm disk attach --resource-group 'myResourceGroup' --vm-name 'myVM' --name 'myDisk'

Очистите ресурсы

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

az group delete --name 'myResourceGroup' --yes --no-wait