Amazon Inspector ECR スキャンの有効化について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、AWS CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Amazon Inspectorを使用したECRコンテナイメージの脆弱性スキャンの有効化について、その重要性と具体的な実装方法を解説します。

ポリシーの説明
Amazon Inspector v2はAWSの統合的な脆弱性管理サービスで、Amazon Elastic Container Registry (ECR) に保存されたコンテナイメージのセキュリティ脅威を継続的に評価します。Inspector v2のECRスキャン機能を有効化することで、以下の高度な莆弱性検出が可能になります:
- OSパッケージの脆弱性: Alpine、Amazon Linux 2/2023、Debian、Ubuntu、RHEL、CentOS、Oracle Linux、SUSE、Photon OS等の主要LinuxディストリビューションのOSパッケージのCVE
- プログラミング言語パッケージの脆弱性:
- Java (Maven, Gradle)
- Python (pip, Poetry)
- Node.js (npm, yarn)
- Go (go modules)
- .NET (NuGet)
- Ruby (gem)
- PHP (Composer)
- リアルタイムCVEモニタリング: NVD(National Vulnerability Database)やベンダーセキュリティアドバイザリに新しいCVEが登録されると、既存のイメージを24時間以内に自動的に再スキャンし、新たな脅威を検出
これにより、コンテナ化されたアプリケーションのセキュリティリスクを継続的に評価し、脆弱性が発見された場合は迅速に対処することが可能になります。
修復方法
コンソールでの修復手順
AWSマネジメントコンソールを使用してAmazon Inspector ECRスキャンを有効化する方法を説明します。
方法1: Amazon Inspectorコンソール経由での設定(推奨)
- AWSマネジメントコンソールにサインインし、Amazon Inspectorサービスに移動します。
- 初回アクセス時は「Get started」をクリックします。
- 「Activate Inspector」画面で、以下の設定を確認します:
- 「Amazon ECR container image scanning」:チェックボックスがオン(必須)
- 「Amazon EC2 scanning」:EC2インスタンスもスキャンする場合はオン
- 「AWS Lambda function scanning」:Lambda関数もスキャンする場合はオン
- 「AWS Lambda code scanning」:Lambdaコードのセキュリティ脆弱性もスキャンする場合はオン
- 「Activate Inspector」をクリックして有効化します。
- 既にInspectorが有効な場合は、左側のナビゲーションペインから「Settings」→「Account management」を選択し、「Amazon ECR scanning」のトグルをオンにします。

方法2: Amazon ECRコンソール経由での設定
- AWSマネジメントコンソールにサインインし、Amazon ECRサービスに移動します。
- 左側のナビゲーションペインから「プライベートレジストリ」→「スキャン」を選択し、「スキャンタイプの編集」をクリックします。
- 「スキャンタイプ」で「Enhanced scanning」(拡張スキャン)を選択します。
- Basic scanning: (非推奨・2024年内に廃止予定)Clairベースの旧式スキャンエンジン。OSパッケージのみスキャン。
- Enhanced scanning: (強く推奨)Amazon Inspector v2を使用。OSパッケージとプログラミング言語パッケージの両方をスキャン。
- スキャン設定で以下を確認します:
- 「Continuous scanning」(継続的スキャン): 有効(新しいCVEが発見された際の自動再スキャン)
- 「Scan on push」(プッシュ時スキャン): 有効(イメージプッシュ時の自動スキャン)
- 「保存」をクリックして設定を適用します。

スキャン結果の確認とレスポンス
- Amazon Inspectorコンソールで「Findings」を選択すると、ECRイメージの脆弱性が表示されます。
- 重要度でフィルタリングして、優先的に対処すべき脆弱性を特定できます:
- CRITICAL: 即座に対応が必要(CVSS v3.xスコア 9.0-10.0)- リモートからの認証なしコード実行等
- HIGH: 24-48時間以内の対応を推奨(CVSS v3.xスコア 7.0-8.9)
- MEDIUM: 7日以内の計画的対応(CVSS v3.xスコア 4.0-6.9)
- LOW: 30日以内の対応(CVSS v3.xスコア 0.1-3.9)
- INFORMATIONAL: 情報提供のみ(脆弱性ではない)
- 各検出結果をクリックすると、以下の詳細情報を確認できます:
- CVE ID、CVSSスコア、攻撃ベクトル(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H等)
- 影響を受けるパッケージとバージョン
- 修正済みバージョンの情報
- 修復手順(イメージの再ビルド等)
- EPSS(Exploit Prediction Scoring System)スコア(悪用可能性の予測)
- 「Container image」タブから、影響を受けるイメージとそれを使用しているECS/EKSワークロードを特定できます。
ベストプラクティス:
- マルチステージビルドの活用: 最終イメージのサイズと脆弱性を最小化
- ベースイメージの選択:
- distroless イメージやAlpine Linuxの使用を検討
- 公式イメージを優先的に使用
- 定期的なイメージ更新: 週次でベースイメージを更新するCI/CDジョブの設定
- 脆弱性対応SLA:
- Critical: 24時間以内
- High: 7日以内
- Medium: 30日以内
最後に
この記事では、Amazon Inspector v2を使用したECRコンテナイメージの脆弱性スキャンの重要性と実装方法を解説しました。
Amazon Inspector v2のECRスキャンを有効化することで、コンテナセキュリティの大幅な向上が期待できます。特に以下のベネフィットが得られます:
セキュリティ面のメリット
- リアルタイム保護: 新たなCVEが発見されると即座に既存イメージを再評価
- 包括的なカバレッジ: OSパッケージとプログラミング言語ライブラリの両方をスキャン
- シフトレフトセキュリティ: CI/CDパイプラインでの早期検出による修正コスト削減
運用面のメリット
- 統合管理: InspectorコンソールでEC2、Lambda、ECRすべての脆弱性を一元管理
- 自動化対応: EventBridgeとLambdaを使用した自動修復フロー
- コンプライアンス証明: 監査時に脆弱性管理の証跡を提示可能
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。
参考資料: