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

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

映像扫描

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

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

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

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

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

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

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

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

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

使用以下命令创建一个配置了推送时映像扫描的新存储库。

  • create-repository (AWS CLI)

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

使用以下命令创建一个配置了推送时映像扫描的新存储库。

  • 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 (推送时扫描)(如果启用)和任何手动扫描。

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

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

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

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

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

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

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

使用以下 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

使用以下 适用于 Windows PowerShell 的 AWS 工具 命令启动映像的手动扫描。您可以使用 ImageId_ImageTag 或 指定映像ImageId_ImageDigest,这两者都可以使用 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. 命令检索映像扫描结果。您可以使用 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

使用以下 适用于 Windows PowerShell 的 AWS 工具 命令检索映像扫描结果。您可以使用 ImageId_ImageTag 或 指定映像ImageId_ImageDigest,这两者都可以使用 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