正解: main ブランチのポリシーにステータス チェックを追加する。
解説: Azure Repos のブランチ ポリシーには「ステータス チェックを必須にする (Require status checks)」項目があり、外部サービス(カスタム セキュリティ スキャナーなど)が REST API で報告したステータスが成功であることを、main ブランチへの変更がマージされる前に必須にできます。App1 が main ブランチからデプロイされる前提では、main ブランチのポリシーにステータス チェックを設定することで、カスタム ツールによるセキュリティ検証に合格していないコードがデプロイ対象になることを防げます。
各選択肢の検討:
- 開発部門のブランチに付けても、main ブランチへ取り込まれる際に検証されないため、デプロイ前の保証になりません。
- main ブランチのポリシーへのステータス チェック追加が、デプロイ対象コードへの検証を強制でき、要件を満たします。
- Service hook は外部システムへのイベント通知の仕組みであり、デプロイをブロックする手段ではありません。
- ジョブ承認スコープの制限はパイプラインがアクセスできるリソース範囲を狭めるための機能で、セキュリティ検証の実行や強制とは無関係です。
参考: Microsoft Learn:
ブランチ ポリシーと設定