Azure Key Vault をデプロイする
Azure Key Vaultの設定でハマったのでメモ書きです。
Azure Key Vault とは
Azure Key Vault は、Microsoft Azure が提供する クラウドベースのセキュリティサービスで、アプリケーションやサービスで使用する 機密情報(シークレット)を安全に管理するための仕組みです。
主な役割
- シークレット管理
APIキー、接続文字列、パスワードなどを安全に保存し、アクセス制御を行える。 - キー管理
暗号化や署名に使う暗号鍵を安全に生成・保管できる。 - 証明書管理
SSL/TLS証明書を安全に管理し、自動更新も可能。
特徴
- Azure Active Directory (AAD) と統合
アクセス権限はロールベースで制御できる。 - 監査ログ対応
誰がいつアクセスしたかを記録できる。 - 高可用性・スケーラビリティ
Azureのインフラ上で冗長化されているため、信頼性が高い。
Azure Key Vault を作成する
Marketplace から Key Vault と検索します。
Key Vaultから 作成をクリックします。

サブスクリプション、プランを選択し、作成をクリックします。

サブスクリプション、リソースグループを選択します。
Key vaultを設定します。
地域は Japan Eastを選択してみました。
価格レベルは標準にしてみました。
次へ をクリックします。

アクセス許可モデルはAzure ロールベースのアクセス制御(推奨)を選択します。
次へ をクリックします。

パブリックアクセスはとりあえず、すべてのネットワークを選択します。
次へをクリックします。

作成 をクリックします。

デプロイが完了しました が表示されたら リソースへ移動をクリックします。

権限の設定: アクセス制御(IAM)
必要なロールはMicrosoft Learnに記載があるのですが、記載のあるロール名と実際のロール名が違っているので注意が必要です。
「全然、名前がちがうやないかーい!」とドはまりした。
Azure ポータル上だとキー コンテナー管理者(キーの作成・管理するユーザー)、キー コンテナー シークレット ユーザー(キーを利用するユーザー)になる。
| 実際のロール名 | ドキュメントのロール名 | 内容 |
|---|---|---|
| キー コンテナー管理者 | キーボールト管理者 | キー コンテナーとその内部にあるすべてのオブジェクト (証明書、キー、シークレットを含む) に対して、すべてのデータ プレーン操作を実行します。 キーボールトのリソースや役割の割り当てを管理することはできません。 「Azure ロールベースのアクセス制御」アクセス許可モデルを使用するキー ボールトでのみ機能します。(Microsoft Learnより抜粋) |
| キー コンテナー シークレット ユーザー | Key Vault シークレット ユーザー | 秘密キーを使用し、証明書のシークレット部分を含むシークレットの内容を読み取ります。 「Azure ロールベースのアクセス制御」アクセス許可モデルを使用するキー ボールトでのみ機能します。(Microsoft Learnより抜粋) |
アクセス制御(IAM)の設定
アクセス制御(IAM)から追加のロールの割り当ての追加をクリックします。

ロールタブから、キー コンテナーと検索します。
割り当てしたいロールを選択して次へ進みます。

+メンバーを選択するをクリックし、ロールを割り当てたいユーザーもしくはサービスプリンシパルを追加します。
レビューと割り当てをクリックします。

レビューと割り当てをクリックして適用します。

ロールの割り当ての確認
アクセス制御(IAM)をクリックし、ロールの割り当てタブをクリックします。
今、設定しているロールの割り当て状況が確認できます。

シークレットの作成
キー コンテナー管理者のロールが割り当てられたユーザーでオブジェクトのシークレットを開きます。
生成/インポートをクリックします。

最低限、名前とシークレット値を設定します。
作成をクリックして作成します。

作成できました。

さいごに
アクセス制御(IAM)がドキュメントと実際のロール名が違くて設定できずにハマりました。
Discussion