HAQM Web Services ブログ
HAQM Inspector を使用した HAQM ECR プライベートレジストリでのコンテナスキャンの更新
本投稿は Brad Gray と Paavan Mistry による記事 Container scanning updates in HAQM ECR private registries using HAQM Inspector を翻訳したものです。
先週の re:Invent 2021 で、クラウドワークロードの脆弱性管理を強化した 新しい HAQM Inspector を発表しました。 HAQM Inspector は、セキュリティ評価と管理を大規模に自動化するために、あらゆる規模の組織で利用されているサービスです。HAQM Elastic Container Registry( HAQM ECR )のプライベートレジストリのお客様向けに、今回の発表では、2019年10月にリリースした コンテナイメージのネイティブスキャン機能 の更新、強化、統合が行われました。この記事では、HAQM ECR プライベートレジストリのお客様向けに、これらのアップデートと新しいコンテナスキャンの選択肢を説明します。
導入
コンテナイメージの脆弱性をスキャンすることは、コンテナワークロードの安全性を確保するために、クラウドネイティブのサプライチェーン内で重要なセキュリティコントロールです。プライベートレジストリの HAQM ECR image scanning では、Enhanced scanning と Basic scanning の2つのスキャンオプションが提供されるようになりました。どちらの選択肢もコンテナイメージの静的スキャンを提供します。静的スキャンでは、コンテナイメージ内のオペレーティングシステム(OS)パッケージを、既知のセキュリティ脅威の公開リストである Common Vulnerabilities and Exposures(CVE)を基にスキャンすることができ、独自のスキャンインフラをセットアップしたり、サードパーティのスキャンライセンスを購入したりする必要がありません。
Enhanced scanning では、HAQM ECR は HAQM Inspector と統合し、リポジトリの自動的かつ継続的なスキャンを提供します。 HAQM Inspector による Enhanced scanning は、サポートされているオペレーティングシステムをスキャンし、ドキュメントに記載されている Python、Java、C#、Golang などの一般的なプログラミング言語のスキャンもサポートされています。 Basic scanning では、リポジトリの設定によって、プッシュをトリガーにした自動スキャン、もしくは手動スキャンを実行できます。これにより、HAQM ECR のスキャン結果リストを表示することができます。このブログでは、これらの機能アップデートと設定についてさらに掘り下げていきます。
イメージスキャンのためのレジストリレベルの設定
HAQM ECR プライベートレジストリで利用可能なリポジトリレベルのscan-on-push機能は、現在非推奨となっており、レジストリレベルのスキャン設定に切り替わっています。プライベートレジストリの Basic scanning はデフォルトで提供されますが、Enhanced scanning をレジストリで有効にすることで、コンテナイメージの脆弱性を見つけるための自動的かつ継続的なスキャンを提供することができます。すでに scan-on-push 機能を使用している既存の HAQM ECR プライベートレジストリのお客様には、HAQM ECR 内で Basic scanning がデフォルトで有効になります。
お客様は、HAQM ECR コンソールまたは AWS CLI を使用して、お客様のプライベートレジストリの Basic scanning または Enhanced scanning を有効にすることができます。 HAQM ECR コンソールを使用して、お客様は Private registry、Scanning の順に移動して、スキャンタイプを選択することができます。
以下の例では、プライベートレジストリに対して AWS CLI を使用して Enhanced scanning を有効にし、スキャンフィルタを指定しています。デフォルトでは、rules
が指定されていない場合、HAQM ECR はすべてのリポジトリに対して継続的なスキャンを行うスキャン設定を行います。
aws ecr put-registry-scanning-configuration \
--scan-type ENHANCED \
--rules '[{"repositoryFilters" : [{"filter":"prod","filterType" : "WILDCARD"}],"scanFrequency" : "CONTINUOUS_SCAN"}]' \
--region us-west-2
Enhanced scanning
HAQM ECR Enhanced scanning は、HAQM Inspector との統合により、お客様のコンテナイメージに対して脆弱性スキャンを実行します。コンテナイメージは、オペレーティングシステムとプログラム言語パッケージの両方の脆弱性がスキャンされます。 HAQM ECR と HAQM Inspector の両方で、スキャン結果を直接確認することができます。
Enhanced scanning では、どのリポジトリを自動かつ継続的スキャンに設定し、どのリポジトリをプッシュ時スキャンに設定するかを選択することができます。これは、先ほど AWS CLI コマンドを使用して実演したように、スキャンフィルターを設定することによって行われます。プライベートレジストリで Enhanced scanning が有効になっている場合、スキャンフィルターに一致するすべてのリポジトリは Enhanced scanning のみを使用してスキャンされます。フィルターにマッチしないリポジトリは、スキャンされることはありません。
このブログでは、以前使用したAWS CLIの例を使って、Enhanced scanning を実際に見てみましょう。 HAQM ECR のプライベートレジストリのスキャンタイプ ENHANCED
を有効にし、prod
リポジトリに設定された継続的なスキャンフィルターを有効にしています。自動再スキャンは、Enhanced scanning 設定で継続オプションを使用するかオンプッシュオプションを使用するかに基づいて、コンテナイメージに対して自動再スキャンがトリガーされます。 HAQM Inspector がデータベースに新しいCVEを追加するたびに、設定された HAQM ECR リポジトリ内のすべての適格なコンテナイメージがそれに応じてスキャンされます。
まず、プライベートレジストリに、本番用とテスト用のサンプルイメージを保存するためのリポジトリを2つ作成しましょう。
aws ecr create-repository --repository-name scanrepo-prod
aws ecr create-repository --repository-name scanrepo-test
次に、脆弱なイメージのサンプル(ここではデモンストレーション目的でのみ使用)をプルし、イメージにタグを付けて、作成した本番リポジトリにプッシュします。以下のサンプルの AWSアカウント番号をご自身のAWSアカウント番号に置き換えてください。
この例では、Enhanced scanning が HAQM ECR パブリックイメージの最近の Apache Log4j2 の脆弱性(CVE-2021-44228)を特定する方法を示しています。
docker pull public.ecr.aws/docker/library/neo4j:4.4.0
docker tag public.ecr.aws/docker/library/neo4j:4.4.0 111122223333.dkr.ecr.us-west-2.amazonaws.com/scanrepo-prod
docker tag public.ecr.aws/docker/library/neo4j:4.4.0 111122223333.dkr.ecr.us-west-2.amazonaws.com/scanrepo-test
aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 111122223333.dkr.ecr.us-west-2.amazonaws.com/scanrepo-prod
docker push 111122223333.dkr.ecr.us-west-2.amazonaws.com/scanrepo-prod
docker push 111122223333.dkr.ecr.us-west-2.amazonaws.com/scanrepo-test
プライベートレジストリ内の prod
リポジトリに対して継続スキャンが有効になっているため、次のスクリーンショットのように、HAQM ECR コンソールに画像の HAQM Inspector からの結果が表示されていることがわかります。
ECR コンソールでは、下図のように HAQM Inspector コンソールを通じて、脆弱性を深く掘り下げ、スキャンで得られた知見を整理することができます。
また、以下のように、コンテナイメージ別、レイヤー別、リポジトリ別などのレポートビューで、Enhanced scanning の結果を確認することも可能です。
HAQM ECR と HAQM Inspector は、AWS SecurityHubや HAQM EventBridge(旧称 CloudWatch Events)といった他の AWS サービスともデータを共有することができます。以下のスクリーンショットは、AWS Security Hub 内で利用可能なスキャン結果を示しています。EventBridge の詳細については、HAQM ECR events と EventBridge を参照してください。
prod
リポジトリに設定されたフィルタのため、test
リポジトリでは手動スキャンが有効になっており、そのためコンソールでは脆弱性のステータスがスキャンオフと表示されています。
お客様は、アプリケーションのリスクとセキュリティのベースラインに基づいて、これらの Enhanced scanning 機能を使用して自動化および最適化戦略を構築することができます。
Basic scanning
プライベートレジストリで Basic scanning を有効にすると、リポジトリフィルタを設定してプッシュ時にスキャンするように設定したリポジトリを指定したり、CLIコマンド の start-image-scan
を使用して手動スキャンを実行したりすることができるようになります。 HAQM ECR は、スキャン結果のリストを提供します。各コンテナイメージは、24時間に1回スキャンされる可能性があります。
HAQM ECR は、オープンソースの Clair プロジェクトのCVEデータベースを使用し、スキャン結果のリストを提供します。デプロイされているコンテナイメージのセキュリティに関する情報を得るために、スキャン結果を確認することができます。Clair の詳細については、GitHub の Clair を参照してください。 HAQM ECR は、イメージスキャンが完了すると、HAQM EventBridge(旧称CloudWatch Events)にイベントを送信します。
Basic scanning に関する詳細な設定情報は、ドキュメント に記載されています。
対象範囲と価格
HAQM ECR で利用可能な新しいスキャン方法についてご理解いただけたと思いますので、次に対象範囲とコストについての質問にお答えします。現時点では、HAQM ECR は、Debian、Ubuntu、HAQM Linuxを含む、ほとんどの一般的な Linux ディストリビューションの OS パッケージの CVE スキャンを提供しています。最新のリストについては、サポートされているOSとプログラミング言語 のドキュメント を参照してください。
HAQM ECR をご利用のお客様は、追加料金なしで Basic scanning をご利用いただけます。 Basic scanning では、各コンテナイメージを24時間に1回スキャンすることができます。この制限には、プッシュによる最初のスキャン(有効な場合)と、手動によるスキャンが含まれます。
Enhanced scanning は、HAQM Inspector を通じて提供され、課金されます。 HAQM Inspector を初めて利用するすべてのアカウントは、サービスの評価とコストの見積もりのために 15日間のトライアル を利用することができます。トライアル期間中は、HAQM ECR にプッシュされたすべての対象コンテナイメージが無料で継続的にスキャンされます。
Enhanced scanning の価格は、2段階になっています。 HAQM ECR プッシュ時に初期スキャンされたコンテナイメージのコストは、1イメージスキャンあたり0.09ドル(※1)です。継続スキャン用に設定された HAQM ECR のコンテナイメージの再スキャンは、イメージの再スキャンごとに0.01ドルです。 HAQM Inspector がデータベースに新しい CVE を追加するたびに、設定された HAQM ECR のリポジトリにあるすべての対象コンテナイメージが自動的に再スキャンされます。
結論
本日、HAQM ECR プライベートレジストリのお客様向けにこの重要なセキュリティ機能の提供を開始することができ、コンテナ型アプリケーションのセキュリティ体制を改善するために、この機能の恩恵を受けられることを期待しています。私たちは、コンテナロードマップ を通じて、イメージスキャン機能をどのように改善できるか、皆さんから学びたいと考えています。また、他にどのような関連機能が有用か、ご意見をお聞かせください。
この機能の詳細については、以下の資料でご確認いただけます。
HAQM Inspector ローンチブログ
HAQM Inspector 新着情報ブログ
HAQM ECR イメージスキャン 公式ドキュメント
HAQM Inspector コンテナイメージスキャン 公式ドキュメント
※1 これは us-west-2 (Oregon) の価格です。価格はリージョン毎に異なりますので、詳細は最新の 価格表 をご参照ください。
翻訳はソリューションアーキテクトの竹本が担当しました。