mcpField
A
agent-identity-governance

agent-identity-governance

github.com/vinayaklattheセキュリティ17845 回インストール19 週間前に更新
リポジトリ

agent-identity-governance について

Microsoft 環境の AI エージェントと非人間 ID を管理するためのガバナンススキルです。所有者、権限、資格情報、レビュー、ライフサイクル、監視、インシデント対応を扱います。

主な機能

  1. 01ID の棚卸しと所有者タグ付け
  2. 02権限のスコープ設定と資格情報管理
  3. 03アクセスレビューとライフサイクルワークフロー
  4. 04監査監視とインシデント対応

活用シーン

  1. 01Copilot Studio と Foundry のエージェント ID のレビュー
  2. 02長期シークレットをフェデレーションまたは証明書に置換
  3. 03エージェントの停止とクリーンアップのワークフロー作成
  4. 04エージェント ID の侵害疑いの調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vinayaklatthe/microsoft-security-skills --skill agent-identity-governance

インストール後、Claude Code で/agent-identity-governanceを入力して読み込まれたか確認します。

詳細

AI エージェントと非人間アイデンティティのガバナンス

AI エージェント(Microsoft 365 Copilot Studio エージェント、Microsoft Foundry エージェント、カスタム構築されたエージェントに加え、従来のサービスプリンシパルやマネージド ID)は、現在、ほとんどのテナントで最も急速に増加しているアイデンティティです。認証を行い、アクセス許可を保持し、ユーザーに代わって(または自ら)操作しますが、多くの場合、適切にガバナンスされていません。

このスキルは、これらのアイデンティティのライフサイクルガバナンス層です。所有権、スコープ設定、資格情報の衛生管理、レビュー、廃止、インシデント対応を扱います。

使用するタイミング

エージェント/NHI 集団(Copilot Studio エージェント、Foundry エージェント、カスタム LLM エージェント、およびそれらを支えるサービスプリンシパル)のガバナンスを確立または成熟させる場合に使用します。

このスキルは次の場合には使用しないでください。 ワークロード ID フェデレーションのパターンのみを扱う場合 (entra-workload-identity)、人間のアイデンティティガバナンス(entra-id-governance)、または一般的なエージェント構築のガイダンス。

エージェントアイデンティティのインベントリ — ガバナンス対象を把握する

クラスアイデンティティモデル対象領域
Copilot Studio エージェント(M365)テナントスコープのエージェント ID + ユーザーごとの委任されたアクセス許可M365 管理センター/Copilot Studio
Microsoft Foundry エージェントサービスプリンシパル + マネージド ID + ユーザーごとの OBOAzure ポータル/Foundry
カスタム AI エージェント(自作コード)アプリ登録 + ワークロード ID フェデレーション/マネージド IDEntra 管理センター
プラグイン/コネクタサービスプリンシパル + 委任された/アプリ用 Graph アクセス許可Entra 管理センター
レガシー自動化サービスプリンシパル多くの場合、シークレットを使用するアプリ登録Entra 管理センター

アプローチ

  1. 棚卸しとタグ付け。 すべてのアプリ登録、サービス プリンシパル、Copilot Studio / Foundry エージェントを抽出します。それぞれに以下のタグを付けます。

    • 所有者(担当者とグループ)。
    • スポンサー/業務上の所有者。
    • 目的(1 文で記述)。
    • データ範囲(対象となるテナント/サイト/メールボックス/リソース)。
    • ライフサイクル段階(パイロット/本番/廃止予定)。
    • 重要度(ティア 0/1/2)。 所有者不明の ID は凍結し、所有者による再申請を必須にします。
  2. アクセス許可の範囲を厳密に設定します。

    • Microsoft Graph:Sites.Read.All より Sites.Selected を、Mail.Send より Application Access Policy によるメールボックスのスコープ設定を、広範なディレクトリ ロールよりカスタム セキュリティ属性を優先します。
    • Azure:ロールの割り当て範囲は RG またはリソースに限定し、本当に必要な場合を除き、サブスクリプションの所有者にはしません。
    • Copilot Studio エージェントのナレッジ ソース:「すべての SharePoint」ではなく、サイト/ライブラリを明示的に指定します。
    • Foundry エージェントのツール:必要なツールだけを使用し、必要でない限り http プラグインを削除します。
  3. 資格情報の衛生管理。 新規ビルドではクライアント シークレットを使用せず、フェデレーション資格情報(GitHub Actions、Azure DevOps、AKS、外部 OIDC)または Key Vault による自動ローテーション付きの証明書を使用します。既存のシークレットは棚卸しし、有効期限を最長 180 日に制限して、自動化によってローテーションし、フェデレーションへの移行を計画します。

  4. ワークロードの条件付きアクセス(Workload Identities Premium)。ティア 0 のエージェントと外部から呼び出し可能なエージェントに適用します。

    • 送信元 IP 範囲を制限します。
    • レガシ認証をブロックします。
    • 名前付きの場所を必須にします。 テナント内のすべての SP に適用しようとせず、影響範囲の大きい ID に重点を置きます。
  5. Entra ID Governance を使ったエージェントのアクセス レビュー。所有者が四半期ごとに以下を確認します。

    • 引き続き必要か?
    • スコープは適切か?
    • 資格情報のローテーションは最新か?
    • 所有者/スポンサーは引き続きその役割を担っているか? 所有者が応答しない場合は、自動的に無効化します。
  6. ライフサイクル ワークフロー。 以下の自動化を構築します。

    • プロビジョニング:所有者が開始する申請 → 承認 → テンプレートのアクセス許可を設定した SP を作成し、タグを付けて所有者を割り当てます。
    • 変更:スコープの変更には再承認を必須とします。
    • 廃止:30 日間の無効化期間を設けてから削除し、ロールの割り当て、フェデレーション資格情報、ナレッジ ソースのアタッチメントを削除します。
  7. 監査と監視。

    • ServicePrincipalSignInLogs と AuditLogs を Sentinel にストリーミングします。
    • Copilot Studio エージェントの場合:Purview Audit を通じたインタラクション監査ログを使用します。
    • 検出項目:
      • エージェント ID への新しい高権限ロールの割り当て。
      • エージェントによる想定外の IP/国からのサインイン。
      • エージェントごとの Graph API 呼び出しの急増。
      • 営業時間外にエージェントが機密データへアクセス。
      • 所有者以外の ID による、エージェントへの新しい資格情報の追加。
  8. エージェントが侵害された場合のインシデント対応。

    1. ID を無効化します(アプリ登録/SP でサインインをブロック)。
    2. 資格情報をローテーションし、更新トークンを失効させます。
    3. 過去 7~30 日間にエージェント ID が実行したアクションを調査します (Graph の監査ログ、リソースのアクティビティ)。
    4. エージェントがアクセスできたリソースのデータ所有者に通知します。
    5. 根本原因を特定します(シークレットの漏えい? OAuth 同意フィッシング? サプライチェーン?)。
    6. スコープをより厳密にして復旧するか、廃止します。
  9. 使用状況のシグナルと組み合わせます。 Purview AI Hub / DSPM for AI により、エージェントの動作内容(プロンプトを通じて流れる機密データ)を把握できます。ID 監査と組み合わせることで、全体像を把握できます。

