クイック スタート: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 を開始するには、以下のようにします。
オプション | 例とリンク |
---|---|
コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 | |
https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 | |
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
Azure Cloud Shell を使用するには、以下のようにします。
Cloud Shell を開始します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
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"
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 パラメーターに指定した名前です。
- コンテナー 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 コマンドレットを使用して ExamplePassword という名前の Key Vault に値 hVFkk965BuUv でシークレットを作成します。
$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 およびアプリケーションとの統合方法の詳細については、引き続き以下の記事を参照してください。
- Azure Key Vault の概要を確認する
- 複数行のシークレットを Key Vault に格納する方法について確認する
- Azure PowerShell の Key Vault コマンドレットのリファレンスを参照する
- Key Vault のセキュリティの概要を確認する