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

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы

Образы в коллекции вычислений Azure (прежнее название — Общая коллекция образов) хранятся в виде моментальных снимков. Эти образы автоматически шифруются с помощью 256-разрядного шифрования AES на стороне сервера. Шифрование на стороне сервера также соответствует требованиям FIPS 140-2. Дополнительные сведения о криптографических модулях, лежащих в основе функции управляемых дисков Azure, см. в статье API шифрования: следующее поколение.

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

Для шифрования на стороне сервера с помощью управляемых клиентом ключей используется Azure Key Vault. Вы можете либо импортировать свои ключи RSA в хранилище ключей, либо создать новые ключи RSA в Azure Key Vault.

Предварительные требования

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

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

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

    Важно!

    Для доступа к порталу Azure необходимо использовать ссылку https://aka.ms/diskencryptionupdates. Если не использовать предоставленную ссылку, двойное шифрование при хранении в настоящее время не будет отображаться на общедоступном портале Azure.

Ограничения

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

  • Наборы ключей шифрования должны находиться в той же подписке, что и образ.

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

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

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

  • Некоторые функции, такие как репликация образа SSE+CMK, создание образа из зашифрованного диска SSE+CMK и т. д. не поддерживаются на портале.

PowerShell

Указать набор шифрования дисков для какой-либо версии образа можно с помощью команды New-AzGalleryImageVersion с параметром -TargetRegion:


$sourceId = <ID of the image version source>

$osDiskImageEncryption = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myDESet'}

$dataDiskImageEncryption1 = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myDESet1';Lun=1}

$dataDiskImageEncryption2 = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myDESet2';Lun=2}

$dataDiskImageEncryptions = @($dataDiskImageEncryption1,$dataDiskImageEncryption2)

$encryption1 = @{OSDiskImage=$osDiskImageEncryption;DataDiskImages=$dataDiskImageEncryptions}

$region1 = @{Name='West US';ReplicaCount=1;StorageAccountType=Standard_LRS;Encryption=$encryption1}

$eastUS2osDiskImageEncryption = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myEastUS2DESet'}

$eastUS2dataDiskImageEncryption1 = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myEastUS2DESet1';Lun=1}

$eastUS2dataDiskImageEncryption2 = @{DiskEncryptionSetId='subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG/providers/Microsoft.Compute/diskEncryptionSets/myEastUS2DESet2';Lun=2}

$eastUS2DataDiskImageEncryptions = @($eastUS2dataDiskImageEncryption1,$eastUS2dataDiskImageEncryption2)

$encryption2 = @{OSDiskImage=$eastUS2osDiskImageEncryption;DataDiskImages=$eastUS2DataDiskImageEncryptions}

$region2 = @{Name='East US 2';ReplicaCount=1;StorageAccountType=Standard_LRS;Encryption=$encryption2}

$targetRegion = @($region1, $region2)


