コンテナー アクセス ポリシーから Azure ロールベースのアクセス制御のアクセス許可モデルへの移行

Azure Key Vault には、Azure ロールベースのアクセス制御 (Azure RBAC) とアクセス ポリシー モデルの 2 つの認可システムが用意されています。 Azure RBAC は、Azure Key Vault の既定であり、お勧めの認可システムです。 2 つの認可方法の比較については、「Azure ロールベースのアクセス制御 (Azure RBAC) とアクセス ポリシーの比較」を参照してください。

この記事では、キー コンテナーをアクセス ポリシーの認可から Azure RBAC モデルに移行するために必要な情報を提供します。

Azure ロール マッピングへのアクセス ポリシー

Azure RBAC には、ユーザー、グループ、サービス プリンシパル、マネージド ID に割り当てることのできる Azure 組み込みロールがいくつかあります。 組み込みロールが組織の特定のニーズを満たさない場合は、独自の Azure カスタム ロールを作成することができます。

キー、証明書、およびシークレットのアクセス管理のための Key Vault 組み込みロールは以下のとおりです。

  • Key Vault Administrator
  • Key Vault Reader
  • Key Vault Certificates Officer
  • Key Vault Certificate User
  • Key Vault Crypto Officer
  • Key Vault Crypto User
  • Key Vault Crypto Service Encryption User
  • Key Vault Secrets Officer
  • Key Vault Secrets User

既存の組み込みロールの詳細については、「Azure 組み込みロール」を参照してください。

コンテナー アクセス ポリシーは、個別に選択したアクセス許可、または定義済みのアクセス許可テンプレートを使用して割り当てることができます。

アクセス ポリシーの定義済みアクセス許可テンプレート:

  • キー、シークレット、および証明書の管理
  • キーおよびシークレットの管理
  • シークレットおよび証明書の管理
  • キー管理
  • シークレットの管理
  • 証明書管理
  • SQL Server コネクタ
  • Azure Data Lake Storage または Azure Storage
  • Azure Backup
  • Exchange Online カスタマー キー
  • SharePoint Online カスタマー キー
  • Azure Information BYOK

Azure ロール マッピングへのアクセス ポリシー テンプレート

アクセス ポリシー テンプレート 操作 Azure ロール
キー、シークレット、および証明書の管理 キー: すべての操作
証明書: すべての操作
シークレット: すべての操作
Key Vault Administrator
キーおよびシークレットの管理 キー: すべての操作
シークレット: すべての操作
Key Vault Crypto Officer
Key Vault Secrets Officer
シークレットおよび証明書の管理 証明書: すべての操作
シークレット: すべての操作
Key Vault Certificates Officer
Key Vault Secrets Officer
キー管理 キー: すべての操作 Key Vault Crypto Officer
シークレットの管理 シークレット: すべての操作 Key Vault Secrets Officer
証明書管理 証明書: すべての操作 Key Vault Certificates Officer
SQL Server コネクタ キー: 取得、一覧表示、キーを折り返す、キーの折り返しを解除 Key Vault Crypto Service Encryption User
Azure Data Lake Storage または Azure Storage キー: 取得、一覧表示、キーの折り返しを解除 N/A
カスタム ロールが必要
Azure Backup キー: 取得、一覧表示、バックアップ
シークレット: 取得、一覧表示、バックアップ
N/A
カスタム ロールが必要
Exchange Online カスタマー キー キー: 取得、一覧表示、キーを折り返す、キーの折り返しを解除 Key Vault Crypto Service Encryption User
Exchange Online カスタマー キー キー: 取得、一覧表示、キーを折り返す、キーの折り返しを解除 Key Vault Crypto Service Encryption User
Azure Information BYOK キー: 取得、復号化、署名 N/A
カスタム ロールが必要

Note

Azure portal を使った Azure App Service 証明書の構成では、Key Vault RBAC アクセス許可モデルはサポートされていません。 App Service グローバル ID (パブリック クラウド内の Microsoft Azure App Service など) に対する Key Vault Certificate User ロールの割り当てでは、Azure PowerShell、Azure CLI、ARM テンプレートのデプロイを使用できます。

割り当てスコープのマッピング

Key Vault 用の Azure RBAC では、次のスコープでロールを割り当てることができます。

  • 管理グループ
  • サブスクリプション
  • Resource group
  • Key Vault リソース
  • 個々のキー、シークレット、証明書

コンテナー アクセス ポリシーのアクセス許可モデルは、Key Vault リソース レベルでのみポリシーを割り当てることができるように制限されています。

一般に、アプリケーションごとに 1 つのキー コンテナーを持ち、キー コンテナー レベルでアクセスを管理することをお勧めします。 他のスコープでアクセスを管理すると、アクセス管理が簡単になる場合があります。

  • インフラストラクチャ、セキュリティ管理者、およびオペレーター: 管理グループ、サブスクリプション、またはリソース グループ レベルのキー コンテナーのグループを、コンテナー アクセス ポリシーで管理するには、キー コンテナーごとにポリシーを維持する必要があります。 Azure RBAC では、管理グループ、サブスクリプション、またはリソース グループで 1 つのロールの割り当てを作成できます。 この割り当ては、同じスコープで作成された新しいキー コンテナーに適用されます。 このシナリオでは、永続アクセス権を付与するよりも、ジャストインタイム アクセスで Privileged Identity Management を使用することをお勧めします。

  • アプリケーション: 一部のシナリオでは、あるアプリケーションから他のアプリケーションへ、シークレットを共有する必要があります。 コンテナー アクセス ポリシーを使用して、すべてのシークレットへアクセス許可を付与しないように、個別のキー コンテナーを作成する必要がありました。 Azure RBAC では、単一のキー コンテナーを使用する代わりに、個々のシークレットのスコープでロールを割り当てることができます。

