GitHub OIDCカスタムプロパティとCopilotエージェント統制: 2026年版エンタープライズ実装パターン
GitHub Changelogで続いているアップデートを個別機能として見ると見落としが出ます。特に重要なのは、ActionsのOIDCトークンがリポジトリのカスタムプロパティをクレームとして扱えるようになった点と、Copilotのコーディングエージェント運用が可視化・制御しやすくなっている点です。
参照:
- https://github.blog/changelog/2026-03-12-actions-oidc-tokens-now-support-repository-custom-properties/
- https://github.blog/changelog/
この2つを統合して設計すると、従来の「repo名を列挙した許可リスト」から、リポジトリの状態に応じた動的信頼モデルへ移行できます。
従来方式が限界に来ている理由
多くの企業では、クラウドロール付与を org / repo / branch / workflow だけで判定しています。人間主導のデプロイ中心だった時代は機能しましたが、2026年はAI提案コードやbot実行が常態化し、同じrepoでもリスク状態が大きく変わります。
固定allowlistの問題は3つです。
- リポジトリ増加とともに統制コストが爆発する
- 権限剥奪が遅れやすい
- 同名粒度の判定だけでは実際の機密性や重要度を反映できない
カスタムプロパティを使うことで、criticality や data_classification を信頼判定に取り込めます。
実務で使える信頼ポリシー分解
- 本人性(OIDC基本クレーム)
- org / repo / ref / workflow
- 姿勢情報(カスタムプロパティ)
security_tier,contains_customer_data,deployment_scope
- 実行意図(ジョブ目的)
- build / test / deploy / release
本番ロール発行は、この3層を同時に満たす条件にします。
例:
- 本番デプロイロール:
security_tier=highかつdeployment_scope=prod-approved、保護ブランチ、署名済みワークフロー経路が必須 - 依存取得専用ロール:
contains_customer_data=falseなら許容範囲を広くする
Copilotコーディングエージェントとの接続
Copilotエージェントが触る範囲は、開発者体験設定ではなくアイデンティティ境界です。OIDC信頼モデルと同じメタデータを使って、エージェント権限も制御するべきです。
推奨ルール:
- オーナー情報未設定リポジトリはエージェント書き込み禁止
- AI生成変更で高リスクパス(IaC、IAM、決済)に触れる場合は強制レビュー
- インフラ中枢リポジトリはエージェント対象から分離
- エージェント操作ログをSIEMへ集約
事故時に即答すべき4点
インシデント時に数分で答えられなければ、復旧も説明責任も失敗します。
- どのクレーム内容でトークンが払い出されたか
- その時点のカスタムプロパティ値は何だったか
- コーディングエージェント経由の変更が含まれたか
- どのクラウドロールで何の操作が実行されたか
このため、トークンクレームのスナップショットとワークフロー来歴は不変保存が前提です。
破壊的変更を避ける移行ステップ
フェーズ1: メタデータ整備
- 全本番系repoに
ownercriticalitydata_classificationを必須化 - 値未設定repoの新規デプロイを止める
フェーズ2: シャドー判定
- 新ポリシーを監視モードで評価
- 旧allowlistとの差分を可視化
- 例外追加より先にルール改善を優先
フェーズ3: 段階切替
- 低リスク環境から本番適用
- 時限式ブレークグラス運用を整備
- ロールバック演習を事前実施
フェーズ4: AI運用連携
- Copilotエージェント権限をrepoメタデータ連動に変更
- AI生成のIaC変更にセキュリティ承認を必須化
- 月次で統制スコアカードを公開
成熟度を測る指標
- 姿勢連動OIDCで発行されたロールの比率
- メタデータ降格から権限剥奪までの平均時間
- repo姿勢とクラウド権限のドリフト件数
- AI生成変更の追加審査率
- 監査に必要な証跡の欠損率
まとめ
重要なのは「クレームが増えた」ことではなく、ソフトウェア供給網の状態をアイデンティティ判定に接続できるようになったことです。OIDC信頼・repoメタデータ・Copilot権限を一本化できる組織は、速度を落とさず統制を強化できます。