防止图片标签在 Amazon ECR 中被覆盖 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

防止图片标签在 Amazon ECR 中被覆盖

您可以通过在存储库中开启标签不可变性来防止图像标签被覆盖。启用标签不可变性后,如果您推送的图像的标签已存在于存储库中,则会返回ImageTagAlreadyExistsException错误。标签不可变性会影响所有标签。你不能使某些标签不可变,而其他标签则不是。

您可以使用 Amazon Web Services Management Console 和 Amazon CLI 工具为新存储库或现有存储库设置图像标签的可变性。要使用控制台步骤创建存储库,请参阅创建 Amazon ECR 私有存储库来存储图像

设置图像标签的可变性 ()Amazon Web Services Management Console

设置图像标签的可变性
  1. https://console.aws.amazon.com/ecr/repositories 打开 Amazon ECR 控制台。

  2. 从导航栏中,选择包含要编辑的存储库的区域。

  3. 在导航窗格中,选择存储库

  4. Repositories(存储库)页面上,选择 Private(私有)选项卡,然后选择要编辑的存储库,并选择 Edit(编辑)。

  5. 对于标签不变性,选择存储库的标签可变性设置。配置有不可变标签的存储库会阻止覆盖镜像标签。有关更多信息,请参阅 防止图片标签在 Amazon ECR 中被覆盖

  6. 对于 Image scan settings(镜像扫描设置),尽管您可以在存储库级别为基础扫描指定扫描设置,但最佳实践是在私有注册表级别指定扫描配置。通过在私有注册表级别指定扫描设置,您可以启用增强扫描或基本扫描,并定义用于指定扫描哪些存储库的筛选条件。有关更多信息,请参阅 扫描图像以查找 Amazon ECR 中的软件漏洞

  7. 对于 Encryption settings(加密设置),此字段仅供查看,因为存储库的加密设置在存储库创建完成之后无法更改。

  8. 选择保存以更新存储库设置。

设置图像标签的可变性 ()Amazon CLI

创建配置有不可变标签的存储库

使用以下命令之一创建配置有不可变标签的新镜像存储库。

  • create-repository (Amazon CLI)

    aws ecr create-repository --repository-name name --image-tag-mutability IMMUTABLE --region us-east-2
  • New-ECRRepository (Amazon Tools for Windows PowerShell)

    New-ECRRepository -RepositoryName name -ImageTagMutability IMMUTABLE -Region us-east-2 -Force
更新存储库的图像标签可变性设置

使用以下命令之一更新现有存储库的镜像标签可变性设置。

  • put-image-tag-mutability (Amazon CLI)

    aws ecr put-image-tag-mutability --repository-name name --image-tag-mutability IMMUTABLE --region us-east-2
  • write-ecr () ImageTagMutabilityAmazon Tools for Windows PowerShell

    Write-ECRImageTagMutability -RepositoryName name -ImageTagMutability IMMUTABLE -Region us-east-2 -Force