次の方法で共有


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

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

前提条件

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

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

リソース グループは、Azure リソースをデプロイして管理する論理コンテナーです。 Azure PowerShell New-AzResourceGroup コマンドレットを使用して、<resource-group>の場所に <location> という名前のリソース グループを作成します。

New-AzResourceGroup -Name "<resource-group>" -Location "<location>"

プリンシパル ID を取得する

マネージド HSMを作成するには、Microsoft Entra プリンシパル ID が必要です。 ID を取得するには、Azure PowerShell Get-AzADUser コマンドレットを使用し、電子メール アドレスを UserPrincipalName パラメーターに渡します。

Get-AzADUser -UserPrincipalName "<user-principal-name>"

プリンシパル ID は、「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」という形式で返されます。

マネージド HSM を作成する

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

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

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

新しい Managed HSM を作成するには、Azure PowerShell の New-AzKeyVaultManagedHsm コマンドレットを使用します。 次の情報を指定します。

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

    重要

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

  • リソース グループ名: <resource-group>

  • 場所: 選択した場所。

  • 自分のプリンシパル ID: 前セクションで取得した Microsoft Entra のプリンシパル ID を "Administrator" パラメーターに渡します。

New-AzKeyVaultManagedHsm -Name "<hsm-name>" -ResourceGroupName "<resource-group>" -Location "<location>" -Administrator "<principal-id>" -SoftDeleteRetentionInDays "<retention-days>"

注記

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

警告

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

このコマンドレットの出力では、新しく作成した Managed HSM のプロパティが示されます。 これらの 2 つのプロパティをメモします。

  • Name: Managed HSM に指定した名前。
  • HsmUri: HSM の URI (たとえば、 https://<hsm-name>.managedhsm.azure.net/)。 REST API を介してボールトを使用するアプリケーションは、この 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 を使用してこれらのキーを生成し、安全に格納します。 詳細なガイダンスについては、 セキュリティ ドメインのベスト プラクティス を参照してください。

ヒント

OpenSSL for Windows は、 OpenSSL Web サイトから入手できます。

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

Export-AzKeyVaultSecurityDomain -Name "<hsm-name>" -Certificates "cert_0.cer", "cert_1.cer", "cert_2.cer" -OutputPath "<hsm-name>-SD.json" -Quorum 2

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

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

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

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

必要がなくなったら、Azure PowerShell の Remove-AzResourceGroup コマンドレットを使用して、リソース グループとすべての関連リソースを削除できます。

Remove-AzResourceGroup -Name "myResourceGroup"

警告

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

次のステップ

このクイックスタートでは、Managed HSM を作成してアクティブにしました。 Managed HSM およびアプリケーションとの統合方法の詳細については、引き続きこれらの記事を参照してください。