Skip to content
Latchkey

セキュリティ gate とは? - リスクのあるコードの出荷を止める

セキュリティ gate とは、build が定義されたセキュリティポリシーに違反したときに、その先へ進むのを止める、パイプライン内の自動化されたチェックポイントです。

セキュリティ gate は、ポリシーがパイプラインと出会う場所です。「この build は通過しない限り先へ進まない」と告げる必須のチェックです。スキャン、secret チェック、ライセンスルール、attestation の要件、そのいずれもが gate になりえます。うまくやれば、gate は問題を自動的かつ一貫して捕捉します。まずくやれば、人々が迂回するうるさい障害物になります。

gate が強制するもの

  • 依存関係やイメージに、修正可能な critical な脆弱性がないこと。
  • diff の中に secret が検出されないこと。
  • 必要な署名または attestation が存在すること。
  • ライセンスとポリシーの遵守。

gate の仕組み

gate は、その失敗がパイプラインをブロックする CI のステップです。pull request が文字どおりマージできなくなるよう必須ステータスチェックとして設定するか、artifact が本番に到達できないようデプロイ gate として設定し、通過するまで進めないようにします。

調整の問題

低い深刻度の検出結果すべてでブロックする gate は、人々にそれを無視するか迂回するよう仕込んでしまいます。効果的な gate は、実際に深刻で対応可能なもの(修正可能な critical、本物の secret)でブロックし、それ以外は build を止めずに報告します。

ハード gate vs ソフト gate

ハード gate は build を失敗させます。ソフト gate は警告しつつ通過を許します。カバレッジを整えている間や、助言的なチェックに便利です。多くのチームは、ノイズを見積もるためにソフトから始め、シグナルが信頼できるようになったら gate を厳格にします。

gate とシフトレフト

gate を早い段階に置くこと(デプロイ直前だけでなく pull request にも)が、シフトレフトセキュリティの本質です。修正が安価なうちに問題を捕捉し、終盤に積み上がる前に対処するのです。マージ時の gate は、問題が共有ブランチに到達することを未然に防ぎます。

重要なポイント

  • セキュリティ gate は、定義されたセキュリティポリシーに違反する build をブロックする。
  • 失敗が本当に進行を止めるよう、必須チェックまたはデプロイ gate として組み込む。
  • 深刻で対応可能な検出結果でブロックするよう調整し、信頼性を保つ。

関連ガイド