ガードレール

  • すべてのエージェント ID には、名前が明記された人間の所有者が必要です。 所有者リストが空の場合は孤立状態となり、監査/セキュリティ上のリスクになります。
  • 新しい ID にクライアントシークレットを使用しないでください。 フェデレーション > 証明書 > シークレットの順に優先します。
  • 利用可能な場合、Sites.Selected(および同様の機能)は必須です。 「まず .All でクイックスタートし、後でスコープを限定する」方法で、後からスコープが限定されることはありません。
  • ワークロード向けの条件付きアクセスには別途ライセンスが必要です。 設計前に SKU を確認してください。
  • 新しいエージェントの OAuth 同意は、管理者によるレビューが必要です。 高い権限を持つスコープに対するエンドユーザーの同意は、エージェントにフィッシング経由で登録させるのと同じです。
  • 廃止は、1 日で削除することとは異なります。 30 日間の無効化期間を設けることで、「待って、どこかで使われていた」という事態を防げます。
  • エージェントの資格情報を人間が使用してはいけません。 「デバッグが簡単になるから」といって、エージェントのシークレットをチームと共有しないでください。
  • エージェントにはデータ範囲とティアのタグを付けてください。 タグがなければ、インシデント対応とレビューは当て推量になります。

よくあるアンチパターン

  • 「すべての SharePoint を基盤とする Copilot Studio エージェント」 — Copilot 自体と同じ過剰共有の問題が、さらに拡大します。サイト単位でスコープを限定したナレッジソースを使用してください。
  • 「エージェントの SP に、テナント全体で Mail.Send アプリケーション権限を付与」 — 誰にでもなりすましてメールを送信できます。アプリケーションアクセスポリシーを使用して、特定のメールボックスにスコープを限定してください。
  • 「所有者フィールドに退職者のアカウントを設定」 — 所有者不在となり、レビューもローテーションも行われません。
  • 「エージェントのコードに長期間有効なクライアントシークレットを保存」 — Git の履歴に永遠に残り、漏えいの検出は手遅れになります。
  • 「すべてのエージェントが重要だから、すべてティア 0」 — レビューとインシデント対応の労力が一律になりますが、質も一律に低くなります。適切にティア分けしてください。
  • 「アプリ登録を削除して廃止し、ロールの割り当ては残したままにする」 — RBAC にプリンシパル ID が残り、同じ ID で復元した場合のリスクも生じます。
  • 「Copilot Studio エージェントのやり取りを監査しない」 — 侵害されたエージェントが、気付かれないまま動作します。
  • 「エージェント ID のガバナンスを、人間の IGA と同一に扱う」 — ライフサイクル、制御、レビューはいずれも異なります。

プロンプトの例

  • テナント内のすべての Copilot Studio エージェント、Foundry エージェント、サービスプリンシパルを棚卸しし、所有者 + スコープ + ティアのレポートを作成してください。
  • Entra ID Governance を使用して、600 個のエージェント ID のアクセスレビューを四半期ごとに実施してください。
  • 人事向け Copilot Studio エージェントのスコープを「すべての SharePoint」から特定の 4 つのナレッジサイトに限定してください。
  • 廃止ワークフローを構築してください。30 日間の無効化、所有者への通知、RBAC とフェデレーション資格情報の完全なクリーンアップを行います。
  • エージェント ID の侵害を検出する Sentinel 検出ルールを作成してください。新しい資格情報、異常なサインイン、Graph 呼び出しの急増を対象とします。
  • インシデント対応手順書を作成してください。Microsoft Graph を 48 時間呼び出した侵害済み Foundry エージェントへの封じ込め、調査、通知を扱います。
  • レガシー自動化 SP 120 個のクライアントシークレットを、ワークロード ID フェデレーションまたは Key Vault 証明書に置き換えてください。
  • すべてのティア 0 エージェントに、ワークロード ID 向けの条件付きアクセスを適用してください。

Microsoft Learn

コメント