管理存储库创建模板 - Amazon ECR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

管理存储库创建模板

存储库创建模板功能是 Amazon ECR 的预览版,可能会发生变化。在此公开预览版中,您只能使用 Amazon Web Services Management Console 来管理存储库创建模板。

有了 Amazon ECR 存储库创建模板,在为 Amazon ECR 在缓存提取操作期间代表您创建的新存储库定义设置时,您能拥有控制权。存储库创建模板中的设置仅在存储库创建期间应用,对现有存储库或使用任何其他方法创建的存储库没有任何影响。

以下区域不支持存储库创建模板。

  • 中国(北京) (cn-north-1)

  • 中国(宁夏) (cn-northwest-1)

  • AmazonGovCloud (US-East)us-gov-east-1

  • AmazonGovCloud (US-West)us-gov-west-1

存储库创建模板的工作原理

有时,Amazon ECR 需要代表您创建新的私有存储库。例如,您首次使用缓存提取规则来检索上游存储库的内容并将其存储于 Amazon ECR 私有注册表时。当没有与您的缓存提取规则匹配的存储库创建模板时,Amazon ECR 会为新存储库使用默认设置。这些默认设置包括关闭标签不变性、使用 AES-256 加密,以及不应用任何存储库或生命周期策略。

使用前缀与缓存提取规则匹配的存储库创建模板,您可以定义 Amazon ECR 为通过缓存提取操作创建的新存储库应用的设置。您可以为新存储库定义标签不变性、加密配置、存储库权限、生命周期策略和资源标签。

下图演示了在使用存储库创建模板时 Amazon ECR 使用的工作流程。


                显示如何将存储库创建模板应用于新存储库。

以下内容详细描述了存储库创建模板中的每个参数。

Prefix

Prefix 是与模板关联的存储库命名空间前缀。使用此前缀创建的所有存储库都将应用此模板中定义的设置。例如,前缀 prod 将应用于以 prod/ 开头的所有存储库。同理,前缀 prod/team 将应用于以 prod/team/ 开头的所有存储库。

要将某模板应用于注册表中没有关联创建模板的所有存储库,您可以使用 ROOT 作为前缀。

重要

前缀末尾始终应用假定的 /。如果您指定 ecr-public 为前缀,Amazon ECR 会将其视为 ecr-public/。使用缓存提取规则时,您在创建规则时指定的存储库前缀也应指定为存储库创建模板前缀。

描述

模板描述可选,用于描述存储库创建模板的用途。

模板版本

要使用的存储库创建模板版本。目前,仅支持 TV1 模板版本。

配置版本

要使用的模板的存储库配置版本。每个模板都必须包括存储库配置。默认配置版本是 CV1,包含映像标签可变性、存储库策略和生命周期策略设置。

镜像标签可变性

使用模板创建的存储库要使用的标签可变性设置。如果省略此参数,将使用 MUTABLE 的默认设置,该设置将允许覆盖映像标签。对于通过缓存提取操作创建的存储库所使用的模板,建议使用此设置。这样可以确保当标签相同时,Amazon ECR 可以更新缓存的映像。

如果指定 IMMUTABLE,则存储库中的所有映像标签都将不可变,从而防止这些标签被覆盖。

加密配置

使用模板创建的存储库要使用的加密配置

如果您使用 KMS 加密类型,则使用具有 Amazon KMS 中存储的 Amazon Key Management Service 密钥的服务器端加密来加密存储库的内容。当您使用 Amazon KMS 加密数据时,您可以将默认的 Amazon 托管 Amazon KMS 密钥用于 Amazon ECR,或者指定您自己的 Amazon KMS 密钥(该密钥已创建)。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的结合使用服务器端加密和在 Amazon Key Management Service(SSE-KMS)中存储的 Amazon Key Management Service 密钥保护数据

如果您使用 AES256 加密类型,Amazon ECR 将使用具有 Amazon S3 托管加密密钥的服务器端加密,从而使用 AES-256 加密算法对存储库中的映像进行加密。有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的使用采用 Amazon S3 托管加密密钥的服务器端加密 (SSE-S3) 保护数据

存储库权限

使用模板创建的存储库要应用的存储库策略。存储库策略使用基于资源的权限来控制对存储库的访问权限。基于资源的权限让您可以指定能够访问存储库的 IAM 用户或角色,以及这些用户或角色可以对该存储库执行的操作。默认情况下,仅创建存储库的 Amazon 账户有权访问存储库。您可以应用策略文档来授予或拒绝针对您的存储库的其他权限。有关更多信息,请参阅

存储库生命周期策略

使用模板创建的存储库要使用的生命周期策略。生命周期策略提供了对私有存储库中映像的生命周期管理的更多控制。生命周期策略是一组规则,其中的每个规则为 Amazon ECR 定义一个操作。这提供了一种自动清理容器镜像的方法,例如根据使用期限或计数过期的镜像。有关更多信息,请参阅生命周期策略

资源标签

资源标签是应用于存储库的元数据,旨在帮助您对其进行分类和整理。每个标签都包含您定义的一个键和一个可选值。

