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

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

映像扫描

Amazon ECR 图像扫描有助于识别容器图像中的软件漏洞。 Amazon ECR 使用来自开源Clair项目的通用漏洞和暴露(CVE)数据库,并为您提供扫描结果列表。您可以查看扫描结果以获取有关正在部署的容器映像的安全性的信息。有关Clair的更多信息,请参阅 克莱尔 GitHub上。

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

您可以手动扫描存储在 Amazon ECR 中的容器映像,也可以将存储库配置为在将映像推送到存储库时扫描映像。可以为每个映像检索上次完成的映像扫描结果。映像扫描完成后,Amazon ECR 向 Amazon EventBridge(以前称为 CloudWatch Events)发送事件。有关更多信息,请参阅Amazon ECR 事件和 EventBridge

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

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

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

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

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

要查看 AWS 管理控制台 步骤,请参阅创建存储库

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

  • create-repository (AWS CLI)

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

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

  • New-ECRRepository (适用于 Windows PowerShell 的 AWS 工具)

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

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

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

要查看 AWS 管理控制台 步骤,请参阅编辑存储库

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

  • 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

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

  • New-ECRRepository (适用于 Windows PowerShell 的 AWS 工具)

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

手动扫描映像

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

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

通过 AWS 管理控制台使用以下步骤开始手动映像扫描。

  1. 通过以下网址打开 Amazon ECR 控制台:https://console.amazonaws.cn/ecr/repositories

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

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

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

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

使用以下 AWS CLI 命令启动映像的手动扫描。您可以使用 imageTagimageDigest 指定映像,这两者都可以使用 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

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

  • Get-ECRImageScanFinding (适用于 Windows PowerShell 的 AWS 工具)

    以下示例使用映像标签。

    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.amazonaws.cn/ecr/repositories

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

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

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

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

通过 AWS CLI 使用以下 AWS CLI 命令检索映像扫描结果。您可以使用 imageTagimageDigest 指定映像,这两者都可以使用 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

使用以下 适用于 Windows PowerShell 的 AWS 工具 命令检索映像扫描结果。您可以使用 ImageId_ImageTagImageId_ImageDigest 指定映像,这两者都可以使用 Get-ECRImage CLI 命令获取。

  • Get-ECRImageScanFinding (适用于 Windows PowerShell 的 AWS 工具)

    以下示例使用映像标签。

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

    以下示例使用映像摘要。

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