Amazon ECR
ユーザーガイド (API バージョン 2015-09-21)

イメージスキャン

Amazon ECR イメージスキャンは、コンテナイメージ内のソフトウェアの脆弱性を識別するのに役立ちます。Amazon ECR は、オープンソースの CoreOS Clair プロジェクトの共通脆弱性およびエクスポージャー (CVE) データベースを使用し、スキャン結果のリストを提供します。デプロイされているコンテナイメージのセキュリティに関する情報については、スキャンの結果を確認できます。CoreOS Clair の詳細については、CoreOS Clair を参照してください。

Amazon ECR に保存されているコンテナイメージを手動でスキャンすることも、リポジトリにイメージをプッシュするときにイメージをスキャンするようにリポジトリを設定することもできます。最後に完了したイメージスキャンの結果は、各イメージに対して取得できます。Amazon ECR は、イメージスキャンの完了時にイベントを Amazon EventBridge (旧称 CloudWatch イベント) に送信します。詳細については、「Amazon ECR イベントと EventBridge」を参照してください。

イメージをスキャンする際の一般的な問題のトラブルシューティングの詳細については、「イメージスキャンの問題のトラブルシューティング」を参照してください。

プッシュ時にスキャンするようにリポジトリを設定する

イメージスキャン設定は、作成時に新しいリポジトリに対しても、既存のリポジトリに対しても設定できます。[scan on push (プッシュ時にスキャン)] が有効な場合、イメージはリポジトリにプッシュされた後にスキャンされます。リポジトリで [scan on push (プッシュ時にスキャン)] が無効になっている場合は、スキャン結果を得るために各イメージスキャンを手動で開始する必要があります。

プッシュ時にスキャンするように新しいリポジトリを作成する

新しいリポジトリが [scan on push (プッシュ時にスキャン)] するように設定されている場合、リポジトリにプッシュされたすべての新しいイメージがスキャンされます。最後に完了したイメージスキャンの結果を取得できます。詳細については、「スキャン結果の取得」を参照してください。

AWS マネジメントコンソール での手順については、「リポジトリの作成」を参照してください。

プッシュ時にスキャンするように設定されたリポジトリを作成するには (AWS CLI)

イメージの [scan on push (プッシュ時にスキャン)] が設定された新しいリポジトリを作成するには、次のコマンドを使用します。

  • create-repository (AWS CLI)

    aws ecr create-repository --repository-name name --image-scanning-configuration scanOnPush=true --region us-east-2
プッシュ時にスキャンするように設定されたリポジトリを作成するには (AWS Tools for Windows PowerShell)

イメージの [scan on push (プッシュ時にスキャン)] が設定された新しいリポジトリを作成するには、次のコマンドを使用します。

  • New-ECRRepository (AWS Tools for Windows PowerShell)

    New-ECRRepository -RepositoryName name -ImageScanningConfiguration_ScanOnPush true -Region us-east-2 -Force

プッシュ時にスキャンするよう既存のリポジトリを設定する

既存のリポジトリは、イメージをリポジトリにプッシュするときにスキャンするように設定できます。この設定は、今後のイメージプッシュに適用されます。最後に完了したイメージスキャンの結果を取得できます。詳細については、「スキャン結果の取得」を参照してください。

AWS マネジメントコンソール での手順については、「リポジトリの編集」を参照してください。

既存のリポジトリの設定を編集するには (AWS CLI)

既存のリポジトリのイメージスキャン設定を編集するには、次のコマンドを使用します。

  • put-image-scanning-configuration (AWS CLI)

    aws ecr put-image-scanning-configuration --repository-name name --image-scanning-configuration scanOnPush=true --region us-east-2

    注記

    リポジトリのイメージの [scan on push (プッシュ時にスキャン)] を無効にするには、scanOnPush=false を指定します。

既存のリポジトリの設定を編集するには (AWS Tools for Windows PowerShell)

既存のリポジトリのイメージスキャン設定を編集するには、次のコマンドを使用します。

  • New-ECRRepository (AWS Tools for Windows PowerShell)

    Write-ECRImageScanningConfiguration -RepositoryName name -ImageScanningConfiguration_ScanOnPush true -Region us-east-2 -Force

イメージの手動スキャン

[scan on push (プッシュ時にスキャン)] するように設定されていないリポジトリ内のイメージをスキャンする場合は、イメージスキャンを手動で開始できます。イメージは 1 日に 1 回しかスキャンできません。この制限には、最初の [scan on push (プッシュ時にスキャン)] (有効になっている場合) と手動スキャンが含まれます。

