クイック スタート: 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 に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
Azure へのサインイン
CLI を使用して Azure にサインインするには、次のように入力します。
az login
リソース グループを作成する
リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 次の例では、ContosoResourceGroup という名前のリソース グループを eastus2 の場所に作成します。
az group create --name "ContosoResourceGroup" --location eastus2
Managed HSM を作成する
Managed HSM は、次の 2 段階のプロセスで作成します。
- Managed HSM リソースをプロビジョニングします。
- "セキュリティ ドメイン"と呼ばれる成果物をダウンロードして 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 の詳細と、アプリケーションとの統合方法については、引き続きこれらの記事を参照してください。
- Managed HSM の概要に関するページを読む
- マネージド HSM におけるキーの管理について学習する
- マネージド HSM のロール管理について学習する
- Managed HSM のベスト プラクティスを確認する