Azure Key VaultをRBACへ移行:エンタープライズ規模の統合アクセス制御への転換

Tech

[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を用いて権限を定義する手順を示します。

  1. RBAC許可モデルへの切り替え(Azure CLI)
# 既存のKey VaultをRBACモデルへ変更

az keyvault update \
  --name "kv-prod-backend-001" \
  --resource-group "rg-shared-infra" \
  --enable-rbac-authorization true
  1. 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」で最適化します。

【まとめ】

  1. 移行の落とし穴: RBACへ切り替えると、既存の「アクセスポリシー」は完全に無視されます。切り替え前に全権限がRBACとしてマッピングされているか確認が必須です。

  2. 継承の活用: リソースグループ単位でのロール割り当てを活用し、大量のKey Vaultを個別管理する手間を排除します。

  3. 最小権限の徹底: アプリケーションには Secrets User 権限のみを付与し、管理権限(Administrator)はPIM経由の承認制にすることで、内部不正や設定ミスによる漏洩リスクを最小化します。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました