GitHubをレコードおよびコントロール プレーンのシステムとして記述する
エージェント システムには、ストア コード以上の機能を持つ環境が必要です。 意図をキャプチャし、アクションを記録し、検証を適用し、ポリシーを適用できる環境が必要です。 このラーニング パスでは、その環境GitHub。
このユニットでは学ぶことができます。
GitHubがエージェント ワークフローの記録システムとして機能する意味
GitHub がリポジトリポリシーとワークフローを通じて制御を強化する方法
エージェントの動作を監視および制約するために使用されるGitHubコントロール
レコードシステムとしてのGitHub
GitHubは、開発作業が提案および評価される成果物を格納するため、レコードのシステムです。
リポジトリとブランチ
コミットとプルリクエスト
問題とディスカッション (コンテキストと意図)
ワークフローの実行と成果物 (証拠)
決定履歴の確認
エージェントワークフローでは、これらの成果物は二重の義務を果たします。開発をサポートし、事後にエージェントの動作を検査できるようにします。
Note
このモジュールでは、一般的なGitHubガバナンス パターンに焦点を当てます。 GitHubシークレット スキャンやプッシュ保護などの高度なセキュリティ機能についてはここでは説明しませんが、運用環境では追加の検証信号として統合できます。
コントロール プレーンとしてGitHubする
GitHubコントロール プレーンは、(ポリシーによって構成されている場合)、エージェントのコントリビューションが実行できる内容とできないことを形成する強制ポイントを提供するためです。
コントロールの概要
| GitHub コントロール | 適用される内容 | エージェントにとって重要な理由 |
|---|---|---|
| Pull Request | マージ前に変更が提案される | エージェントの作業をレビュー可能で議論可能にする |
| 必須のレビュー | 人間およびエージェントの承認ゲート | 未表示のマージを防止し、アカウンタビリティをサポートします |
| 必須の状態チェック | マージ前の CI 証拠 | 評価を強制可能なポリシーに変換します |
| CODEOWNERS | パス別のルーティングを確認する | 影響の大きい変更を適切な専門家が監督できるようにします |
| ルールセット/ブランチ保護 | 一元化されたブランチ ポリシー | 安全でないマージを防止し、一貫性のあるガードレールを適用します |
| Environments | デプロイ/シークレットの承認 | 機密性の高い実行とシークレット アクセスを制御します |
Note
これらの強制動作は、構成とアクセス許可によって異なります。 たとえば、必要なチェックとルールセットを有効にすることは、通常、管理者タスクです。 監督モデルはどこでも動作します。強制を行うには、コントロールを有効にする必要があります。
GitHub Actionsはコントロールプレーンに属しています。
ワークフローは実行が検証される場所ですが、アクセス許可はチェックと同じくらい重要です。 重要なセキュリティ原則は、最小限の特権です。
既定のワークフロー トークンのアクセス許可を控えめに設定します (可能な場合は読み取り専用など)。
必要なタスクにのみ、高い権限を付与します。
環境と承認を使用して、機密性の高いシークレットとデプロイへのアクセスを制御します。
エージェント システムの場合、"エージェントができること" は、多くの場合、"ワークフロー トークンとツールの資格情報でできること" に減ります。コントロールとアクセス許可は、それに応じて設計する必要があります。
実装の例
ワークフローの実行は人間によって制御される 一部のエージェント PR ワークフローでは、実行中のワークフロー ("ワークフローの承認と実行" アクションなど) を明示的に承認する必要がある場合があります。 これは組み込みのガードレールです。信頼されていない変更に対して特権ワークフローが自動的に実行されるリスクが軽減されます。
環境がシークレットとデプロイを管理する ワークフロージョブが必要なレビューアーを含む環境を対象とする場合、ジョブは承認が付与されるまで待機します。 これにより、エージェントによってトリガーされるワークフローが、保護されたシークレットにアクセスしたり、人間によるレビューを行わずにデプロイしたりすることができなくなります (構成されている場合)。
CODEOWNERS は、リスクの高いパスのレビューをルーティング しますエージェントが機密性の高いパス (.github/workflows/ や infra/ など) のファイルを変更した場合、CODEOWNERS はそれらのパスの所有者にレビューを自動的に要求できます。 必要なレビューと組み合わせると、適切な専門家が影響の大きい変更を確実に監督できます。
実際GitHub制御を適用する方法
エージェントは、セキュリティ修正プログラムを使用してプル要求を開きます。 Github:
PR で変更を表示する
CODEOWNERS を介して適切なレビュー担当者にルーティングします (構成されている場合)
必要なチェックとワークフローを使用して評価します
ポリシー要件が満たされるまでマージをブロックします (構成されている場合)
承認が付与されるまで保護された環境シークレットへのアクセスを禁止します (構成されている場合)
GitHubがコントロールプレーンであるというのは、ここで管理が行われるということです。
GitHubは、エージェントの作業が格納される場所だけではありません。 エージェントの作業が監視され、検証され、管理される場所です。 リポジトリとプル要求により、作業が表示されます。チェック、レビュー、CODEOWNERS、ルールセット、ブランチ保護、および環境により、作業が制御可能になります。
GitHubがエージェントの動作を制約して検証する方法を見てきたので、次の手順は責任を調べることです。 次のユニットでは、エージェントがワークフロー内で行動するときに、誰が責任を負うのか見ていきます。