映像扫描 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

映像扫描

Amazon ECR 映像扫描有助于识别容器映像中的软件漏洞。每个容器镜像可以每 24 小时扫描一次。Amazon ECR 使用开源 Clair 项目中的常见漏洞和披露 (CVE) 数据库,并提供扫描发现结果的列表。您可以查看扫描结果以获取有关正在部署的容器映像的安全性的信息。有关 Clair 的更多信息,请参阅克莱尔(位于 GitHub 上)。

Amazon ECR 使用上游分配源中的 CVE 的严重性(如果可用),否则我们使用常见漏洞评分系统 (CVSS) 评分。CVSS 评分可用于获取 NVD 漏洞严重性评级。有关更多信息,请参阅 NVD 漏洞严重性评级

您可以手动扫描存储在亚马逊 ECR 中的集装箱图片。或者,您可以将存储库配置为在将映像推送到存储库时扫描映像。可以为每个映像检索上次完成的映像扫描结果。映像扫描完成后,Amazon ECR 向 Amazon EventBridge(以前称为 CloudWatch 事件)发送事件。有关更多信息,请参阅 亚马逊 ECR 活动和 EventBridge

有关扫描映像时的常见问题的排查详细信息,请参阅 图像扫描问题疑难解答

配置存储库以在推送时扫描

您可以在创建过程中为新存储库或为现有存储库配置映像扫描设置。启用 scan on push (推送时扫描) 时,映像将在推送到存储库后进行扫描。如果推送扫描在存储库上禁用,则必须手动启动每个映像扫描以获取扫描结果。

创建一个新的存储库以在推送时进行扫描

当将新的存储库配置为 scan on push (推送时扫描) 时,将扫描所有推送到存储库的新映像。然后,可以检索上次完成的映像扫描的结果。有关更多信息,请参阅 检索映像扫描查找结果

要查看 Amazon Web Services Management Console 步骤,请参阅创建存储库

使用以下命令创建一个配置为 scan on push (推送时扫描) 映像的新存储库。

  • create-repository (Amazon CLI)

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

使用以下命令创建一个配置为 scan on push (推送时扫描) 映像的新存储库。

  • New-ECRRepository (Amazon Tools for Windows PowerShell)

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

配置现有存储库以在推送时扫描

您可以将现有存储库配置为在将映像推送到存储库时对其进行扫描。此设置将应用于未来的映像推送。然后,可以检索上次完成的映像扫描的结果。有关更多信息,请参阅 检索映像扫描查找结果

要查看 Amazon Web Services Management Console 步骤,请参阅编辑存储库

使用以下命令编辑现有存储库的映像扫描设置。

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

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

    要为存储库禁用映像 scan on push (推送时扫描),请指定 scanOnPush=false

使用以下命令编辑现有存储库的映像扫描设置。

  • New-ECRRepository (Amazon Tools for Windows PowerShell)

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

手动扫描映像

在要扫描存储库中未配置为推送扫描. 每天只能扫描一次映像。此限制包括初始 scan on push (推送时扫描)(如果已启用)以及任何手动扫描。

有关扫描映像时的常见问题的排查详细信息,请参阅 图像扫描问题疑难解答

通过 Amazon Web Services Management Console使用以下步骤开始手动映像扫描。

  1. 从打开 Amazon ECR 控制台https://console.aws.amazon.com/ecr/repositories.

  2. 从导航栏中,选择您创建存储库的区域。

  3. 在导航窗格中,选择 Repositories

  4. Repositories (存储库) 页面上,选择包含要扫描的映像的存储库。

  5. Images (映像) 页面上,选择要扫描的映像,然后选择 Scan (扫描)

使用以下 Amazon CLI 命令启动映像的手动扫描。您可以使用 imageTagimageDigest 指定映像,这两者都可以使用 list-images CLI 命令获取。

  • start-image-scan (Amazon 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

使用以下 Amazon Tools for Windows PowerShell 命令启动映像的手动扫描。您可以使用 ImageId_ImageTagImageId_ImageDigest 指定映像,这两者都可以使用 Get-ECRImage CLI 命令获取。

  • Get-ECRImageScanFinding (Amazon 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) 数据库按严重性列出发现的软件漏洞。

有关扫描映像时的常见问题的排查详细信息,请参阅 图像扫描问题疑难解答

通过 Amazon Web Services Management Console使用以下步骤检索映像扫描结果。

  1. 从打开 Amazon ECR 控制台https://console.aws.amazon.com/ecr/repositories.

  2. 从导航栏中,选择您创建存储库的区域。

  3. 在导航窗格中,选择 Repositories

  4. Repositories (存储库) 页面上,选择包含要扫描检索结果的映像的存储库。

  5. Images (映像) 页面的 Vulnerabilities (漏洞) 列下,选择要检索其扫描结果的映像的 Details (详细信息)

通过 Amazon CLI 使用以下 Amazon CLI 命令检索映像扫描结果。您可以使用 imageTagimageDigest 指定映像,这两者都可以使用 list-images CLI 命令获取。

  • describe-image-scan-findings (Amazon 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

使用以下 Amazon Tools for Windows PowerShell 命令检索映像扫描结果。您可以使用 ImageId_ImageTagImageId_ImageDigest 指定映像,这两者都可以使用 Get-ECRImage CLI 命令获取。

  • Get-ECRImageScanFinding (Amazon 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