クイック スタート: Azure CLI を使用して Managed HSM をプロビジョニングしてアクティブにする

このクイック スタートでは、Azure CLI を使用して Azure Key Vault Managed HSM (ハードウェア セキュリティ モジュール) を作成してアクティブにします。 Managed HSM は、フル マネージド、高可用性、シングル テナント、標準準拠を特徴とするクラウド サービスで、FIPS 140-2 レベル 3 適合の HSM を使用してクラウド アプリケーションの暗号化キーを保護することができます。 Managed HSM の詳細については、概要に関するページを参照してください。

前提条件

この記事の手順を実行するには、以下が必要です。

  • Microsoft Azure サブスクリプション。 アカウントがない場合でも、無料試用版にサインアップできます。
  • Azure CLI バージョン 2.25.0 以降。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールに関するページを参照してください。

Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

オプション 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Screenshot that shows an example of Try It for Azure Cloud Shell.
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Button to launch Azure Cloud Shell.
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Screenshot that shows the Cloud Shell button in the Azure portal

Azure Cloud Shell を使用するには、以下のようにします。

  1. Cloud Shell を開始します。

  2. コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。

  3. Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。

  4. Enter キーを選択して、コードまたはコマンドを実行します。

Azure へのサインイン

CLI を使用して Azure にサインインするには、次のように入力します。

az login

リソース グループを作成する

リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 次の例では、ContosoResourceGroup という名前のリソース グループを eastus2 の場所に作成します。

az group create --name "ContosoResourceGroup" --location eastus2

Managed HSM を作成する

Managed HSM は、次の 2 段階のプロセスで作成します。

  1. Managed HSM リソースをプロビジョニングします。
  2. "セキュリティ ドメイン"と呼ばれる成果物をダウンロードして Managed HSM をアクティブにします。

Managed HSM をプロビジョニングする

Managed HSM を作成するには、az keyvault create コマンドを使用します。 このスクリプトには、3 つの必須パラメーター (リソース グループ名、HSM 名、地理的な場所) が含まれています。

Managed HSM リソースを作成するには、次の入力を指定する必要があります。

  • サブスクリプション内での配置先となるリソース グループ。
  • Azure の場所。
  • 初期管理者のリスト。

次の例では、ContosoMHSM という名前の HSM を、米国東部 2 に存在するリソース グループ ContosoResourceGroup に作成します。現在サインインしているユーザーが唯一の管理者であり、論理的な削除に対して 7 日間の保持期間が設定されています。 Managed HSM は、論理的な削除期間内に消去されるまで課金が継続されます。 詳細については、「Managed HSM の論理的削除と消去保護」および Managed HSM の論理的な削除の詳細を参照してください。

oid=$(az ad signed-in-user show --query id -o tsv)
az keyvault create --hsm-name "ContosoMHSM" --resource-group "ContosoResourceGroup" --location "eastus2" --administrators $oid --retention-days 7

Note

マネージド HSM の初期管理者としてマネージド ID を使用している場合、'--administrators' の後にマネージド ID の OID/PrincipalID を入力する必要があります。ClientID ではありません。

注意

create コマンドには数分かかることがあります。 正常に制御が戻ったら、HSM をアクティブにする準備が整います。

警告

Managed HSM インスタンスは、常時使用と見なされます。 --enable-purge-protectionフラグを使用して消去保護を有効にした場合、保持期間全体に対して請求されます。

このコマンドの出力は、作成した Managed HSM のプロパティを示します。 最も重要な 2 つのプロパティは、次のとおりです。

  • name:この例では、名前は ContosoMHSM です。 この名前を他のコマンドに使用できます。
  • hsmUri: この例では、URI は 'https://contosohsm.managedhsm.azure.net.' です。 REST API から HSM を使用するアプリケーションでは、この URI を使用する必要があります。

これで、お使いの Azure アカウントは、このマネージド HSM に対して任意の操作を実行できるようになりました。 現在のところ、誰も承認されていません。

Managed HSM をアクティブにする

HSM をアクティブにするまでは、データ プレーンのコマンドはすべて無効です。 たとえば、キーを作成することも、ロールを割り当てることもできません。 HSM をアクティブにできるのは、create コマンドの実行時に割り当てられた指定された管理者だけです。 HSM をアクティブにするには、セキュリティ ドメインをダウンロードする必要があります。

HSM をアクティブにするための要件は次のとおりです。

  • 少なくとも 3 つ (最大 10 個) の RSA キー ペアを提供します
  • セキュリティ ドメインの暗号化を解除するために必要なキーの最小数 ("クォーラム" と呼ばれます) を指定します

HSM をアクティブにするには、少なくとも 3 つ (最大 10 個) の RSA 公開キーを HSM に送信する必要があります。 HSM は、それらのキーでセキュリティ ドメインを暗号化して返します。 このセキュリティ ドメインのダウンロードが正常に完了したら、HSM を使用する準備は完了です。 加えて、クォーラムの指定も必要となります。クォーラムは、セキュリティ ドメインの暗号化を解除するために必要な秘密キーの最小数です。

次の例は、opensslを使用して 3 つの自己署名証明書を生成する方法を示しています。

openssl req -newkey rsa:2048 -nodes -keyout cert_0.key -x509 -days 365 -out cert_0.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_1.key -x509 -days 365 -out cert_1.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_2.key -x509 -days 365 -out cert_2.cer

Note

証明書の "有効期限が切れている" 場合でも、セキュリティ ドメインの復元に使用できます。

重要

この手順で生成した RSA キー ペアとセキュリティ ドメイン ファイルは、安全に作成、保存してください。

セキュリティ ドメインをダウンロードして、Managed HSM をアクティブにするには、az keyvault security-domain download コマンドを使用します。 次の例では、3 つの RSA キー ペア (このコマンドで必要なのは公開キーのみ) を使用し、クォーラムは 2 に設定しています。

az keyvault security-domain download --hsm-name ContosoMHSM --sd-wrapping-keys ./certs/cert_0.cer ./certs/cert_1.cer ./certs/cert_2.cer --sd-quorum 2 --security-domain-file ContosoMHSM-SD.json

セキュリティ ドメイン ファイルと RSA キー ペアは安全に保存してください。 これらは、ディザスター リカバリーに必要となります。また、同じセキュリティ ドメインを共有する別の Managed HSM を作成し、それら 2 つがキーを共有できるようにする際にも必要となります。

セキュリティ ドメインを正常にダウンロードすると、HSM がアクティブな状態となり、いつでも使用することができます。

リソースをクリーンアップする

このコレクションの他のクイックスタートとチュートリアルは、このクイックスタートに基づいています。 後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことをお勧めします。

必要がなくなったら、az group delete コマンドを使用して、リソース グループおよびすべての関連リソースを削除できます。 次のように、リソースを削除できます。

az group delete --name ContosoResourceGroup

警告

リソース グループを削除すると、Managed HSM は論理的に削除された状態になります。 Managed HSM は、消去されるまで引き続き課金されます。 「Managed HSM の論理的削除と消去保護」を参照してください。

次のステップ

このクイック スタートでは、マネージド HSM をプロビジョニングしてアクティブ化しました。 Managed HSM の詳細と、アプリケーションとの統合方法については、引き続きこれらの記事を参照してください。