Amazon Inspector の ECR Image スキャンで古いイメージの検出結果を抑制する
はじめに
Amazon Inspector で ECR Image の脆弱性スキャンする際、「既に利用していない過去のイメージ」に対する検出内容が大量に表示され運用がし難いと感じたことはありませんか?
そういった不要な検出内容を抑制するために、Amazon Inspector では Suppression rule という抑制ルールを定義できる機能があるのですが、いざ運用で利用しようとするとユーザーに負担を強いる作りになっていました。
(例えば、Image push をトリガーに event bridge で lambda をコールして、lambda で Suppress rule を更新し、最新イメージ以外を抑制するなど)
今回は最近 Suppression rule で利用できるようになった新しい条件項目のうち「Image in use count」を使ってみたので、記録がてら記事にしてます。
利用方法
Amazon Inspector の Suppression rule で、以下のルールを作成します。
- Name: "Suppressing Unused Images"
- Description: "Suppressing rule for Unused Images"
- Suppression rule filters:
Image in use count >= 0 to <= 0
※ 名前と説明はなんでも良いです
これにより、使用されていない古いイメージは検出結果が抑制可能になります。
以前に比べてとてもシンプルに実装できるようになり、脆弱性管理の大幅なコスト減が達成できました 🙆♂️
注意点としては、 「Image in use count」は反映まで最大で 72 時間かかるらしいので、「対策したらすぐクローズ(抑制)してほしい!」というニーズは解決できません。
ECR の情報として表示できる 「Image running count」 が利用できるようになれば更に実用的になりそうですね!
追加で設定しておくと良いもの
ECR Image スキャンでは、対象のイメージが Inspector の解析ホスト上で実行及び脆弱性検出されます。
そのため、linux
や kernel
関連のパッケージは Inspector の解析ホストのパッケージが検出されており、イメージ自体の脆弱性とは異なる結果が表示されています。
したがって、これらについても suppression rule で抑制するとノイズを減らせます 😃
Discussion