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

推送Docker镜像至AWS ECR遇未授权错误,求解决方案

解决Docker镜像推送AWS ECR时的"denied: Not Authorized"错误

以下是针对你遇到的denied: Not Authorized Error: Process completed with exit code 1错误的排查和解决步骤:

1. 检查AWS IAM凭证权限

  • 确认GitHub Secrets中配置的ACCESS_KEY和SECRET_KEY对应的IAM用户拥有推送ECR镜像的必要权限,至少需要包含:
    • ecr:GetAuthorizationToken
    • ecr:BatchCheckLayerAvailability
    • ecr:GetDownloadUrlForLayer
    • ecr:BatchGetImage
    • ecr:InitiateLayerUpload
    • ecr:UploadLayerPart
    • ecr:CompleteLayerUpload
    • ecr:PutImage
  • 可直接给该IAM用户附加AmazonEC2ContainerRegistryPowerUser托管策略,或根据需求创建自定义最小权限策略。
  • 验证Secrets中的密钥是否正确,无拼写错误、未过期。

2. 确认ECR仓库权限设置

检查公共ECR仓库public.ecr.aws/o8x9n0f3/stellar_drive的权限配置,确保对应的AWS账号拥有镜像推送权限。公共ECR仓库需在权限设置中允许目标IAM用户或账号执行推送操作。

3. 优化GitHub Actions步骤配置

  • 调整步骤顺序:将Login to Amazon ECR步骤移至Build Docker Image之前,确保登录状态在构建、打标签后依然有效(更符合操作逻辑)。
  • 完善镜像推送命令:你当前推送的是无标签镜像(默认latest),但打标签时用的是2.3,建议推送时明确指定标签,避免匹配问题:
    - name: push
      run: |
        docker push public.ecr.aws/o8x9n0f3/stellar_drive:2.3
        # 如需同时推送latest标签,可添加以下命令
        # docker push public.ecr.aws/o8x9n0f3/stellar_drive:latest
    
  • 验证ECR登录状态:在登录步骤后添加调试输出,确认登录成功:
    - name: Login to Amazon ECR
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1
    - name: Verify ECR login
      run: docker info | grep "Registry Mirrors"
    

4. 替换为原生命令登录公共ECR

如果使用官方action仍有问题,可尝试替换为原生AWS命令完成登录:

- name: Login to Amazon Public ECR
  run: aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 23:05:18