コンテナー アクセス ポリシーの Azure RBAC への移行の手順

Azure RBAC とコンテナー アクセス ポリシーのアクセス許可モデルにはさまざまな違いがあります。 移行中の停止を避けるために、以下の手順をお勧めします。

  1. ロールの特定と割り当て: 上記のマッピングの表に基づいて組み込みのロールを特定し、必要に応じてカスタム ロールを作成します。 スコープのマッピングのガイダンスに基づいて、スコープでロールを割り当てます。 キー コンテナーにロールを割り当てる方法の詳細については、Azure ロールベースのアクセス制御を使用した Key Vault へのアクセスの付与に関するページを参照してください
  2. ロールの割り当ての検証: Azure RBAC でのロールの割り当ては、反映されるまでに数分かかることがあります。 ロールの割り当てを確認する方法のガイドについては、スコープでロールの割り当てを一覧表示する方法に関するページを参照してください
  3. キー コンテナーでの監視とアラートの構成: ログの記録を有効にし、アクセス拒否の例外に対するアラートを設定することが重要です。 詳細については、「Azure Key Vault の監視とアラート」を参照してください。
  4. Key Vault で Azure ロールベースのアクセス制御の許可モデルを設定: Azure RBAC のアクセス許可モデルを有効にすると、既存のアクセス ポリシーがすべて無効になります。 エラーが発生した場合は、既存のすべてのアクセス ポリシーをそのままに、アクセス許可モデルを元通りに切り替えることができます。

Note

アクセス許可モデルを変更するには、所有者ロールとユーザー アクセス管理者ロールの一部である、"Microsoft.Authorization/roleAssignments/write" アクセス許可が必要です。 "サービス管理者" や "共同管理者" などの従来のサブスクリプション管理者ロールはサポートされていません。

Note

Azure RBAC アクセス許可モデルが有効になっている場合、アクセス ポリシーの更新を試みるすべてのスクリプトが失敗します。 Azure RBAC を使用するように、これらのスクリプトを更新することが重要です。

移行のガバナンス

Azure Policy サービスを使用すると、コンテナー間での RBAC アクセス許可モデルの移行を管理できます。 カスタム ポリシー定義を作成して、既存のキー コンテナーを監査し、すべての新しいキー コンテナーに Azure RBAC アクセス許可モデルを使用するように強制できます。

Key Vault Azure RBAC アクセス許可モデルのポリシー定義を作成して割り当てる

  1. Policy リソースに移動します
  2. Azure Policy ページの左側にある [作成] の下の [割り当て] を選択します。
  3. ページの上部にある [Assign policy](ポリシーを割り当てる) を選択します。 このボタンをクリックすると [ポリシーの割り当て] ページが開きます。
  4. 次の情報を入力します。
    • ポリシーを適用するサブスクリプションとリソース グループを選択して、ポリシーのスコープを定義します。 [範囲] フィールドの 3 点ボタンをクリックして選択します。
    • 次のポリシー定義の名前を選択します: "[プレビュー]: Azure Key Vaultでは RBAC アクセス許可モデルを使用する必要がある"
    • ページの上部にある [Parameters] タブに移動し、ポリシーの目的の効果 (監査、拒否、または無効) を定義します。
  5. その他のフィールドに入力します。 ページの下部にある [前へ] ボタンと [次へ] ボタンをクリックしてタブ内を移動します。
  6. [確認と作成] を選択します
  7. [作成] を選択します。

組み込みポリシーを割り当てると、スキャンが完了するまで最大 24 時間かかる場合があります。 スキャンが完了すると、次のようなコンプライアンス結果を確認できます。

RBAC policy compliance

詳細については、「

Azure RBAC 比較ツールへのアクセス ポリシー

重要

このツールは、Microsoft コミュニティ メンバーによって構築および保守されており、正式なカスタマー サポート サービスのサポートはありません。 このツールは現状有姿で提供され、いかなる保証も行いません。

Key Vault アクセス ポリシーと割り当てられた RBAC ロールを比較して、アクセス ポリシーから RBAC アクセス許可モデルへの移行を支援する PowerShell ツール。 このツールの目的は、既存の Key Vault を RBAC アクセス許可モデルに移行する際にサニティ チェックを提供し、基になるデータ アクションを持つ割り当てられたロールが既存のアクセス ポリシーに対応していることを確認することです。

トラブルシューティング

  • 数分経っても、ロールの割り当てが機能しません - ロールの割り当てに時間がかかる場合があります。 そのようなケースに対応するために、コードに再試行ロジックを記述することが重要です。
  • Key Vault が削除 (論理的な削除) されてから復旧した場合に、ロールの割り当てが消失します - 現時点では、これはすべての Azure サービスにおける論理的な削除機能の制限となっています。 復旧後にすべてのロールの割り当てを再作成する必要があります。

詳細情報