使用客戶管理的金鑰建立加密映像版本
適用於: ✔️ 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
,並以空格分隔資料磁碟的磁碟加密集清單。
入口網站
當您在入口網站中建立映像版本時,可以使用 [加密] 索引標籤來套用儲存體加密集。
- 在 [建立映像版本] 頁面上,選取 [加密] 索引標籤。
- 在 [加密類型] 中,選取 [使用客戶自控金鑰來進行待用加密] 或 [使用平台代控金鑰和客戶自控金鑰進行雙重加密]。
- 針對映像中的每個磁碟,從 [磁碟加密集] 下拉式清單中選取加密集。
建立 VM
您可以從映像版本建立 VM,並使用客戶自控金鑰來加密磁碟。 當您在入口網站中建立 VM 時,針對 [磁碟] 索引標籤上的加密類型,請選取 [使用客戶自控金鑰來進行待用加密] 或 [使用平台代控金鑰和客戶自控金鑰進行雙重加密] 作為 [加密類型]。 然後,您可以從下拉式清單中選取加密集。
下一步
深入瞭解伺服器端磁碟加密。
如需如何提供購買方案資訊的相關資訊,請參閱在建立映像時提供 Azure Marketplace 購買方案資訊。