正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

フロー実行に関するセキュリティの考慮事項

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

フローがGitLab CI/CDで実行される場合:

  • アクセスを制限するために、フローは複合アイデンティティを使用します。
  • これらは一時的なワークロードパイプラインを作成し、フローが完了すると削除されます。
  • フローが使用できるツールは、フローの目的に応じて制限されます。これらのツールには、マージリクエストの作成、実行環境でのローカルShellコマンドの実行などが含まれます。

デフォルトでは、フローはGitLabインスタンスへのネットワークアクセスのみを持ちます。ネットワークアクセスルールに関する詳細は、ネットワークポリシーを設定する方法を参照してください。この分離された環境により、Shellコマンドの実行による意図しない結果から保護されます。

GitLab UIでフローが自律的に実行されるのを防ぐため、フローの実行をオフにすることができます。

agent-config.ymlのセキュリティに関する影響

.gitlab/duo/agent-config.ymlファイルは、setup_scriptで実行されるコマンドを含め、CI/CDでのフローの実行方法を制御します。フローの実行方法により、このファイルへの変更は、それらをコミットしたユーザーだけでなく、より多くのユーザーに影響を与えます。

クロスユーザー実行

フローは、複合アイデンティティを通じてそれらをトリガーするユーザーのIDで実行されます。setup_scriptのコマンドは、設定をコミットしたユーザーの認証情報ではなく、トリガーするユーザーの複合アイデンティティの認証情報で実行されます。

.gitlab/duo/agent-config.ymlへの書き込みアクセス権を持つユーザーは、別のユーザーのRunner環境で何が実行されるかに影響を与えることができます。このファイルへの変更は、後にプロジェクトでフローをトリガーするすべてのユーザーの実行コンテキストに影響を与えます。

公開される環境変数

Anthropic Sandbox Runtime(SRT)の外部で実行されるsetup_scriptの実行中、以下の機密性の高い変数が環境に存在します:

  • GITLAB_OAUTH_TOKENGITLAB_TOKEN: 複合アイデンティティを介した、トリガーするユーザーのOAuthトークン。
  • DUO_WORKFLOW_GIT_HTTP_PASSWORD: Git HTTPパスワード。
  • DUO_WORKFLOW_SERVICE_TOKEN: サービストークン。
  • DUO_WORKFLOW_GIT_USER_EMAILDUO_WORKFLOW_GIT_USER_NAME: トリガーするユーザーのメールアドレスと名前。

公開される変数の完全なリストについては、フロー実行変数を参照してください。

.gitlab/duo/agent-config.ymlファイルへの不正な変更のリスクを軽減するには、次のことを行います:

  • 直接のプッシュを防ぐために、デフォルトブランチを保護します。

  • コードオーナーを使用して、.gitlab/duo/agent-config.ymlへの変更がマージされる前に、特定のオーナーからの承認を要求します。たとえば、CODEOWNERSファイルに以下を追加します:

    .gitlab/duo/agent-config.yml @your-group/security-reviewers
  • このファイルを変更するマージリクエストには、信頼できるメンテナーからのレビューを要求する承認ルールを設定します。