创建存储库创建模板时所需的 IAM 权限

IAM 主体需要具有以下权限,才能管理存储库创建模板。此这些权限必须通过基于身份的 IAM policy 授予。

  • ecr:CreateRepositoryCreationTemplate – 授权创建存储库创建模板。

  • ecr:DeleteRepositoryCreationTemplate – 授权删除存储库创建模板。

  • ecr:PutLifecyclePolicy – 授权创建生命周期策略并将其应用于存储库。仅当存储库创建模板包含生命周期策略时,才需要此权限。

  • ecr:SetRepositoryPolicy – 授权创建存储库的权限策略。仅当存储库创建模板包含存储库策略时,才需要此权限。

  • ecr:TagResource – 授权将元数据标签添加到资源。仅当存储库创建模板包含资源标签时,才需要此权限。

创建存储库创建模板

您可以创建存储库创建模板,定义 Amazon ECR 在缓存提取操作期间代表您创建的存储库要使用的设置。创建存储库创建模板后,所有新建的存储库都将应用这些设置。这不会对之前创建的存储库产生任何影响。

创建存储库创建模板(Amazon Web Services Management Console)
  1. 打开位于 https://console.aws.amazon.com/ecr/ 的 Amazon ECR 控制台。

  2. 在导航栏中,选择存储库创建模板的创建区域。

  3. 在导航窗格中,依次选择私有注册表存储库创建模板

  4. 存储库创建模板页面上,选择创建模板

  5. 步骤 1:定义模板页面上,对于模板详细信息,选择特定前缀,将模板应用于特定的存储库命名空间前缀,或者选择 ECR 注册表中的任意前缀,将模板应用于与该区域中任何其他模板都不匹配的所有存储库。

    1. 如果选择特定前缀,则在前缀中指定要应用模板的存储库命名空间前缀。前缀末尾始终应用假定的 /。例如,前缀 prod 将应用于以 prod/ 开头的所有存储库。同理,前缀 prod/team 将应用于以 prod/team/ 开头的所有存储库。

    2. 如果选择 ECR 注册表中的任意前缀,则前缀将设置为 ROOT

  6. 模板描述中,为模板指定可选描述,然后选择下一步

  7. 步骤 2:添加存储库创建配置页面上,指定使用模板创建的存储库要应用的存储库设置配置。

    1. 映像标签可变性中,选择要使用的标签可变性设置。有关更多信息,请参阅镜像标签可变性

      选择可变后,映像标签可以被覆盖。对于通过缓存提取操作创建的存储库所使用的模板,建议使用此设置。这样可以确保当标签相同时,Amazon ECR 可以更新缓存的映像。

      选择不可变后,将防止映像标签被覆盖。为存储库配置了不可变标签后,如果尝试推送某个映像但其标签在存储库中已存在,系统将返回 ImageTagAlreadyExistsException 错误。当存储库开启标签不可变性时,这会影响所有标签,您不能将某些标签配置为不可变,而将其他标签配置为可变。

    2. 加密配置中,选择要使用的加密设置。有关更多信息,请参阅静态加密

      选择 AES-256 时,Amazon ECR 使用具有 Amazon Simple Storage Service 托管加密密钥的服务器端加密,从而使用 AES-256 加密算法对静态数据进行加密。此服务不会产生额外费用。

      选择 Amazon KMS 时,Amazon ECR 使用具有 Amazon Key Management Service(Amazon KMS)中存储的密钥的服务器端加密。使用 Amazon KMS 加密数据时,您可以使用默认 Amazon 托管密钥(由 Amazon ECR 管理),也可以指定自己的 Amazon KMS 密钥(称为客户自主管理型密钥)。

      注意

      存储库创建之后,存储库的加密设置无法更改。

    3. 存储库权限中,请指定使用此模板创建的存储库要应用的存储库权限策略。您可以选择使用下拉菜单,为最常见的使用案例选择一个 JSON 示例。有关更多信息,请参阅私有存储库策略

    4. 存储库生命周期策略中,指定使用此模板创建的存储库要应用的存储库生命周期策略。您可以选择使用下拉菜单,为最常见的使用案例选择一个 JSON 示例。有关更多信息,请参阅生命周期策略

    5. 存储库 Amazon 标签中,以键/值对的形式指定要与使用此模板创建的存储库关联的元数据,然后选择下一步。有关更多信息,请参阅标记私有存储库

  8. 步骤 3:审核并创建页面上,审核您为存储库创建模板指定的设置。选择编辑选项以进行更改。完成后,选择创建

删除存储库创建模板

使用完存储库创建模板后,您可以将其删除。删除存储库创建模板后,在缓存提取操作期间创建的任何新存储库都将应用默认设置。

删除存储库创建模板(Amazon Web Services Management Console)
  1. 打开位于 https://console.aws.amazon.com/ecr/ 的 Amazon ECR 控制台。

  2. 在导航栏中,选择要删除的存储库创建模板所在的区域。

  3. 在导航窗格中,依次选择私有注册表存储库创建模板

  4. 存储库创建模板页面上,选择要删除的存储库创建模板。

  5. 操作下拉菜单中,选择删除