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

使用helm push推送至AWS ECR时遭遇403 Forbidden错误求助

Helm Push到AWS ECR返回403 Forbidden的排查与解决方法

以下是可能的原因及对应的解决步骤:

  • ECR仓库权限配置不完整
    即使EC2实例绑定了IAM角色,需确认角色权限是否覆盖OCI artifact推送所需的所有操作:ecr:PutImage、ecr:InitiateLayerUpload、ecr:UploadLayerPart、ecr:CompleteLayerUpload,而不仅仅是Docker镜像推送权限。
    解决:检查IAM角色的权限策略,确保包含上述操作,且资源范围明确指向目标ECR仓库(例如arn:aws:ecr:ap-southeast-1:账号ID:repository/sit-helm-chart)。

  • Helm未完成ECR OCI仓库登录
    Helm推送OCI artifact需要先完成ECR仓库的认证登录,若未执行登录或会话已过期,会触发403错误。
    解决:重新执行登录命令:

    aws ecr get-login-password --region ap-southeast-1 | helm registry login --username AWS --password-stdin xxx.dkr.ecr.ap-southeast-1.amazonaws.com
    

    确认登录成功后再执行helm push。

  • 目标Chart版本已存在于ECR仓库
    ECR不允许覆盖已存在的同一版本OCI artifact,这种场景下也会返回403错误(错误码易混淆为权限问题)。
    解决:登录ECR控制台检查是否已有0.1.1版本的Chart,若存在则删除现有版本,或修改Chart的version字段后重新推送。

  • ECR仓库的Repository Policy限制
    EC2的IAM角色有权限,但ECR仓库自身的Repository Policy可能拒绝了该角色的推送操作。
    解决:进入ECR仓库的「权限」页面,检查Repository Policy是否允许目标IAM角色执行推送相关的ECR操作,若缺失则添加对应的允许规则。

  • AWS认证上下文异常
    EC2实例的IAM角色可能未正确加载,或本地AWS配置文件(~/.aws/config/credentials)覆盖了实例角色的认证身份。
    解决:执行aws sts get-caller-identity确认当前使用的身份是预期的EC2 IAM角色;若存在自定义配置文件,通过export AWS_PROFILE=default切换到正确的认证上下文。

  • Helm推送路径格式错误
    推送Helm Chart到ECR OCI仓库时,路径格式需符合规范,若路径错误会触发权限类报错。
    解决:确保推送命令的格式正确,例如:

    helm push ./your-chart-directory oci://xxx.dkr.ecr.ap-southeast-1.amazonaws.com
    

    无需在OCI路径后追加仓库名,Helm会自动匹配本地Chart名与ECR仓库名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:44:57