🏥 健康診断で例えると超わかりやすい!
ECRイメージスキャン = Dockerイメージの「健康診断」
コンテナイメージに潜む脆弱性を見つけ出すセキュリティ機能です。
AWSは2つのスキャン方法を提供しています。
基本スキャン
:年1回の簡易健康診断 🩺
拡張スキャン
:24時間体制の健康モニタリング 🏥
どちらがあなたのプロジェクトに最適か、一緒に見ていきましょう!
• CVEデータベースと照合
• Linux系OSパッケージが主な対象
• または手動でオンデマンド実行
• 1回限りのスキャン
• 設定が簡単
• 軽量で高速
• 基本的な脆弱性検出には十分
• プログラミング言語パッケージ
(Python, Node.js, Java, Go, Ruby, .NET等)
• アプリケーション依存関係の脆弱性
• 新しい脆弱性が発見されたら自動再スキャン
• 24時間体制の監視
• CVSSスコアリング対応
• 継続的な監視
• 詳細なレポートと修復ガイダンス
• Security Hubとの統合
🏥 健康診断のたとえ話
基本スキャン
「年1回の健康診断」
会社の定期健康診断。身長、体重、血圧、基本的な血液検査だけ。
• 基本的な健康状態(OSパッケージ)
• 明らかな問題の発見
• 一般的な病気の有無
年1回、または体調不良を感じた時だけ病院へ。 普段は監視なし。
会社負担で無料!でも検査項目は限定的。
• 健康には自信がある
• 基本的なチェックで十分
• コストを抑えたい
拡張スキャン
「24時間健康モニタリング」
スマートウォッチで心拍数、睡眠、運動量を24時間監視。異常があればすぐアラート。
• 基本的な健康状態(OSパッケージ)
• 食生活・運動習慣(言語パッケージ)
• ストレスレベル(依存関係)
• 睡眠の質(アプリケーション層)
24時間365日監視。 新しい病気が発見されたら、過去のデータも再チェック!
月額料金がかかるけど、健康リスクを早期発見できる安心感。
• 健康管理を徹底したい
• 早期発見・早期対応が重要
• 包括的な健康情報が欲しい
⚠️ 脆弱性の深刻度レベル (CVSS)
今すぐ修正
優先的に対応
計画的に対応
監視継続
拡張スキャンでは、各脆弱性にCVSSスコア(0-10)が付与され、リスクの優先順位付けが簡単!基本スキャンでは単に「脆弱性あり/なし」の判定のみ。
🔄 スキャンの流れを比較
ECRにプッシュ
OSパッケージをスキャン
(1回限り)
脆弱性を確認
(基本情報のみ)
監視なし
新しい脆弱性は検出されない
ECRにプッシュ
OS + 言語パッケージを
包括的にスキャン
新しい脆弱性が発見されたら
自動で再スキャン
修復方法の提案
Security Hub連携
EventBridge通知
📊 詳細比較表
| 項目 | 基本スキャン | 拡張スキャン |
|---|---|---|
| スキャンエンジン | Clair (オープンソース) | Amazon Inspector |
| OSパッケージ | ✅ 対応 | ✅ 対応 |
| 言語パッケージ | ❌ 非対応 | ✅ 対応(Python, Node.js, Java等) |
| スキャン頻度 | プッシュ時 or オンデマンド | 継続的(24/7) |
| 新規脆弱性検出 | ❌ 再スキャン必要 | ✅ 自動再スキャン |
| CVSSスコアリング | ❌ なし | ✅ あり(0-10) |
| 修復ガイダンス | 基本的な情報のみ | 詳細な修復手順 |
| Security Hub統合 | ❌ 非対応 | ✅ 対応 |
| EventBridge通知 | 基本的な通知 | 詳細なイベント通知 |
| 料金 | ✅ 完全無料 | ⚠️ 有料(従量課金) |
| 推奨される用途 | 開発環境、個人プロジェクト | 本番環境、エンタープライズ |
💼 どちらを選ぶべき?シナリオ別ガイド
基本スキャンを選ぶべきケース
• 個人プロジェクトや小規模開発
• 開発・検証環境のみ
• セキュリティ要件が比較的緩い
• コストを最小限に抑えたい
• OSレベルの脆弱性チェックで十分
• 定期的に手動でスキャンできる
💡 具体例:
「趣味のWebアプリをコンテナ化。
基本的なセキュリティチェックができればOK」
拡張スキャンを選ぶべきケース
• 本番環境で稼働
• エンタープライズレベルのセキュリティ
• 顧客データを扱う
• コンプライアンス要件が厳しい
• Node.js、Python等の依存関係も監視
• ゼロデイ攻撃に備えたい
• Security Hubで一元管理
💡 具体例:
「金融系SaaSサービス。常に最新の脆弱性情報でイメージを監視し、問題があれば即座に検知・対応したい」
ハイブリッド戦略
開発環境:
• 基本スキャンで初期チェック
• コストを抑えつつ基本的な問題を検出
ステージング環境:
• 拡張スキャンでより詳細にチェック
• 本番投入前の最終確認
本番環境:
• 拡張スキャンで24時間監視
• 最高レベルのセキュリティ保証
💡 メリット:
コストと セキュリティのバランスを最適化!
段階的な移行戦略
フェーズ1: 基本スキャンで開始
• まずは無料で始めてみる
• スキャン結果の確認フローを確立
フェーズ2: 一部で拡張スキャンを試す
• 重要なサービスから拡張に移行
• コストと効果を測定
フェーズ3: 本番環境全体に展開
• ROIが確認できたら全面展開
• Security Hub連携で自動化
💡 ポイント:
いきなり全部じゃなくて、段階的に!
ECRを使い始めたら、まず基本スキャンを有効化。リスクゼロで始められる!
2. 本番環境には拡張スキャン一択:
顧客データを扱う本番環境では、拡張スキャンの継続監視が必須。
セキュリティインシデントのコストと比較すれば、スキャン費用は安い投資。
3. 言語パッケージを使ってる?→拡張スキャン:
Node.js、Python、Javaなどの依存関係が多いアプリケーションは、基本スキャンでは不十分。
npm、pip、mavenパッケージの脆弱性も検出できる拡張スキャンを選ぼう。
4. コンプライアンス要件を確認:
• PCI DSS、HIPAA等の規制対象?→拡張スキャン必須
• 継続的な脆弱性管理が求められる?→拡張スキャン
• 監査証跡が必要?→拡張スキャン(Security Hub連携)
5. コストの考え方:
拡張スキャンの料金は「イメージ数 × スキャン頻度」で決まる。
• 少数のイメージ→影響小
• 大量のイメージ→コストを事前計算
• 使わないイメージは定期的に削除してコスト削減!
6. 通知設定を忘れずに:
スキャンしても結果を見なければ意味がない!
• EventBridgeでSlack/Teams通知
• Security Hubのダッシュボードで一元管理
• CRITICAL/HIGHは即座にアラート
7. 定期的な見直しを:
3ヶ月ごとにスキャン結果とコストを見直し。
プロジェクトの成長に合わせて、基本→拡張への移行を検討しよう!
🎓 まとめ
🏥 健康診断 = ECRスキャン
コンテナイメージのセキュリティは、人間の健康管理と同じ。
基本的なチェックから始めて、必要に応じて詳細な監視へ!
年1回の健康診断
無料で基本的な
チェックができる
24時間健康監視
継続的に詳細な
チェックで安心
🎯 決定チャート:
本番環境で顧客データを扱う?
→ YES なら
拡張スキャン
一択!
開発・テスト環境だけ?
→
基本スキャン
でOK!
Node.js/Python/Java使ってる?
→
拡張スキャン
で依存関係も監視!
迷ったら?
→ まず
基本スキャン
で始めて、
成長に合わせて
拡張スキャン
へ!
セキュリティは投資です!
適切なスキャン方法を選んで、安全なコンテナ運用を実現しましょう!
まずは無料の基本スキャンから始めて、
プロジェクトの成長とともにステップアップ!🎉