如何配置FluxCD仅部署ECR中经签名的镜像?
解决FluxCD仅部署ECR签名镜像的配置方案
一、先确保Ratify与AWS Signer/ECR的集成正常
这是校验的基础,Ratify必须能正确识别AWS Signer给ECR镜像生成的签名:
- 给Ratify的服务账户配置ECR访问权限:附加
AmazonEC2ContainerRegistryReadOnly权限,或者更细粒度的权限集合(包含ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability、ecr:GetRepositoryPolicy),确保它能拉取镜像元数据和签名。 - 配置Ratify的AWS Signer验证器:在Ratify的
values.yaml中添加如下配置,指定你的AWS账户ID和签名配置文件:
validators: - name: awsSigner parameters: accountIds: ["你的AWS账户ID"] signingProfileNames: ["你使用的签名配置文件名"]
- 手动验证Ratify的校验能力:执行
ratify verify -r <你的ECR镜像地址>:<标签>,确认已签名镜像返回验证通过,未签名镜像返回验证失败。
二、修复Gatekeeper与Ratify的联动约束
之前Gatekeeper未生效,大概率是约束规则或集成模板配置有误,需确保Gatekeeper能通过Ratify完成镜像校验并拦截违规部署:
- 部署Ratify与Gatekeeper的集成模板:安装
gatekeeper-ratify的ConstraintTemplate,该模板定义了Gatekeeper调用Ratify的逻辑。 - 创建强制签名校验的约束:新建一个
ImageSignatureConstraint资源,指定所有部署类资源必须通过Ratify的AWS Signer校验,示例配置:
apiVersion: constraints.gatekeeper.sh/v1beta1 kind: ImageSignatureConstraint metadata: name: require-signed-ecr-images spec: match: kinds: - apiGroups: ["apps"] kinds: ["Deployment", "StatefulSet", "DaemonSet"] namespaces: ["*"] # 可指定特定管控命名空间 parameters: failOnErr: true # 校验出错时直接拒绝部署 ratifyEndpoint: "http://ratify.default.svc.cluster.local:6001/verify" # 替换为你的Ratify服务地址
- 验证Gatekeeper拦截效果:尝试部署未签名的ECR镜像,查看是否收到Gatekeeper的拒绝提示,确认约束生效。
三、配置FluxCD配合校验逻辑
Flux需关联校验结果,确保仅选中并部署通过签名校验的镜像:
- 在
ImagePolicy中启用Ratify校验:添加verify字段,指定使用Ratify做签名校验,示例:
apiVersion: image.toolkit.fluxcd.io/v1beta2 kind: ImagePolicy metadata: name: my-app-policy spec: imageRepositoryRef: name: my-app policy: semver: range: ">=1.0.0" verify: provider: ratify address: "http://ratify.default.svc.cluster.local:6001/verify"
- 调整Flux的
Kustomization配置:设置wait: true,让Flux等待资源部署的校验结果,若Gatekeeper拒绝则终止部署;同时确保未配置允许未校验镜像的参数(如--allow-unsigned-images)。 - 确认
ImageUpdateAutomation关联正确:确保自动化更新仅同步ImagePolicy筛选出的已签名镜像标签到Deployment配置中。
四、常见问题排查
- 查看Gatekeeper日志:检查是否存在调用Ratify的网络错误、权限不足等问题。
- 确认ECR签名状态:验证镜像签名已通过AWS Signer和notation正确生成并存储在ECR元数据中。
- 检查Flux日志:确认Flux是否正确读取
ImagePolicy的校验结果,未绕过签名检查。
内容的提问来源于stack exchange,提问作者AWS
相关产品推荐
相关产品推荐

