SchedulerでECRのベーシックスキャンを自動化してみたECRイメージスキャン実行には、Dockerイメージのタグまたはダイジェスト指定が必要でした。latestタグでワークロードを実行している場合は使えるのかもしれません。拡張イメージスキャンの便利さを実感しました。v2たかくに2022.11.16この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは!AWS事業本部コンサルティング部のたかくに(@takakuni_)です。Schedulerで定期実行してみます。ECRでは、Clairプロジェクトの共通脆弱性識別子データベースを使用した、コンテナイメージの脆弱性スキャン(以後、ベーシックスキャン)を提供しています。ECRベーシックスキャンの強みはなんと言っても、「無料」であることだと思います。v2を利用した拡張イメージスキャン(以後、拡張イメージスキャン)に比べていくつか制約があります。https://docs.aws.amazon.com/ja_jp/AmazonECR/latest/userguide/image-scanning-basic.html実行タイミング、間隔ベーシックイメージスキャンと拡張イメージスキャンの実行タイミングは以下のように異なります。拡張イメージスキャンスキャンタイミング:新しいイメージがプッシュされた時、新しい脆弱性が発表された時(マニュアルスキャンはサポートしていない)自動化できるか:はい(必要な時にスキャンが実行されている)実行間隔の制限:なしベーシックイメージスキャンでは、新しい脆弱性が発表された場合の自動スキャンをサポートしていないため、手動で定期的に実行する必要があります。各イメージに対して1日に1回のみスキャン可能なため、出来れば自動化して定期的な実行を目指すのが望ましいです。Schedulerを利用して、日次でイメージスキャンを行なっていきます。SchedulerからECRイメージスキャンを実行するために、Scheduler用のIAMロールを作成します。便宜上、先にIAMロールにアタッチするIAMポリシーを作成します。IAMポリシーは次のように設定します。]}今回、IAMポリシーの名前は「sample-image-scan-policy」としました。IAMロールの作成Scheduler用のIAMロールを作成します。信頼関係ポリシーは以下を設定します。]}作成したIAMポリシーをIAMロールにアタッチをします。ロール名は「sample-image-scan-role」とし、問題なければロールの作成を行います。Schedulerの作成Scheduler作成画面から、名前やスケジュールのパターンを設定します。今回は、テストのためスケジュールは午後21時に設定しました。一筋縄ではいかなかったStartImageScanを選択すると「ImageId」と「RepositoryName」がパラメーターとして表示されました。YesStartImageScanタグをイミュータブルにコントロールできないため、「良いプラクティス!」とは自信を持って言えではないですが、今回は「latest」で設定しました。(良いプラクティスあればコメントください!)※RepositoryNameは対象のレポジトリを設定してください。"sample-image-scan-repo"}実行履歴の確認ECRイメージ側から脆弱性スキャンの結果を確認します。無事、21時にイメージスキャンが実行されていることが確認できました。日本のタイムゾーンでスケジュール設定できる部分がとても便利だと思います。SchedulerでECRのベーシックスキャンを自動化してみたでした。Schedulerで定期実行する使い方の1つになれば幸いです。