クイック スタート:Azure PowerShell を使用して Azure Key Vault から証明書の設定と取得を行う

このクイックスタートでは、Azure PowerShell を使用して Azure Key Vault にキー コンテナーを作成します。 Azure Key Vault は、セキュリティで保護されたシークレット ストアとして機能するクラウド サービスです。 キー、パスワード、証明書、およびその他のシークレットを安全に保管することができます。 Key Vault の詳細については、概要に関する記事をご覧ください。 Azure PowerShell は、コマンドまたはスクリプトを使用して Azure リソースを作成および管理するために使用します。 その後、証明書を格納します。

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

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 キーを選択して、コードまたはコマンドを実行します。

PowerShell をローカルにインストールして使用する場合、このチュートリアルでは Azure PowerShell モジュール バージョン 1.0.0 以降が必要になります。 バージョンを確認するには、「$PSVersionTable.PSVersion」と入力します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。

Connect-AzAccount

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

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

New-AzResourceGroup -Name "myResourceGroup" -Location "EastUS"

Key Vault を作成します

Azure PowerShell New-AzKeyVault コマンドレットを使用して、前の手順で作成したリソース グループにキー コンテナーを作成します。 いくつかの情報を指定する必要があります。

  • キー コンテナー名:数字 (0-9)、文字 (a-z、A-Z)、ハイフン (-) のみを含んだ 3 から 24 文字の文字列

    重要

    各キー コンテナーには一意の名前が必要です。 次の例では、<your-unique-keyvault-name> をお使いのキー コンテナーの名前に置き換えてください。

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

  • 場所: EastUS

New-AzKeyVault -Name "<your-unique-keyvault-name>" -ResourceGroupName "myResourceGroup" -Location "EastUS"

このコマンドレットの出力では、新しく作成したキー コンテナーのプロパティが示されます。 次の 2 つのプロパティをメモしておきます。

  • コンテナー名: 上の -Name パラメーターに指定した名前です。
  • Vault URI (コンテナー URI) :この例では、これは https://<your-unique-keyvault-name>.vault.azure.net/ です。 その REST API から資格情報コンテナーを使用するアプリケーションは、この URI を使用する必要があります。

この時点で、自分の Azure アカウントが唯一、この新しいコンテナーで任意の操作を実行することを許可されています。

キー コンテナーへのアクセス許可を付与する

ロールベースのアクセス制御 (RBAC) を使用してキー コンテナーへのアクセス許可をアプリケーションに付与するには、Azure PowerShell コマンドレット New-AzRoleAssignment を使用してロールを割り当てます。

New-AzRoleAssignment -RoleDefinitionName "Key Vault Secrets User" -SignInName "<your-email-address>" -Scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"

<your-email-address>、<subscription-id>、<resource-group-name>、<your-unique-keyvault-name> は実際の値に置き換えてください。 <your-email-address> はサインイン名です。代わりに、-ObjectId パラメーターと Microsoft Entra オブジェクト ID を使うこともできます。

証明書を Key Vault に追加する

これで証明書をコンテナーに追加できるようになりました。 この証明書は、アプリケーションによって使用される可能性があります。

以下のコマンドを使って、ExampleCertificate というポリシーを含む自己署名証明書を作成します。

$Policy = New-AzKeyVaultCertificatePolicy -SecretContentType "application/x-pkcs12" -SubjectName "CN=contoso.com" -IssuerName "Self" -ValidityInMonths 6 -ReuseKeyOnRenewal

Add-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate" -CertificatePolicy $Policy

これで、URI を使用して、Azure Key Vault に追加したこの証明書を参照できるようになりました。 https://<your-unique-keyvault-name>.vault.azure.net/certificates/ExampleCertificate を使用して、現在のバージョンを取得します。

以前に格納した証明書を表示するには:

Get-AzKeyVaultCertificate -VaultName "<your-unique-keyvault-name>" -Name "ExampleCertificate"

トラブルシューティング:

Operation returned an invalid status code "Forbidden" (操作によって無効な状態コード "Forbidden" が返されました)

このエラーが発生した場合、Azure キー コンテナーにアクセスするアカウントには、証明書を作成するための適切なアクセス許可がありません。

次の Azure PowerShell コマンドを実行して、適切なアクセス許可を割り当ててください。

Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> -ObjectId <AzureObjectID> -PermissionsToCertificates get,list,update,create

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

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

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

Remove-AzResourceGroup -Name "myResourceGroup"

次のステップ

このクイックスタートでは、キー コンテナーを作成して証明書を格納しました。 Key Vault およびアプリケーションとの統合方法の詳細については、引き続き以下の記事を参照してください。