如何配置ecr.dkr VPC端点仅允许拉取ECR镜像禁止推送
ECR Docker API VPC端点仅允许拉取镜像的权限配置方案
可以实现,无需配置"*"全量操作权限,也不需要依赖特殊条件语句,直接通过拆分ECR数据面接口权限即可完成配置。
你提到的资源标识为com.amazonaws.<region>.ecr.dkr的VPC端点,对应ECR Docker镜像推拉的数据面服务,该端点的权限策略支持细粒度匹配ECR的标准IAM操作,和ECR仓库自身的IAM权限规则完全对齐,不存在仅支持全量权限的限制。
- 镜像拉取流程必须的3个接口,配置到Allow语句即可满足拉取需求:
ecr:BatchCheckLayerAvailabilityecr:GetDownloadUrlForLayerecr:BatchGetImage
- 镜像推送流程依赖的4个接口,只要不加入Allow列表、或显式配置Deny语句即可阻断推送行为:
ecr:InitiateLayerUploadecr:UploadLayerPartecr:CompleteLayerUploadecr:PutImage
提示:VPC端点策略默认是Deny所有请求,仅匹配显式Allow的规则,因此严格场景下可以额外增加Deny语句匹配推送类操作,依托IAM策略Deny优先的判定逻辑彻底避免权限过度放行。
最小可用的仅拉取权限端点策略示例如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*" } ] }
如果需要更严格的管控,比如限制仅允许访问指定账号、指定路径下的ECR仓库,可以在上述策略的Resource字段替换为具体仓库ARN,或增加对应条件键做限制,不需要额外适配端点专属规则。
内容的提问来源于stack exchange,提问作者OJFord
相关产品推荐
相关产品推荐

