カスタマー マネージド キーを使って暗号化されたイメージ バージョンを作成する

適用対象: ✔️ Linux VM ✔️ Windows VM ✔️ フレキシブル スケール セット ✔️ 均一スケール セット

Azure Compute Gallery (旧称 Shared Image Gallery) のイメージは、スナップショットとして格納されます。 これらのイメージは、サーバー側の 256 ビット暗号化の AES 暗号化によって自動的に暗号化されます。 サーバー側暗号化は、FIPS 140-2 にも準拠しています。 Azure マネージド ディスクの基になっている暗号化モジュールについて詳しくは、「暗号化 API:Next Generation (暗号化 API: 次世代)」を参照してください。

イメージの暗号化にはプラットフォーム マネージド キーを利用することも、独自のキーを使用することもできます。 これらの両方の機能を組み合わせて使用して、二重暗号化を行うこともできます。 独自のキーを使用して暗号化を管理する場合は、イメージ内のすべてのディスクの暗号化と暗号化解除に使用するカスタマー マネージド キーを指定できます。

カスタマー マネージド キーを使用したサーバー側暗号化には、Azure Key Vault が使用されます。 ご使用の RSA キーをキー コンテナーにインポートするか、Azure Key Vault で新しい RSA キーを生成することができます。

前提条件

この記事では、イメージがレプリケートされる各リージョンにディスク暗号化セットが既に用意されている必要があります。

  • カスタマー マネージド キーのみを使用する場合は、Azure portal または PowerShell を使用してサーバー側の暗号化でカスタマー マネージド キーを有効にする方法に関する記事を参照してください。

  • (二重暗号化のために) プラットフォーム マネージドおよびユーザー マネージドの両方のキーを使用する場合は、Azure portal または PowerShell を使用して保存時の二重暗号化を有効にする方法に関する記事を参照してください。

    重要

    Azure portal にアクセスするには、リンク https://aka.ms/diskencryptionupdates を使用する必要があります。 現時点では、このリンクを使用しないと、保存時の二重暗号化がパブリックの Azure portal に表示されません。

制限事項

Azure Compute Gallery 内のイメージの暗号化にカスタマー マネージド キーを使用する場合、こちらの制限が適用されます。

  • 暗号化キー セットは、お使いのイメージと同じサブスクリプション内にある必要があります。

  • 暗号化キー セットはリージョン別のリソースであるため、各リージョンには異なる暗号化キー セットが必要になります。

  • 独自のキーを使用してイメージを暗号化した後は、それらのイメージを暗号化するためにプラットフォーム マネージド キーを使用する方法に戻すことはできません。

  • 現在、VM イメージ バージョン ソースはカスタマー マネージド キーの暗号化をサポートしていません。

  • SSE+CMK イメージのレプリケート、SSE+ CMK 暗号化ディスクからのイメージの作成などの機能の一部はポータル経由でサポートされていません。

PowerShell

イメージ バージョンのディスク暗号化セットを指定するには、-TargetRegion パラメーターを指定して New-AzGalleryImageVersion を使用します。


$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

イメージ バージョンのディスク暗号化セットを指定するには、--target-region-encryption パラメーターを指定して az image gallery create-image-version を使用します。 --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 を作成し、カスタマー マネージド キーを使用してディスクを暗号化することができます。 構文は、追加の --os-disk-encryption-set パラメーターのある一般化または特殊化された VM を作成する場合と同じです。 データ ディスクの場合は、そのデータ ディスクのディスク暗号化セットのスペース区切りリストを指定して --data-disk-encryption-sets を追加します。

ポータル

ポータルで自分のイメージ バージョンを作成する場合は、 [暗号化] タブを使用して、ストレージ暗号化セットを適用できます。

  1. [イメージ バージョンを作成する] ページで、 [暗号化] タブを選択します。
  2. [暗号化の種類] で、 [カスタマー マネージド キーを使用した保存時の暗号化] または [Double encryption with platform-managed and customer-managed keys] (プラットフォーム マネージド キーとカスタマー マネージド キーを使用した二重暗号化) を選択します。
  3. イメージ内のディスクごとに、 [ディスク暗号化セット] ドロップダウン リストから暗号化セットを選択します。

VM の作成

イメージのバージョンから VM を作成し、カスタマー マネージド キーを使用してディスクを暗号化することができます。 ポータルで VM を作成する場合は、 [ディスク] タブの [暗号化の種類] で、 [カスタマー マネージド キーを使用した保存時の暗号化] または [Double encryption with platform-managed and customer-managed keys](プラットフォーム マネージド キーとカスタマー マネージド キーを使用した二重暗号化) を選択します。 次に、ドロップダウン リストから暗号化セットを選択します。

次のステップ

ディスクのサーバー側暗号化について学習する。

購入プラン情報を提供する方法については、イメージ作成時の Azure Marketplace 購入プラン情報の提供に関する記事を参照してください。