Azure Managed Disks のカスタマー マネージド キーを使用したサーバー側暗号化の一般提供を開始

2020年4月2日 に投稿済み

Principal Program Manager, Azure Managed Disks

本日、Azure Managed Disks のカスタマー マネージド キー (CMK) を使用したサーバー側暗号化 (SSE) の一般提供が開始されました。Azure をご利用のお客様は、これまで Managed Disks のプラットフォーム マネージド キーを使用した SSE が既定で有効になっていました。CMK による SSE は、コンプライアンスのニーズに合わせて暗号化キーを管理できる点で、プラットフォーム マネージド キーによる暗号化よりも優れています。

現在、お客様は Azure Disk Encryption を使用することもできます。これは、Windows の BitLocker 機能と Linux の dm-crypt 機能を利用して、ゲスト仮想マシン (VM) 内で CMK による Managed Disks の暗号化を行います。CMK による SSE は、Azure Storage サービスのデータを暗号化し、お使いの VM で任意の OS の種類とイメージ (カスタム イメージを含む) を使用できる点で、Azure Disk Encryption よりも優れています。

CMK による SSE は、Azure Key Vault と統合されています。Key Vault は、ハードウェア セキュリティ モジュールでサポートされるキーに対応した、高可用性かつスケーラブルなセキュリティで保護されたストレージです。Key Vault で、Bring Your Own Key (BYOK) を使用するか、新しいキーを生成することができます。

キー管理の概要

Managed Disks は、利用可能な最強のブロック暗号の 1 つである 256 ビット Advanced Encryption Standard (AES) 暗号化を使用して、透過的に暗号化および暗号化解除されます。ストレージ サービスでは、エンベロープ暗号化を使用して、暗号化と暗号化解除を完全に透過的な方法で処理します。データの暗号化には、256 ビット AES ベースのデータ暗号化キーが使用されます。その後、この暗号化キーは、Key Vault に格納されているキーを使用して保護されます。

ストレージ サービスでは、データ暗号化キーを生成し、RSA 暗号化を使用して CMK でそれらのキーを暗号化します。エンベロープ暗号化によって、お使いの VM に影響を与えることなく、お客様のコンプライアンス ポリシーに従って定期的にキーをローテーション (変更) することができます。キーをローテーションすると、ストレージ サービスでは新しい CMK を使用してデータ暗号化キーを再暗号化します。

キーのフル コントロール

お使いのキーは、Key Vault で完全に制御できます。Managed Disks では、Azure Active Directory (Azure AD) のシステム割り当てマネージド ID を使用して、Key Vault のキーにアクセスします。Key Vault で必要なアクセス許可を持つ管理者は、データ暗号化キーの暗号化と暗号化解除でキーを使用するために、まず Key Vault で Managed Disks へのアクセスを許可する必要があります。キーを無効にするか、キーのアクセス制御を取り消すことで、Managed Disks からキーにアクセスできないようにすることができます。実行中の VM に接続されているディスクに対してこの操作を行うと、VM に障害が発生します。また、Key Vault 監視でキーの使用状況を追跡し、Managed Disks または他の信頼された Azure サービスのみがキーにアクセスしていることを確認できます。

CMK による SSE の利用

CMK による SSE は、Azure Virtual Machines と VM Scale Sets に接続できる Standard HDD、Standard SSD、Premium SSD の Managed Disks で使用できます。Ultra Disk Storage のサポートについては、別途お知らせいたします。CMK による SSE は、すべてのパブリック リージョンと Azure Government リージョンで有効になりました。また、数週間以内にドイツ (ソブリン) および中国のリージョンで利用可能になります。

Azure Backup を使用して、CMK による SSE で暗号化された Managed Disks で、お使いの VM をバックアップできます。また、既定で使用可能なプラットフォーム マネージド キーではなく、Key Vault に格納されているキーを使用して、Recovery Services コンテナー内のバックアップ データを暗号化することもできます。CMK を使用したバックアップの暗号化の詳細については、ドキュメントを参照してください。

Azure Site Recovery を使用して、CMK による SSE で Managed Disks が暗号化された Azure Virtual Machines を他の Azure リージョンにレプリケートし、ディザスター リカバリーを行うことができます。また、オンプレミスの仮想マシンを、CMK による SSE で暗号化された Azure 内の Managed Disks にレプリケートすることもできます。CMK による SSE で暗号化された Managed Disks を使用して仮想マシンをレプリケートする方法の詳細を参照してください。

ご利用ください 

Managed Disks で CMK による暗号化を有効にするには、DiskEncryptionSet という名前の新しいリソースの種類のインスタンスを作成してから、そのインスタンスに Key Vault へのアクセス権を付与する必要があります。DiskEncryptionSet は Key Vault 内のキーを表します。このインスタンスを使用すると、キーを再利用して、複数のディスク、スナップショット、イメージを同じキーで暗号化できます。

DiskEncryptionSet のインスタンスを作成する例を見てみましょう。

1.Key Vault でキーを指定して、DiskEncryptionSet のインスタンスを作成します。

keyVaultId=$(az keyvault show --name yourKeyVaultName --query [id] -o tsv)

keyVaultKeyUrl=$(az keyvault key show --vault-name yourKeyVaultName --name yourKeyName --query [key.kid] -o tsv)

az disk-encryption-set create -n yourDiskEncryptionSetName -l WestCentralUS -g yourResourceGroupName --source-vault $keyVaultId --key-url $keyVaultKeyUrl

2.このインスタンスに Key Vault へのアクセスを許可します。インスタンスを作成すると、Azure AD でシステム割り当てマネージド ID が自動的に作成され、その ID がインスタンスに関連付けられます。この ID は、wrapkey、unwrapkey、get などの必要な操作を実行するために、Key Vault にアクセスできる必要があります。

desIdentity=$(az disk-encryption-set show -n yourDiskEncryptionSetName -g yourResourceGroupName --query [identity.principalId] -o tsv)

az keyvault set-policy -n yourKeyVaultName -g yourResourceGroupName --object-id $desIdentity --key-permissions wrapkey unwrapkey get

az role assignment create --assignee $desIdentity --role Reader --scope $keyVaultId

ディスク、スナップショット、イメージを DiskEncryptionSet のインスタンスに関連付けて、それらの暗号化を有効にする準備ができました。同一の DiskEncryptionSet に関連付けることができるリソースの数に制限はありません。

既存のディスクで暗号化を有効にする例を見てみましょう。

1.VM に接続されているディスクの暗号化を有効にするには、仮想マシンを停止 (割り当て解除) する必要があります。

az vm stop --resource-group MyResourceGroup --name MyVm

2.接続済みのディスクを DiskEncryptionSet のインスタンスに関連付けて、そのディスクの暗号化を有効にします。

diskEncryptionSetId=$(az disk-encryption-set show -n yourDiskEncryptionSetName -g yourResourceGroupName --query [id] -o tsv)

az disk update -n yourDiskEncryptionSetName -g yourResourceGroupName --encryption-type EncryptionAtRestWithCustomerKey --disk-encryption-set $diskEncryptionSetId

4.VM を起動します。

az vm start -g MyResourceGroup -n MyVm

Managed Disks で CMK によるサーバー側暗号化を有効にする詳細な手順については、Managed Disks のドキュメントを参照してください。

フィードバックの送信

CMK による SSE について、皆様からのフィードバックをお待ちしています。こちらまでメールをお寄せください。