🔍🐳

Amazon Inspector ECRスキャン

コンテナイメージの脆弱性を自動検出する空港セキュリティシステム

📌 3分でわかる!Inspector ECRスキャンのポイント

🎯 何ができる?

ECRに保存されたコンテナイメージの脆弱性(セキュリティの穴)を自動で見つけ出す

⏰ いつスキャン?

プッシュ時(入庫時検査)と継続的(定期巡回検査)の2つの方式

🎛️ 柔軟な設定

スキャン対象のリポジトリを選択可能、Security Hubとも連携

💰 コスト効率

必要なリポジトリだけスキャンしてコストを最適化

✈️ 空港のセキュリティ検査で理解する Inspector ECRスキャン

Amazon Inspector ECRスキャンは、 空港のセキュリティ検査システム のようなもの。
旅客の荷物(コンテナイメージ)をチェックして、危険物(脆弱性)を見つけ出します!
📦
ECR
荷物保管エリア
🧳
コンテナイメージ
旅客の荷物
🔍
Amazon Inspector
セキュリティ検査
⚠️
脆弱性(CVE)
危険物・禁止物
📡
Security Hub
中央監視センター

🏢 空港セキュリティの流れ = Inspector ECRスキャンの流れ

🧳
① 荷物を預ける(docker push)
旅客がスーツケースをカウンターに預ける = 開発者がコンテナイメージをECRにプッシュ
⬇️
🛃
② プッシュ時スキャン(入庫検査)
荷物がX線検査を通過 = イメージがプッシュされた瞬間に脆弱性をスキャン
⬇️
🏪
③ 荷物保管エリア(ECRリポジトリ)
検査を通過した荷物を安全に保管 = スキャン済みイメージをリポジトリに格納
⬇️
👮
④ 継続的スキャン(定期巡回検査)
警備員が定期的に保管エリアを巡回 = 新しい脆弱性が発見されたら自動で再スキャン
⬇️
📡
⑤ Security Hub(中央監視センター)
異常を検知したら即座に管制塔へ報告 = スキャン結果を一元管理して可視化

⚡ 2つのスキャン方式を徹底比較

🚀
プッシュ時スキャン
On-Push Scanning
🛃「荷物を預けた瞬間の入庫検査」
新しい荷物が来たら即座にX線検査!
  • イメージをプッシュした瞬間に即座にスキャン
  • 初回のみスキャン(1回限り)
  • 新しいイメージの基本チェックに最適
  • デフォルトで有効化可能
  • コストを抑えたい場合に有効
🔄
継続的スキャン
Continuous Scanning
👮「警備員による定期巡回検査」
保管中の荷物も毎日チェック!
  • 保存済みイメージを継続的に再スキャン
  • 新しいCVE(脆弱性情報)が公開されたら自動検出
  • 本番環境のセキュリティ維持に最適
  • Inspector有効化で選択可能
  • 長期運用するイメージに推奨
比較項目 🚀 プッシュ時スキャン 🔄 継続的スキャン
スキャンタイミング プッシュ時のみ(1回) プッシュ時 + 継続的に再スキャン
新しいCVE検出 ❌ 検出されない ✅ 自動で再スキャンして検出
たとえ話 入庫時の1回検査のみ 入庫検査 + 定期巡回検査
コスト 💰 低コスト 💰💰 やや高め(継続課金)
推奨シーン 開発・テスト環境 本番環境・長期運用イメージ

🔄 Inspector ECRスキャンの処理フロー

イメージプッシュから脆弱性検出までの流れ

👨‍💻
開発者
docker push
📦
ECR
イメージ保存
🔍
Inspector
スキャン実行
📋
脆弱性レポート
CVE一覧
📡
Security Hub
一元管理

🔗 Security Hub との統合

複数のセキュリティサービスの検出結果を 中央監視センター で一元管理

🔍
Inspector
ECRスキャン結果
➡️
📡
Security Hub
中央監視センター
➡️
🔔
通知・対応
EventBridge / SNS

🎯 Security Hub統合のメリット

  • ✅ 複数AWSアカウント・リージョンの脆弱性を一画面で確認
  • ✅ 重要度(Critical/High/Medium/Low)でフィルタリング・優先順位付け
  • ✅ EventBridgeと連携して自動修復ワークフローを構築
  • ✅ コンプライアンスチェックと組み合わせてセキュリティ体制を強化

