Amazon Web Services ブログ
Amazon ECR イメージを実行中のコンテナにマッピングすることでコンテナのセキュリティを強化する Amazon Inspector
コンテナワークロードを実行するときは、ソフトウェア脆弱性がリソースのセキュリティリスクをどのように引き起こすかを理解する必要があります。これまで、Amazon Elastic Container Registry (Amazon ECR) イメージの脆弱性を特定することはできましたが、これらのイメージがコンテナ内でアクティブかどうかを判断したり、その使用状況を追跡したりすることはできませんでした。これらのイメージが実行中のクラスターで使用されているかどうかを把握できなかったため、実際のデプロイや使用パターンに基づいて修正を優先順位付けする能力にも限界がありました。
5 月 19 日より、 Amazon Inspector が脆弱性管理を強化する 2 つの新機能の提供を開始し、コンテナイメージをより包括的に確認できるようになりました。まず、Amazon Inspector が Amazon ECR イメージを実行中のコンテナにマッピングするようになりました。このため、セキュリティチームは環境内で現在実行されているコンテナに基づいて脆弱性の優先順位付けを行えるようになります。これらの新機能を使用することで、Amazon ECR イメージの脆弱性を分析するとともに、それらが現在実行中かどうか、コンテナ環境で最後に実行されたのはいつだったかに基づいて、検出結果に優先順位を付けることができます。さらに、クラスターの Amazon リソースネーム (ARN) を表示し、イメージがデプロイされている EKS ポッドまたは ECS タスクの数を確認することもできます。これは、使用状況と重大度に基づいた修正の優先順位付けに役立ちます。
次に、脆弱性スキャンのサポートを最小限のベースイメージ (scratch、distroless、Chainguard イメージなど) に拡張するとともに、Go Toolchain、Oracle JDK および JRE、Amazon Corretto、Apache Tomcat、Apache httpd、WordPress (コア、テーマ、プラグイン)、Puppeteer などの追加のエコシステムに対するサポートも拡張しました。これらの拡張は、チームが高度に最適化されたコンテナ環境でも堅牢なセキュリティを維持するために役立ちます。
Amazon Inspector は、コンテナ上で実行されているイメージを継続的に監視して追跡することで、どのコンテナイメージが環境内でアクティブに実行されており、それらがどこにデプロイされているかをチームが特定できるようにして、Amazon Elastic Container Service (Amazon ECS) や Amazon Elastic Kubernetes Service (Amazon EKS) 内のコンテナで実行されている Amazon ECR イメージと、関連する脆弱性を検出します。このソリューションは、委任された管理者機能を用いて単一の AWS アカウント、クロスアカウントシナリオ、および AWS Organizations の全体で Amazon ECR イメージを管理するチームをサポートし、コンテナイメージの実行パターンに基づく一元化された脆弱性管理を可能にします。
実際の動作を見てみましょう
Amazon ECR イメージスキャンは、リポジトリの継続的な自動スキャン機能を提供するために Amazon Inspector と統合する拡張スキャンを使用して、コンテナイメージ内の脆弱性を特定できるようにします。この新機能を使用するには、Amazon ECR コンソールで拡張スキャンを有効にする必要があります。拡張スキャンは、「Configuring enhanced scanning for images in Amazon ECR」ドキュメントページの手順に従って有効化できます。 私は Amazon ECR 拡張スキャン機能を既に有効化しているので、追加のアクションは必要ありません。
Amazon Inspector コンソールのナビゲーションパネルにある [全般設定] に移動し、[ECR scanning settings](ECR スキャン設定) を選択します。ここでは、[Last in-use date](最終使用日) と [Last pull date](最終プル日) のいずれかを選択して [Image re-scan mode](イメージの再スキャンモード) を設定できます。ここではデフォルトの [Last in-use date](最終使用日) を使用し、[Image last in use date](イメージの最終使用日) を [14 days](14 日) に設定します。これらの設定により、過去 14 日の間に私の Amazon ECS または Amazon EKS 環境でイメージがいつ実行されたかに基づいて、Inspector がイメージを監視するようになります。これらの設定を適用すると、Amazon Inspector がコンテナで実行されているイメージに関する情報の追跡を開始し、その情報を脆弱性検出結果に組み込むようになるため、環境内のコンテナでアクティブに実行されているイメージに焦点を当てることができるようになります。
設定が完了したら、コンテナで実行されているイメージに関する情報が [詳細] メニューに表示されます。ここでは、EKS ポッドまたは ECS タスクの数とともに、最終使用日と最終プル日を確認できます。
[Deployed ECS Tasks/EKS Pods](デプロイされた ECS タスク/EKS ポッド) の数を選択すると、各イメージのクラスター ARN、最終使用日、タイプを確認できます。
クロスアカウントの可視性デモのため、2 つのアカウントに EKS ポッドがデプロイされたリポジトリを用意しました。[Resources coverage](リソースカバレッジ) メニューで [Container repositories](コンテナリポジトリ) に移動し、リポジトリ名を選択してから、[Image tag](イメージタグ) を選択します。以前と同様に、デプロイされた EKS ポッド/ECS タスクの数を確認できます。
デプロイされた EKS ポッド/ECS タスクの数を選択すると、それが別のアカウントで実行されていることがわかります。
[検出結果] メニューでは脆弱性を確認でき、そのうちの 1 つを選択すると、[影響を受けるリソース] データで [Last in use](最終使用) 日と、脆弱性に関係する [Deployed ECS Tasks/EKS Pods](デプロイされた ECS タスク/EKS ポッド) を見つけることができます。これは、実際の使用状況に基づいて修正の優先順位付けを行うために役立ちます。
[すべての検出結果] メニューでは、[Account ID](アカウント ID)、[Image in use count](使用中のイメージ数)、[Image last in use at](イメージの最終使用日) などのフィルターを使用して、アカウント管理内の脆弱性を検索できるようになりました。
![]() |
![]() |
---|
主な機能と考慮事項
コンテナイメージのライフサイクルに基づく監視 – Amazon Inspector は、イメージのプッシュ日 (期間範囲は 14 日、30 日、60 日、90 日、180 日、または lifetime (ライフタイム))、イメージのプル日 (14 日、30 日、60 日、90 日、または 180 日)、停止期間 (Never (停止なし) から 14 日、30 日、60 日、90 日、または 180 日)、およびコンテナで実行されているイメージのステータスに基づいてイメージのアクティビティを判断できるようになりました。この柔軟性により、組織はその監視戦略をリポジトリイベントだけでなく、実際のコンテナイメージの使用状況に基づいてカスタマイズできるようになります。Amazon EKS と Amazon ECS のワークロードについては、最終使用、プッシュ期間、プル期間が 14 日に設定されており、これが新規のお客様のデフォルトになりました。
イメージランタイム対応の詳細情報 – 修正作業の優先順位付けを支援するため、Amazon Inspector の各検出結果には、コンテナでのイメージの最終実行日を示す lastInUseAt 日付と、イメージを現在使用しているデプロイされた EKS ポッド/ ECS タスクの数を示す InUseCount が含まれるようになりました。Amazon Inspector は、すべてのアカウントの Amazon ECR 最終プル日のデータと、Amazon ECS タスクまたは Amazon EKS ポッドコンテナで実行されているイメージのデータの両方を監視し、この情報を少なくとも 1 日 1 回更新します。Amazon Inspector はこれらの詳細情報をすべての検出結果レポートに統合し、Amazon EventBridge とシームレスに連動します。検出結果は、ローリングウィンドウまたは固定範囲のオプションを使用する lastInUseAt フィールドに基づいてフィルタリングできます。また、過去 14 日、30 日、60 日、または 90 日間の最終実行日に基づいてイメージをフィルタリングすることも可能です。
包括的なセキュリティカバレッジ – Amazon Inspector は、単一のサービスを通じて、従来の Linux ディストリビューションと、最小限のベースイメージ (scratch、distroless、Chainguard イメージなど) の両方に対する統合脆弱性評価を提供できるようになりました。拡張されたカバレッジにより、複数のスキャンソリューションを使用する必要がなくなるのと同時に、従来のディストリビューションから高度に最適化されたコンテナ環境におよぶコンテナエコシステム全体で堅牢なセキュリティプラクティスを維持することができます。このサービスは、一元化されたプラットフォームを通じた包括的な脆弱性管理を提供することでセキュリティ業務を合理化し、あらゆるコンテナタイプの効率的な評価を可能にします。
強化されたクロスアカウント可視性 – 単一アカウント、クロスアカウント設定、AWS Organizations 全体でのセキュリティ管理が、委任された管理者機能を通じてサポートされるようになりました。Amazon Inspector は、同じ組織内のコンテナで実行されているイメージの情報を共有します。これは、ゴールデンイメージリポジトリを維持しているアカウントにとっては特に有用です。Amazon Inspector は、リソースが API を使用するアカウントに属している場合、イメージが実行されている Amazon EKS クラスターと Amazon ECS クラスターのすべての ARN を提供するため、複数の AWS アカウント全体に対する包括的な可視性が得られます。システムは、デプロイされた EKS ポッドまたは ECS タスクの情報を少なくとも 1 日 1 回更新し、アカウントが組織に参加または離脱するときも正確性を自動的に維持します。
利用可能性と料金 – 新しいコンテナマッピング機能は、Amazon Inspector が提供されているすべての AWS リージョンで利用でき、追加料金はありません。使用を開始するには、AWS Inspector ドキュメントをご覧ください。料金の詳細と提供されているリージョンについては、AWS Inspector の料金表ページを参照してください。
追記: AWS でのブログ記事の執筆は、常にチームとしての取り組みです。これは、記事のタイトルの下に 1 人の名前しか表示されない場合でも同様です。今回は、テクニカルガイダンスでの惜しみない援助と、専門知識を提供してくれた Nirali Desai に感謝の意を述べたいと思います。この包括的な概要をまとめることができたのは彼女のおかげです。
– Eli
原文はこちらです。
ニュースブログはいかがでしたか? こちらの 1 分間のアンケートにぜひご協力ください!
(このアンケートは外部企業に委託して行われます。AWS は、AWS プライバシー通知に記載されているとおりにお客様の情報を取り扱います。AWS は、このアンケートを通じて収集したデータを所有し、収集した情報をアンケートの回答者と共有することはありません)