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