# Create the image
New-AzGalleryImageVersion `
   -ResourceGroupName $rgname `
   -GalleryName $galleryName `
   -GalleryImageDefinitionName $imageDefinitionName `
   -Name $versionName -Location $location `
   -SourceImageId $sourceId `
   -ReplicaCount 2 `
   -StorageAccountType Standard_LRS `
   -PublishingProfileEndOfLifeDate '2020-12-01' `
   -TargetRegion $targetRegion

Создание виртуальной машины

Вы можете создать виртуальную машину на основе Коллекции вычислений Azure и использовать управляемые клиентом ключи для шифрования дисков. Синтаксис такой же, как и при создании универсальной или специализированной виртуальной машины из образа. Используйте набор расширенных параметров и добавьте Set-AzVMOSDisk -Name $($vmName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage в конфигурацию виртуальной машины.

Для дисков данных при использовании Add-AzVMDataDisk нужно добавлять параметр -DiskEncryptionSetId $setID.

CLI

Чтобы задать набор шифрования дисков для версии образа, используйте команду az image gallery create-image-version с параметром --target-region-encryption. Формат для --target-region-encryption представляет собой разделенный запятыми список ключей для шифрования дисков ОС и данных. Результат будет выглядеть так: <encryption set for the OS disk>,<Lun number of the data disk>,<encryption set for the data disk>,<Lun number for the second data disk>,<encryption set for the second data disk>.

Если источником для диска ОС является управляемый диск или виртуальная машина, используйте --managed-image, чтобы указать источник для версии образа. В этом примере источником является управляемый образ с диском ОС, а также диском данных с LUN 0. Диск ОС будет зашифрован с помощью DiskEncryptionSet1, а диск данных — с помощью DiskEncryptionSet2.

az sig image-version create \
   -g MyResourceGroup \
   --gallery-image-version 1.0.0 \
   --location westus \
   --target-regions westus=2=standard_lrs eastus2 \
   --target-region-encryption WestUSDiskEncryptionSet1,0,WestUSDiskEncryptionSet2 EastUS2DiskEncryptionSet1,0,EastUS2DiskEncryptionSet2 \
   --gallery-name MyGallery \
   --gallery-image-definition MyImage \
   --managed-image "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/images/myImage"

Если источником для диска ОС является моментальный снимок, используйте --os-snapshot, чтобы указать диск ОС. Добавьте любые другие моментальные снимки дисков данных, которые также должны быть частью версии образа. Используйте параметр --data-snapshot-luns, чтобы указать LUN, и параметр --data-snapshots, чтобы указать моментальные снимки.

В этом примере источниками являются моментальные снимки диска. Есть диск ОС и диск данных с LUN 0. Диск ОС будет зашифрован с помощью DiskEncryptionSet1, а диск данных — с помощью DiskEncryptionSet2.

az sig image-version create \
   -g MyResourceGroup \
   --gallery-image-version 1.0.0 \
   --location westus\
   --target-regions westus=2=standard_lrs eastus\
   --target-region-encryption WestUSDiskEncryptionSet1,0,WestUSDiskEncryptionSet2 EastUS2DiskEncryptionSet1,0,EastUS2DiskEncryptionSet2 \
   --os-snapshot "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/myOSSnapshot" \
   --data-snapshot-luns 0 \
   --data-snapshots "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/myDDSnapshot" \
   --gallery-name MyGallery \
   --gallery-image-definition MyImage 
   

Создание виртуальной машины

Вы можете создать виртуальную машину на основе Коллекции вычислений Azure и использовать управляемые клиентом ключи для шифрования дисков. Синтаксис аналогичен созданию универсальной или специализированной виртуальной машины с добавлением --os-disk-encryption-set параметра . Для дисков данных добавьте --data-disk-encryption-sets с разделенным пробелами списком наборов шифрования дисков для дисков данных.

Портал

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

  1. На странице Create an image version (Создание версии образа) выберите вкладку Шифрование.
  2. В разделе Тип шифрования выберите Encryption at-rest with a customer-managed key (Шифрование при хранении с помощью управляемого клиентом ключа) или Double encryption with platform-managed and customer-managed keys (Двойное шифрование с помощью управляемых платформой ключей и управляемых клиентом ключей).
  3. Для каждого диска в образе выберите набор шифрования из раскрывающегося списка Набор шифрования дисков.

Создание виртуальной машины

Вы можете создать виртуальную машину из версии образа и использовать управляемые клиентом ключи для шифрования дисков. При создании виртуальной машины на портале на вкладке Диски выберите Encryption at-rest with customer-managed keys (Шифрование неактивных данных с помощью управляемых клиентом ключей) или Double encryption with platform-managed and customer-managed keys (Двойное шифрование с помощью управляемых платформой и клиентом ключей) для параметра Тип шифрования. Затем вы можете выбрать набор шифрования из раскрывающегося списка.

Дальнейшие действия

Дополнительные сведения о шифровании дисков на стороне сервера.

Подробнее о плане покупки см. в статье Предоставление сведений о плане покупки Azure Marketplace при создании образов.