イメージをスキャンする際の一般的な問題のトラブルシューティングの詳細については、「イメージスキャンの問題のトラブルシューティング」を参照してください。

イメージの手動スキャンを開始するには (コンソール)

AWS マネジメントコンソール を使用して手動イメージスキャンを開始するには、次の手順を実行します。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/repositories) を開きます。

  2. ナビゲーションバーから、リポジトリを作成するリージョンを選択します。

  3. ナビゲーションペインで、[Repositories] を選択します。

  4. [Repositories (リポジトリ)] ページで、スキャンするイメージを含むリポジトリを選択します。

  5. [イメージ] ページで、スキャンするイメージを選択し、[スキャン] を選択します。

イメージの手動スキャンを開始するには (AWS CLI)

イメージの手動スキャンを開始するには、次の AWS CLI コマンドを使用します。imageTag または imageDigest を使用してイメージを指定できます。どちらのイメージも list-images CLI コマンドを使用して取得できます。

  • start-image-scan (AWS CLI)

    次の例では、イメージタグを使用しています。

    aws ecr start-image-scan --repository-name name --image-id imageTag=tag_name --region us-east-2

    次の例では、イメージダイジェストを使用しています。

    aws ecr start-image-scan --repository-name name --image-id imageDigest=sha256_hash --region us-east-2
イメージの手動スキャンを開始するには (AWS Tools for Windows PowerShell)

イメージの手動スキャンを開始するには、次の AWS Tools for Windows PowerShell コマンドを使用します。ImageId_ImageTag または ImageId_ImageDigest を使用してイメージを指定できます。どちらのイメージも Get-ECRImage CLI コマンドを使用して取得できます。

  • Get-ECRImageScanFinding (AWS Tools for Windows PowerShell)

    次の例では、イメージタグを使用しています。

    Start-ECRImageScan -RepositoryName name -ImageId_ImageTag tag_name -Region us-east-2 -Force

    次の例では、イメージダイジェストを使用しています。

    Start-ECRImageScan -RepositoryName name -ImageId_ImageDigest sha256_hash -Region us-east-2 -Force

スキャン結果の取得

最後に完了したイメージスキャンのスキャン結果を取得できます。結果には、検出されたソフトウェアの脆弱性が、共通の脆弱性およびエクスポージャー (CVE) データベースに基づく重大度別に一覧表示されます。

イメージをスキャンする際の一般的な問題のトラブルシューティングの詳細については、「イメージスキャンの問題のトラブルシューティング」を参照してください。

イメージスキャンの結果を取得するには (コンソール)

AWS マネジメントコンソール を使用してイメージスキャンの結果を取得する手順は、次のとおりです。

  1. Amazon ECR コンソール (https://console.aws.amazon.com/ecr/repositories) を開きます。

  2. ナビゲーションバーから、リポジトリを作成するリージョンを選択します。

  3. ナビゲーションペインで、[Repositories] を選択します。

  4. [Repositories (リポジトリ)] ページで、スキャン結果を取得するイメージを含むリポジトリを選択します。

  5. [Images (イメージ)] ページの [Vulnerabilities (脆弱性)] 列で、スキャン結果を取得するイメージの [Details (詳細)] を選択します。

イメージスキャンの結果を取得するには (AWS CLI)

イメージの手動スキャンを開始するには、次の AWS CLI コマンドを使用します。imageTag または imageDigest を使用してイメージを指定できます。どちらのイメージも list-images CLI コマンドを使用して取得できます。

  • describe-image-scan-findings (AWS CLI)

    次の例では、イメージタグを使用しています。

    aws ecr describe-image-scan-findings --repository-name name --image-id imageTag=tag_name --region us-east-2

    次の例では、イメージダイジェストを使用しています。

    aws ecr describe-image-scan-findings --repository-name name --image-id imageDigest=sha256_hash --region us-east-2
イメージスキャンの結果を取得するには (AWS Tools for Windows PowerShell)

以下の AWS Tools for Windows PowerShell コマンドを使用して、イメージスキャンの結果を取得します。ImageId_ImageTag または ImageId_ImageDigest を使用してイメージを指定できます。どちらのイメージも Get-ECRImage CLI コマンドを使用して取得できます。

  • Get-ECRImageScanFinding (AWS Tools for Windows PowerShell)

    次の例では、イメージタグを使用しています。

    Get-ECRImageScanFinding -RepositoryName name -ImageId_ImageTag tag_name -Region us-east-2

    次の例では、イメージダイジェストを使用しています。

    Get-ECRImageScanFinding -RepositoryName name -ImageId_ImageDigest sha256_hash -Region us-east-2