本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
防止映像标签在 Amazon ECR 中被覆盖
您可以在存储库中开启标签不可变性,以防止覆盖映像标签。为开启标签不可变性后,如果您推送某个标签已经在存储库中的映像,将返回 ImageTagAlreadyExistsException
错误。标签不可变性会影响所有标签。您不能使某些标签不可变,而另一些则不是。
您可以使用 AWS Management Console 和 AWS CLI 工具为新存储库或现有存储库设置图像标签的可变性。要使用控制台步骤创建存储库,请参阅创建 Amazon ECR 私有存储库以存储映像。
设置映像标签的可变性(AWS Management Console)
要设置映像标签的可变性
在https://console.aws.amazon.com/ecr/存储库
中打开 Amazon ECR 控制台。 -
从导航栏中,选择包含要编辑的存储库的区域。
-
在导航窗格中,选择私有注册表下的存储库。
如果看不到 “存储库”,请选择 “私有注册表” 以展开菜单,然后选择 “存储库”。
-
在私有存储库页面上,选择要为其设置图像标签可变性设置的存储库名称前的单选按钮。
-
选择 “操作”,然后在 “编辑” 下选择 “存储库”。
-
对于图像标签不可变性,请为存储库选择以下标签可变性设置之一。
-
Mutable — 如果您想覆盖图像标签,请选择此选项。建议使用拉取缓存操作的存储库使用,以确保 Amazon ECR 可以更新缓存的图像。此外,要禁用几个可变标签的标签更新,请在 “可变标签排除” 文本框中输入标签名称或使用通配符 (*) 匹配多个相似的标签。
-
Immutable — 如果您想防止图像标签被覆盖,请选择此选项,并且在推送带有现有标签的图像时,它适用于存储库中的所有标签和排除项。
ImageTagAlreadyExistsException
如果您尝试推送带有现有标签的图片,Amazon ECR 将返回。此外,要为几个不可变标签启用标签更新,请在不可变标签排除文本框中输入标签名称或使用通配符 (*) 匹配多个相似的标签。
-
-
对于 Image scan settings(镜像扫描设置),尽管您可以在存储库级别为基础扫描指定扫描设置,但最佳实践是在私有注册表级别指定扫描配置。通过在私有注册表级别指定扫描设置,您可以启用增强扫描或基本扫描,并定义用于指定扫描哪些存储库的筛选条件。有关更多信息,请参阅 在 Amazon ECR 中扫描映像是否存在软件漏洞。
-
对于 Encryption settings(加密设置),此字段仅供查看,因为存储库的加密设置在存储库创建完成之后无法更改。
-
选择保存以更新存储库设置。
设置映像标签的可变性(AWS CLI)
创建配置有不可变标签的存储库
使用以下命令之一创建配置有不可变标签的新镜像存储库。
-
创建具有图像标签可变性的存储库 (AWS CLI)
aws ecr create-repository --repository-name
name
--image-tag-mutabilityIMMUTABLE
--regionus-east-2
-
使用图像标签@@ 可变性排除AWS CLI过滤器创建存储库 ()
aws ecr create-repository --repository-name
name
--image-tag-mutabilityIMMUTABLE_WITH_EXCLUSION
--image-tag-mutability-exclusion-filters filterType=WILDCARD
,filter=filter-text
--region
us-east-2
-
ne@@ w-ECRRepository (AWS Tools for Windows PowerShell) 具有图像标签可变性
New-ECRRepository -RepositoryName
name
-ImageTagMutabilityIMMUTABLE
-Regionus-east-2
-Force
-
带有图像标签可变性排除过滤器的 ne@@ w-ECRRepository (AWS Tools for Windows PowerShell)
New-ECRRepository -RepositoryName
name
-ImageTagMutabilityIMMUTABLE_WITH_EXCLUSION
-ImageTagMutabilityExclusionFilter @{FilterType=WILDCARD
Filter=filter-text
}-Region
us-east-2
-Force
要更新存储库的映像标签可变性设置
使用以下命令之一更新现有存储库的镜像标签可变性设置。
-
put-image-tag-mutability(AWS CLI) 具有图像标签的可变性
aws ecr put-image-tag-mutability --repository-name
name
--image-tag-mutabilityIMMUTABLE
--regionus-east-2
-
put-image-tag-mutability(AWS CLI) 带有图像标签可变性排除过滤器
aws ecr put-image-tag-mutability --repository-name
name
--image-tag-mutabilityIMMUTABLE_WITH_EXCLUSION
--image-tag-mutability-exclusion-filters filterType=WILDCARD
,filter=latest
--region
us-east-2
-
write-ECRImage TagMutability (AWS Tools for Windows PowerShell) 具有图像标签的可变性
Write-ECRImageTagMutability -RepositoryName
name
-ImageTagMutabilityIMMUTABLE
-Regionus-east-2
-Force -
带图像标签可变性排除过滤器的 write-ECRImage TagMutability (AWS Tools for Windows PowerShell)
Write-ECRImageTagMutability -RepositoryName
name
-ImageTagMutabilityIMMUTABLE_WITH_EXCLUSION
-ImageTagMutabilityExclusionFilter @{FilterType=WILDCARD
Filter=latest
}