🎯 スキャン対象リポジトリの選択

すべてのリポジトリをスキャンするのではなく、 必要なものだけを選択 してコスト最適化!

📦
production-api
✅ スキャン中
📦
web-frontend
✅ スキャン中
📦
dev-sandbox
⏸️ スキップ
📦
batch-jobs
✅ スキャン中
📦
test-images
⏸️ スキップ
📦
auth-service
✅ スキャン中
✅ スキャン推奨

本番環境・ステージング環境のイメージ

⏸️ スキップ可

開発用・テスト用の一時的なイメージ

💻 AWS CLI コマンド例

🛠️ Inspector ECRスキャンの設定コマンド

# Inspector を有効化(ECRスキャン含む)
aws inspector2 enable --resource-types ECR
# 継続的スキャンの設定を確認
aws inspector2 get-configuration
# 特定リポジトリのスキャン結果を取得
aws inspector2 list-findings \ --filter-criteria '{"resourceType":[{"comparison":"EQUALS","value":"AWS_ECR_CONTAINER_IMAGE"}]}'
# ECRリポジトリのスキャン設定を更新
aws ecr put-image-scanning-configuration \ --repository-name my-repo \ --image-scanning-configuration scanOnPush=true
# スキャン結果のサマリーを取得
aws inspector2 list-finding-aggregations \ --aggregation-type REPOSITORY

🎪 ユースケース別おすすめ設定

🏢
エンタープライズ本番環境
継続的スキャン + Security Hub統合で24時間365日監視。新しいCVEが公開されたら即座に検知して対応。
🚀
CI/CDパイプライン
プッシュ時スキャンでデプロイ前に脆弱性チェック。Critical/High検出でデプロイをブロック。
💻
開発・テスト環境
プッシュ時スキャンのみでコスト削減。本番昇格前のセキュリティゲートとして活用。
🔒
コンプライアンス対応
全リポジトリで継続的スキャン + 定期レポート生成。監査対応の証跡として保存。

✨ ベストプラクティス

1
本番リポジトリは継続的スキャン
長期運用するイメージは、新しい脆弱性発見に備えて継続的スキャンを有効化
2
Security Hubで一元管理
複数リポジトリ・アカウントの脆弱性を統合ダッシュボードで可視化
3
重要度でフィルタリング
Critical/Highの脆弱性を優先的に対応。すべてに対応しようとしない
4
自動通知の設定
EventBridge + SNS/Slackで重大な脆弱性検出時に即座にアラート
5
不要リポジトリはスキップ
開発用・テスト用のイメージはスキャン対象外にしてコスト最適化
6
ベースイメージの定期更新
脆弱性の根本原因であるベースイメージを定期的に最新化

❓ よくある質問(FAQ)

💬 プッシュ時スキャンと継続的スキャン、両方必要? +
本番環境では 両方の併用がおすすめ です。プッシュ時スキャンで初回チェック、継続的スキャンで新しい脆弱性の発見に対応できます。開発環境ではプッシュ時スキャンのみでも十分なケースが多いです。
💬 継続的スキャンはどのくらいの頻度で実行される? +
AWSの脆弱性データベースが更新されたタイミングで自動的に再スキャンされます。通常は 1日に数回 程度。新しいCVEが公開されると、該当するイメージが自動で再スキャンされます。
💬 Inspector ECRスキャンの料金は? +
スキャン対象のイメージ数に応じた従量課金です。初回スキャンと再スキャンで料金が異なります。不要なリポジトリをスキャン対象から外すことでコスト最適化が可能です。最新の料金は AWS公式サイト をご確認ください。
💬 脆弱性が見つかったらどうすればいい? +
重要度を確認 (Critical/High優先)→ ② 影響範囲を特定 (どのサービスで使用中か)→ ③ 修正方法を確認 (パッケージ更新やベースイメージ変更)→ ④ 新しいイメージをビルド&プッシュ の流れで対応します。
💬 ECR基本スキャンとInspectorスキャンの違いは? +
ECR基本スキャン はOSパッケージのみが対象で、手動または プッシュ時のみ。 Inspectorスキャン(拡張スキャン) は OSパッケージ + プログラミング言語パッケージも対象で、継続的スキャンも可能。Security Hub統合もInspectorならでは。

Created by SSuzuki1063

AWS SAP Learning Resources