Azure Key Vaultで管理する暗号鍵でVMを保護する

このエントリは2020/01/06現在の情報に基づいています。将来の機能変更・追加に伴い、記載内容との乖離が発生する可能性があります。

Azure Key Vaultで作成した暗号鍵を使って、仮想マシン (Virtual Machines) のディスクを暗号化し、保護できる。詳細はドキュメントに記載があるが、備忘録として記載しておく。

Azure CLI を使用して Linux VM を作成、暗号化する / Create and encrypt a Linux VM with the Azure CLI
https://docs.microsoft.com/azure/virtual-machines/linux/disk-encryption-cli-quickstart

前提条件

  • Azure CLIを利用(PowerShellでも作成できるが、PowerShellでの作成方法はドキュメントを参照)
  • Azure CLIでログイン済み。ログインしていない場合は az login を実行しておくこと。

手順

リソースグループの作成(作成済みであれば省略可能)

以下のコマンドを実行。

az group create \
     -g "<resource group>" \
     -l "<location>"

Key Vault (Key Container) の作成

以下のコマンドを実行。

az keyvault create \
     --name "<unique keyvault name>" \
     -g "<resource group>" \
     -l "<location>" \
     --sku {standard|premium} \
     --enabled-for-disk-encryption
注意点
  • VMのディスク暗号化のために、–enabled-for-disk-encryptionは必須
  • その他必要であれば、–enabled-for-deployment や –enabled-for-template-deployment を付ける
  • SKUを指定しないとStandardのKey Vaultを作成するため、HSMで保護されたKeyを使いたい場合には、明示的に –sku premium を指定する必要がある

キー暗号化キー (Key Encryption Key, KEK) の作成もしくはインポート

作成

以下のコマンドを実行。

az keyvault key create \
     --name "<key name>" \
     --vault-name "<unique keyvault name>" \
     --kty {RSA-HSM | RSA}
インポート

以下のコマンドを実行。詳細は以下のURLを参照。

az keyvault key import \
     --name "<key name>" \
     --vault-name "<unique keyvault name>" …

az keyvault key import
https://docs.microsoft.com/cli/azure/keyvault/key?view=azure-cli-latest#az-keyvault-key-import

注意点
  • Azure Disk Encryption では、楕円曲線キーの使用はまだサポートされていないため、作成時にはRSAもしくはRSA-HSMのみ指定できる。

VMの作成

以下のコマンドを実行。

az vm create \
     -g "<resource group>" \
     --name "<vm name>" \
     --image "<vm image name>" \
     --size "<vm size>"\
     --generate-ssh-keys
注意点
  • –generate-ssh-keysを指定しておくと、例えばWSLからAzure CLIを使ってVMを作成した場合、~/.ssh配下の公開鍵、秘密鍵を使ってVMを作成してくれる(公開鍵、秘密鍵がない場合は~/.sshに作成する)。
  • –admin-username は必要に応じて指定する(作成していない場合、az vm show の出力結果 /osProfile/adminUsername で確認できる)。

VMのディスク暗号化

以下のコマンドを実行。

az vm encryption enable \
     -g "<resource group>" \
     --name "<vm name>" \
     --disk-encryption-keyvault "<unique keyvault name>"

ディスク暗号化の状況把握

以下のコマンドを実行し、出力結果の /resources[0]/settings/EncryptionOperation の値が EnableEncryption になっていれば暗号化完了。以下は出力例。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中