Kubernetes环境下Anchore无法添加ECR镜像仓库问题求助
Anchore添加ECR仓库406报错排查方案
- 报错
awsauto not enabled的核心原因是Anchore服务端默认关闭了ECR自动认证功能,与CLI配置、客户端IAM权限无关,按以下步骤排查修复即可:
1. 开启服务端ECR自动认证配置
- 若使用Helm部署Anchore,直接修改values.yaml配置项,修改后升级发布:
anchoreGlobal: aws: allow_awsecr_auto: true
- 若手动部署,修改Anchore核心配置文件
config.yaml中authentication.aws.allow_awsecr_auto字段值为true - 配置修改完成后,重启Anchore的
api、catalog服务组件,确认配置已加载生效
2. 修正IAM权限挂载对象
注意:ECR凭证拉取、镜像扫描操作均由Anchore服务端执行,而非anchore-cli客户端执行,权限需要配置给Anchore服务端Pod,而非仅给cli Pod
- 确认绑定了AmazonEC2ContainerRegistryReadOnly策略的IAM角色,已经通过ServiceAccount关联到Anchore的核心服务Pod上
- EKS环境下需要确认ServiceAccount已添加正确标注:
annotations: eks.amazonaws.com/role-arn: arn:aws:iam::[你的AWS账号ID]:role/[你的IAM角色名]
3. 重新执行仓库添加命令
上述配置生效后,重新执行原anchore-cli registry add命令即可正常添加ECR类型仓库。
内容的提问来源于stack exchange,提问作者coder here
相关产品推荐
相关产品推荐

