次の方法で共有


クイック スタート: PowerShell を使用して Azure Key Vault からシークレットを設定および取得する

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

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

Azure Cloud Shell

Azure は、ブラウザーから使用できる対話型シェル環境である Azure Cloud Shell をホストします。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。

Azure Cloud Shell を開始するには、以下のようにします。

Option 例とリンク
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 Azure Cloud Shell の Try It の例を示すスクリーンショット。
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 を選択して、コードまたはコマンドをクラウドシェルセッションに貼り付けます。

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

PowerShell をローカルにインストールして使用する場合、このチュートリアルでは Azure PowerShell モジュール バージョン 5.0.0 以降が必要です。 Get-InstalledModule -Name Azを入力してバージョンを検索します。 アップグレードする必要がある場合は、「 Azure PowerShell をインストールする方法」を参照してください。 PowerShell をローカルで実行している場合、Connect-AzAccount を実行して Azure との接続を作成することも必要です。

Connect-AzAccount

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

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

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

キー保管庫を作成する

Azure PowerShell New-AzKeyVault コマンドレットを使用して、前の手順のリソース グループに Key Vault を作成します。 次の情報を入力する必要があります。

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

    Important

    各キー ボールトには一意の名前が必要です。 次の例では、<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 アカウントは、この新しいコンテナーに対して操作を実行する権限を持つ唯一のアカウントです。

Key Vault でシークレットを管理するアクセス許可をユーザー アカウントに付与する

ロールベースのアクセス制御 (RBAC) を通してキー コンテナーに対するアクセス許可を取得するには、Azure PowerShell コマンドレット New-AzRoleAssignment を使用してユーザー プリンシパル名 (UPN) にロールを割り当てます。

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

<upn>、<subscription-id>、<resource-group-name>、および<your-unique-keyvault-name> で囲まれた部分を実際の値に置き換えてください。 UPN は一般的に、メール アドレスの形式を取ります (例: username@___domain.com)。

Key Vault へのシークレットの追加

シークレットをコンテナーに追加するには、いくつかの手順を実行する必要があります。 この場合は、アプリケーションで使用できるパスワードを追加します。 パスワードは ExamplePassword と呼ばれ、 hVFkk965BuUv の値が格納されます。

まず、次のコマンドを実行し、セキュリティで保護された文字列に変換するように求められたら 、hVFkk965BuUv の値を入力します。

$secretvalue = Read-Host -Prompt 'Enter the example password' -AsSecureString

次に、Azure PowerShell Set-AzKeyVaultSecret コマンドレットを使用して、値 hVFkk965BuUv を持つ ExamplePassword という名前のシークレットを Key Vault に作成します。

$secret = Set-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "ExamplePassword" -SecretValue $secretvalue

Key Vault からシークレットを取得する

シークレットに含まれる値をプレーン テキストとして表示するには、Azure PowerShell Get-AzKeyVaultSecret コマンドレットを使用します。

$secret = Get-AzKeyVaultSecret -VaultName "<your-unique-keyvault-name>" -Name "ExamplePassword" -AsPlainText

これで、キー コンテナーを作成し、シークレットを格納した後、取得しました。

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

このコレクションの他のクイックスタートとチュートリアルは、このクイックスタートに基づいています。 引き続き他のクイック スタートやチュートリアルを使用する予定の場合は、これらのリソースをそのまま使用できます。

不要になったら、 Remove-AzResourceGroup コマンドを使用して、リソース グループ、Key Vault、およびすべての関連リソースを削除できます。

Remove-AzResourceGroup -Name myResourceGroup

次のステップ

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