ECR拡張スキャン有効化で画面に表示されるAPIエラーの対応方法ついて教えてください

2022.02.02

困っていた内容

Amazon ECRの拡張スキャンを有効化して、プライベートリポジトリにイメージをPushした際にイメージをスキャンするように設定を行いました。

プライベートリポジトリにイメージをPush後、「調査結果を表示」からスキャン結果を確認したところ、下記のようなAPIエラーが画面に表示されスキャン結果を確認できませんでした。

  • APIエラー
Failure to get image scan findings: Image scan does not exist for the image with '{imageDigest:'sha256:abc1234def567ghi890jkl123mno456pqr789stu012vwxy345z678abc9012de3', imageTag:'null'}' in the repository with name 'example-test' in the registry with id '************'

上記のAPIエラーが発生した場合の対応方法を教えてください。

どう対応すればいいの?

リポジトリにプッシュされたイメージ容量の大きさによって、スキャン完了までに時間を要するため、ある程度時間を空けて経過をご確認ください。

【補足】APIエラーの調査

APIエラーについて下記の流れで調査を行いました。

調査手順

  1. 容量が異なる2つのイメージを用意(200MB、600MB)
  2. 上記の各イメージについて、プライベートリポジトリへプッシュ後、脆弱性の「調査結果を表示」より確認
  3. イメージ(200MB)
    • 脆弱性の「調査結果を表示」より、問題なくスキャン結果が表示されたことを確認
  4. イメージ(600MB)
    • 脆弱性の「調査結果を表示」より、上記APIエラーが画面に表示されたことを確認(下記画像参照:APIエラー)
    • その後、数秒~数十秒程空けた後に、ブラウザの更新ボタンをクリックして再度読み込みしたところ、脆弱性の調査結果について表示されたことを確認(下記画像参照:脆弱性調査結果)
  • APIエラー画面

  • 数秒程空けた後にブラウザ再読み込み後の調査結果画面

調査結果をふまえたAPIエラーの原因

Amazon ECRのリポジトリにプッシュされたイメージのスキャンが完了していないことに起因して上記のようなAPIエラーが発生したものと考えれます。

スキャンが完了していない1つの要因としては、上記の調査より、リポジトリにプッシュされたイメージの容量が関係していることが分かりました。

イメージの容量が大きければ、その分スキャンにかかる時間も長くなり、スキャン完了までに時間を要することが考えられるため、ご使用される際はご留意をいただけましたら幸いです。

参考資料