Share via


使用客戶管理的金鑰建立加密映像版本

適用於: ✔️ Linux VM ✔️ Windows VM ✔️ 彈性擴展集 ✔️ 統一擴展集

Azure Compute Gallery (先前稱為共用映像庫) 中的映像會儲存為快照集。 這些映像會自動透過伺服器端 256 位加密方式 AES 加密進行加密。 伺服器端加密也符合 FIPS 140-2 規範。 如需有關基礎 Azure 管理磁碟的加密模組詳細資訊,請參閱加密 API:次世代

您可以依賴由平台管理的金鑰來加密您的映像,也可以使用您自己的金鑰。 您也可以同時使用這兩項功能進行雙重加密。 如果您選擇使用自己的金鑰來管理加密,您可以指定客戶管理的金鑰,以用於加密和解密映像中的所有磁碟。

透過「客戶管理的金鑰」的伺服器端加密,會使用 Azure Key Vault。 您可以將您的 RSA 金鑰匯入您自己的金鑰保存庫,或在 Azure Key Vault 中產生新的 RSA 金鑰。

必要條件

本文要求您已經在想要複寫映像的每個區域中設定磁碟加密:

  • 若只要使用客戶自控金鑰,請參閱使用 Azure 入口網站PowerShell,透過伺服器端加密來啟用客戶自控金鑰的文章。

  • 若要同時使用平台代控金鑰和客戶自控金鑰 (雙重加密),請參閱使用 Azure 入口網站PowerShell 啟用待用雙重加密的文章。

    重要

    您必須使用 https://aka.ms/diskencryptionupdates 連結來存取 Azure 入口網站。 除非您使用該連結,否則公用 Azure 入口網站目前不會顯示待用雙重加密。

限制

當您使用客戶自控金鑰來加密 Azure Compute Gallery 中的映像時,須遵循下列限制:

  • 加密金鑰集必須與您的映像位於相同的訂用帳戶中。

  • 加密金鑰集是區域性資源,因此每個區域都需要不同的加密金鑰集。

  • 當您使用自己的金鑰來加密映像後,就無法回去使用「平台代控金鑰」來加密這些映像。

  • VM 映像版本來源目前不支援客戶管理的金鑰加密。

  • 在使用入口網站時,不支援某些功能,例如複寫 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

建立 VM

您可以從 Azure Compute Gallery 建立虛擬機器 (VM),並使用客戶管理的金鑰來加密磁碟。 語法與透過映像建立一般化特製化 VM 相同。 使用擴充參數集,並將 Set-AzVMOSDisk -Name $($vmName +"_OSDisk") -DiskEncryptionSetId $diskEncryptionSet.Id -CreateOption FromImage 新增至 VM 組態。

至於資料磁碟,當您使用 Add-AzVMDataDisk 時須加入 -DiskEncryptionSetId $setID 參數。

CLI

若要為映像版本指定磁碟加密集,使用 az image gallery create-image-version 搭配 --target-region-encryption 參數。 --target-region-encryption 的格式是用來加密 OS 和資料磁碟的金鑰清單,各金鑰之間以逗號分隔。 它看起來應該像這樣:<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>

如果 OS 磁碟的來源是受控磁碟或 VM,請使用 --managed-image 指定映像版本的來源。 在此範例中,來源是一個受控映像,具有 OS 磁碟以及位於 LUN 0 的資料磁碟。 OS 磁碟將會使用 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 磁碟的來源是快照集,請使用 --os-snapshot 來指定 OS 磁碟。 新增該映像版本還應包含的任何其他資料磁碟快照集。 使用 --data-snapshot-luns 來指定 LUN,並使用 --data-snapshots 來指定快照集。

在此範例中,來源是磁碟快照集。 有一個 OS 磁碟,在 LUN 0 有一個資料磁碟。 OS 磁碟將會使用 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 
   

建立 VM

您可以從 Azure Compute Gallery 建立 VM,並使用客戶管理的金鑰來加密磁碟。 語法與建立一般化特製化 VM 相同,只是新增了 --os-disk-encryption-set 參數。 對於資料磁碟,請加入 --data-disk-encryption-sets,並以空格分隔資料磁碟的磁碟加密集清單。

入口網站

當您在入口網站中建立映像版本時,可以使用 [加密] 索引標籤來套用儲存體加密集。

  1. 在 [建立映像版本] 頁面上,選取 [加密] 索引標籤。
  2. 在 [加密類型] 中,選取 [使用客戶自控金鑰來進行待用加密] 或 [使用平台代控金鑰和客戶自控金鑰進行雙重加密]。
  3. 針對映像中的每個磁碟,從 [磁碟加密集] 下拉式清單中選取加密集。

建立 VM

您可以從映像版本建立 VM,並使用客戶自控金鑰來加密磁碟。 當您在入口網站中建立 VM 時,針對 [磁碟] 索引標籤上的加密類型,請選取 [使用客戶自控金鑰來進行待用加密] 或 [使用平台代控金鑰和客戶自控金鑰進行雙重加密] 作為 [加密類型]。 然後,您可以從下拉式清單中選取加密集。

下一步

深入瞭解伺服器端磁碟加密

如需如何提供購買方案資訊的相關資訊,請參閱在建立映像時提供 Azure Marketplace 購買方案資訊