クイック スタート: 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を開始するには:

選択肢 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 Try It を選択しても、コードまたはコマンドはCloud Shellに自動的にコピーされません。 Azure Cloud Shell の「Try It」機能の例を示すスクリーンショット。
https://shell.azure.com に移動するか、Launch Cloud Shell ボタンを選択してブラウザーでCloud Shellを開きます。 Azure Cloud Shell を起動するボタン。
Azure ポータルの右上にあるメニュー バーで、Cloud Shellボタンを選択します。 Azure ポータルの [Cloud Shell] ボタンを示すスクリーンショット

Azure Cloud Shellを使用するには:

  1. Cloud Shellを開始します。

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

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

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

Azureにサインインする

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

az login

CLI を使用した認証オプションの詳細については、「sign in with Azure CLI」を参照してください。

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

リソース グループは、Azureリソースがデプロイおよび管理される論理コンテナーです。 az group create コマンドを使用して、myResourceGroup という名前のリソース グループを eastus の場所に作成します。

az group create --name "myResourceGroup" --location "EastUS"

Managed HSM を作成する

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

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

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

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

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

  • マネージド HSM 名: 数字 (0 ~ 9)、文字 (a から z、A ~ Z)、ハイフン (-) のみを含めることができる 3 ~ 24 文字の文字列。

    重要

    各 Managed HSM には一意の名前が必要です。 次の例では、 <hsm-name> を独自の一意の Managed HSM 名に置き換えます。

  • リソース グループ名: myResourceGroup

  • 場所: EastUS

  • 初期管理者のリスト。

次の例では、リソース グループ myResourceGroup<hsm-name> という名前の 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 "myResourceGroup" --location "EastUS" --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 アカウントに、この Managed 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 人がキーを共有できるように、ディザスター リカバリーまたは同じセキュリティ ドメインを共有する別のマネージド HSM を作成するために必要です。

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

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

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

不要になったら、Azure CLI az group delete コマンドを使用して、リソース グループとすべての関連リソースを削除できます。

az group delete --name "myResourceGroup"

警告

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

次のステップ

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