次の方法で共有


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

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

前提条件

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 に自動的にはコピーされません。 Azure Cloud Shell の [使ってみる] の例を示すスクリーンショット。
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 Azure Cloud Shell を起動するボタン。
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 Azure portal の [Cloud Shell] ボタンを示すスクリーンショット

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 リソースをデプロイして管理する論理コンテナーです。 次の例では、<resource-group> の場所に <location> という名前のリソース グループを作成します。

az group create --name "<resource-group>" --location <location>

Managed HSM を作成する

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

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

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

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

Managed HSM リソースを作成するには、次の入力を指定します。

  • サブスクリプションに Managed HSM を配置するリソース グループ。
  • Azure の場所。
  • 初期管理者のリスト。

次の例では、リソース グループ <hsm-name><resource-group> という名前の HSM を作成し、指定した場所に存在し、現在サインインしているユーザーを唯一の管理者として使用し、論理的な削除を行う 7 日間のリテンション期間を作成します。 論理的削除期間内に削除されるまで、Managed HSM の料金は引き続き課金されます。 詳細については、「Managed HSM の論理的削除と消去保護」および Managed HSM の論理的な削除の詳細を参照してください。

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

マネージド HSM の初期管理者としてマネージド ID を使用する場合は、ClientID ではなく、 --administrators 後にマネージド ID の OID/PrincipalID を入力します。

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

警告

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

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

  • name: 指定した名前。 この名前は、他のコマンドに使用します。
  • hsmUri: HSM の URI (たとえば、 https://<hsm-name>.managedhsm.azure.net)。 REST API から HSM を使用するアプリケーションでは、この URI を使用する必要があります。

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

Managed HSM をアクティブにする

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

HSM をアクティブ化するには、次のものが必要です。

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

HSM には、少なくとも 3 つの RSA 公開キー (最大 10 個) を送信します。 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

証明書の有効期限は、セキュリティ ドメインの操作には影響しません。"期限切れ" の証明書でも、セキュリティ ドメインの復元に使用できます。

重要

これらの RSA 秘密キーは、Managed HSM の信頼のルートです。 運用環境では、エアギャップ システムまたはオンプレミス HSM を使用してこれらのキーを生成し、安全に格納します。 詳細なガイダンスについては、 セキュリティ ドメインのベスト プラクティス を参照してください。

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

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

セキュリティ ドメイン ファイルと RSA キー ペアを安全に格納します。 2 人がキーを共有できるように、ディザスター リカバリーまたは同じセキュリティ ドメインを共有する別の Managed HSM を作成するために必要です。

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

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

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

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

az group delete --name <resource-group>

警告

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

次のステップ

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