You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS托管节点Pod拉取ECR Public镜像的认证状态及配置方法

问题

我了解到有一个Amazon ECR Public凭证助手脚本,但该仓库已归档,说明“如今Amazon ECR Public会将AWS计算负载发起的所有镜像拉取请求视为已认证请求”。我无法在AWS官方找到相关文档对此进行确认,想请教两个问题:

  1. 若我的Pod部署在使用AWS托管节点的EKS集群中,Pod启动时发起的ECR Public镜像拉取请求是否已认证?
  2. 若未认证,我该如何配置imagePullSecrets以配合相关凭证助手使用?
回答

关于ECR Public拉取请求的认证状态

运行在AWS托管节点(如EKS托管节点组)上的Pod,拉取ECR Public镜像时默认会自动完成认证。ECR Public会识别来自AWS计算资源(包括EKS节点)的请求,自动通过节点关联的IAM角色完成身份校验,无需额外配置凭证。这和你提到的归档仓库说明一致。

若需手动配置imagePullSecrets(特殊场景)

如果遇到拉取未认证的情况(比如自定义节点配置、跨区域特殊场景等),可以按以下步骤配置:

  • 创建一个具备AmazonEC2ContainerRegistryPublicReadOnly权限的IAM用户,生成该用户的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
  • 使用kubectl创建Docker registry类型的Secret:
    kubectl create secret docker-registry ecr-public-secret \
      --docker-server=public.ecr.aws \
      --docker-username=AWS \
      --docker-password=<你的AWS_SECRET_ACCESS_KEY> \
      --docker-email=your-email@example.com
    
    或者通过AWS CLI自动获取临时密码(需提前配置好该IAM用户的CLI凭证):
    kubectl create secret docker-registry ecr-public-secret \
      --docker-server=public.ecr.aws \
      --docker-username=AWS \
      --docker-password=$(aws ecr-public get-login-password --region us-east-1) \
      --docker-email=your-email@example.com
    
  • 在Pod或Deployment的配置中引用该Secret:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: your-deployment
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: your-app
      template:
        metadata:
          labels:
            app: your-app
        spec:
          imagePullSecrets:
          - name: ecr-public-secret
          containers:
          - name: your-container
            image: public.ecr.aws/your-namespace/your-image:tag
    

内容的提问来源于stack exchange,提问作者deez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 00:46:11