[METADATA][SOURCE:PROMPT_ENGINEERING][ROLE:SR_CLOUD_ARCHITECT][VER:1.0][STYLE:TECH_DEEP_DIVE][FOCUS:KEYVAULT_RBAC_MIGRATION]
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
Azure Key VaultをRBACへ移行:エンタープライズ規模の統合アクセス制御への転換
【導入】 従来のアクセスポリシーからAzure RBACへ移行し、Entra IDによる一元管理と最小権限の原則を大規模・複数チーム環境で実現します。
【アーキテクチャ設計】 Azure Key Vaultの「Azure RBAC」許可モデルは、管理プレーン(構成変更)とデータプレーン(秘密情報の参照等)の両方を、共通のRBACエンジンで制御します。これにより、サブスクリプションやリソースグループ単位での権限継承が可能になり、従来の「Key Vaultごとに個別のアクセスポリシーを定義する」煩雑さから解放されます。
graph TD
subgraph Entra_ID["Entra ID"]
Admin["管理者グループ"]
AppIdentity["マネージドID"]
end
subgraph Azure_Scope["サブスクリプション / 管理グループ"]
direction TB
subgraph KeyVault_RBAC["Azure Key Vault - RBAC Mode"]
Secret[Secrets]
Key[Keys]
Cert[Certificates]
end
end
Admin -->|Key Vault 管理者| KeyVault_RBAC
AppIdentity -->|Key Vault シークレット ユーザー| Secret
Admin -.->|権限継承| KeyVault_RBAC
この構成では、PIM(Privileged Identity Management)との親和性が高く、時間制限付きのアクセス権付与も容易になります。
【実装・デプロイ手順】 既存のKey VaultをRBAC許可モデルに切り替え、Bicepを用いて権限を定義する手順を示します。
- RBAC許可モデルへの切り替え(Azure CLI)
# 既存のKey VaultをRBACモデルへ変更 az keyvault update \ --name "kv-prod-backend-001" \ --resource-group "rg-shared-infra" \ --enable-rbac-authorization true
- IaC(Bicep)によるロール割り当ての自動化
// 組み込みロール定義ID (Key Vault シークレット ユーザー)
var secretUserRoleId = '46334562-1364-4112-a246-2d051c718814'
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' existing = {
name: 'kv-prod-backend-001'
}
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(kv.id, 'app-id', secretUserRoleId)
scope: kv
properties: {
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', secretUserRoleId)
principalId: 'APP_SERVICE_MANAGED_IDENTITY_OBJECT_ID'
principalType: 'ServicePrincipal'
}
}
【アイデンティティとセキュリティ】
データプレーンの分離:
Key Vault Administrator(全操作可能)とKey Vault Secrets Officer(読み書きのみ)、Key Vault Secrets User(読み取りのみ)を厳格に使い分けます。条件付きアクセス: 秘密情報へのアクセスに、特定のマネージドIDまたは信頼されたネットワーク(Private Link)からの要求を強制します。
Microsoft Defender for Key Vault: RBAC移行後も継続して有効化し、異常なアクセスパターン(大量の秘密情報取得等)を検知します。
【運用・コスト最適化】
可観測性:
AuditEventを Log Analytics に転送し、KeyVaultAssignmentカテゴリでRBACの評価ログを監視します。これにより「誰がどの秘密情報にアクセスしたか」を完全に追跡可能です。コスト削減: RBAC移行自体にライセンスコストは発生しません。管理の自動化により、運用人件費を削減できます。SKUについては、FIPS 140-2 Level 3準拠が必要な場合のみ「Premium」を選択し、通常のシークレット管理は「Standard」で最適化します。
【まとめ】
移行の落とし穴: RBACへ切り替えると、既存の「アクセスポリシー」は完全に無視されます。切り替え前に全権限がRBACとしてマッピングされているか確認が必須です。
継承の活用: リソースグループ単位でのロール割り当てを活用し、大量のKey Vaultを個別管理する手間を排除します。
最小権限の徹底: アプリケーションには
Secrets User権限のみを付与し、管理権限(Administrator)はPIM経由の承認制にすることで、内部不正や設定ミスによる漏洩リスクを最小化します。

