システムやサービスで使用するキー、シークレット (API キー、パスワードなど) および証明書を安全に保管、アクセスできるよう、Azure Key Vault を使用するケースは少なくないですが、はじめて Azure Key Vault を利用、設定する際につまづくところとしては作業者がそもそもキー/シークレット/証明書にアクセスや設定ができないというのがあります。
このブログ エントリでは、Azure Key Vault のキー/シークレット/証明書にアクセスや設定できない時にまず確認すべき設定内容について、まとめてみました。
Azure ポータルでの操作を想定しています。
Azure Key Vault のキー/シークレット/証明書にアクセスや設定できない時に確認すべき設定内容
Azure Key Vault のアクセス許可モデルが何なのかを確認する
Azure Key Vault のキー/シークレット/証明書にアクセスや設定できない場合のほとんどが、権限が不足している、もしくは与えられていないことが挙げられます。
どのように権限を割り当てるかどうかについて、アクセス許可モデルによって異なるため、対象 Azure Key Vault の管理ブレードの [オブジェクト] – [アクセス構成] からアクセス許可モデルの設定を確認します。
- アクセス許可モデルが「Azure ロールベースのアクセス制御 (推奨)」に設定されている場合
- アクセス制御 (IAM) から権限の付与を行います。
- アクセス許可モデルが「コンテナーのアクセス ポリシー」に設定されている場合
- アクセス ポリシーから権限の付与を行います。
補足として、キー/シークレット/証明書にアクセスした際の警告メッセージからも確認することが可能です。
アクセス制御 (IAM) から権限を設定する
アクセス許可モデルが「Azure ロールベースのアクセス制御 (推奨)」に設定されている場合には、対象 Azure Key Vault 管理ブレードの [アクセス制御 (IAM)] から必要な権限 (RBAC) を割り当てます。
なお、Azure 側であらかじめ用意されている (ビルトイン) ロールは以下となります。
組み込みロール (英語表記) |
説明 | ID |
---|---|---|
キー コンテナー管理者 (Key Vault Administrator) |
キー/シークレット/証明書に対して、すべてのデータ プレーン実行操作可能です。キー コンテナー自体のリソース管理やロール割り当て管理はできません。 | 00482a5a-887f-4fb3-b363-3b7fe8e74483 |
キー コンテナー閲覧者 (Key Vault Reader) |
キー/シークレット/証明書メタデータ読み取りの実行操作が可能です。シークレットの内容といった機密値を読み取りはできません。 | 21090545-7ca7-4776-b22c-e363652d74d2 |
キー コンテナー証明書責任者 (Key Vault Certificates Officer) |
証明書に対して、アクセス許可の管理を除く任意の実行操作が可能です。 | a4417e6f-fecd-4de8-b567-7b0420556985 |
Key Vault Certificate User (Key Vault Certificate User) |
証明書に対して、内容表示の実行操作が可能です。 | db79e9a7-68ee-4b58-9aeb-b90e7c24fcba |
キー コンテナー暗号化責任者 (Key Vault Crypto Officer) |
キーに対して、アクセス許可の管理を除く任意の操作が実行可能です。 | 14b46e9e-c2b7-41b4-b07b-48a6ebf60603 |
キー コンテナー暗号化サービスの暗号化 (Key Vault Crypto Service Encryption User) |
キーのメタデータの読み取り/wrap/unwrap 実行操作が可能です。 | e147488a-f6f5-4113-8e2d-b22465e65bf6 |
キー コンテナー暗号化ユーザー (Key Vault Crypto User) |
キーを用いた暗号化の実行操作が可能です。 | 12338af0-0e69-4776-bea7-57ae8d297424 |
Key Vault Crypto Service Release User (Key Vault Crypto Service Release User) |
キー解放の実行操作が可能です。 | 08bbd89e-9f13-488c-ac41-acfcb10c90ab |
キー コンテナー シークレット責任者 (Key Vault Secrets Officer) |
シークレットに対して、アクセス許可の管理を除く任意の実行操作が可能です。 | b86a8fe4-44ce-4948-aee5-eccb2c155cd7 |
キー コンテナー シークレット ユーザー (Key Vault Secrets User) |
-シークレットに対して、読み取りの実行操作が可能です。 | 4633458b-17de-408a-b874-0445c86b69e6 |
Key Vault Data Access Administrator (Key Vault Data Access Administrator) |
Key Vault 関連のロールを追加/削除して、Azure Key Vault へのアクセスを管理します。 | 8b54135c-b56d-4d72-a534-26097cfdc8d8 |
Key Vault の共同作成者 (Key Vault Contributor) |
キー コンテナー リソース自体の管理できますが、キー/シークレット/証明書へのアクセスはできません。 | f25e0fa2-a7c8-4377-a976-54943a77a395 |
アクセス ポリシーから権限を設定する
アクセス許可モデルが「Azure ロールベースのアクセス制御 (推奨)」に設定されている場合には、対象 Azure Key Vault 管理ブレードの [アクセス ポリシー] から必要な権限と割り当て先 (プリンシパル/アプリケーション) を指定して、アクセス ポリシーを作成します。
ネットワーク (ファイアウォール) の設定を確認する
権限が適切に設定されている場合でも、設定によってはネットワーク (ファイアウォール) 側でブロックされている場合があります。
対象 Azure Key Vault 管理ブレードの [設定] – [ネットワーク] からアクセスできるよう、ネットワーク (ファイアウォール) 構成を設定、変更します。
補足として、キー/シークレット/証明書にアクセスした際の警告メッセージから確認することができます。
まとめ
このブログエントリでは、Azure Key Vault のキー/シークレット/証明書にアクセスや設定できない時にまず確認すべき以下の設定内容について、紹介しました。記載した内容が参考になれば幸いです。
- Azure Key Vault のアクセス許可モデル
- Azure ロールベースのアクセス制御
- アクセス ポリシー
- ネットワーク (ファイアウォール)
コメント