容器镜像服务ACR(Alibaba Cloud Container Registry)支持镜像加签功能,保障镜像从分发到部署的全链路一致性,避免中间人攻击和非法镜像的更新及运行。ACR支持命名空间级别的自动加签,每次推送容器镜像后都会匹配加签规则自动加签,保障您的容器镜像内容可信。
前提条件
创建非对称密钥
授权容器镜像服务使用KMS密钥
为了让ACR可以读取到您账号下的非对称密钥,需要在您的账号上配置以下RAM策略。
- 登录RAM控制台。
- 在控制台左侧导航栏中选择 RAM角色管理。
- 在RAM角色管理页面创建AliyunContainerRegistryKMSRole角色。
- 在RAM角色管理页面单击创建RAM角色。
- 在选择类型配置向导中选择当前可信实体类型,然后单击下一步。
- 在配置角色中设置角色名称为AliyunContainerRegistryKMSRole,并选择云账号,然后单击完成。
- 修改信任策略。
- 新建AliyunContainerRegistryKMSRolePolicy策略。
- 在左侧导航栏中,选择 RAM角色管理,在角色列表中,找到
AliyunContainerRegistryKMSRole
角色。 - 单击右侧操作列中的添加权限。
- 在权限类型中选择自定义策略,找到并选择
AliyunContainerRegistryKMSRolePolicy
,单击确定,完成添加。
配置证明者及验签策略
配置镜像自动加签规则
- 登录容器镜像服务控制台。
- 在顶部菜单栏,选择所需地域。
- 在左侧导航栏,选择实例列表。
- 在实例列表页面单击目标企业版实例。
- 在企业版实例管理页面左侧导航栏选择添加加签规则。 。单击
- 在密钥配置的配置向导中选择在安全中心创建的证明者关联KMS Key。然后单击下一步。
- 在加签配置的配置向导中设置参数,然后单击创建加签规则。
说明 设置加签规则仅对该命名空间下所有新上传的镜像进行加签操作,存量的镜像不做加签操作。加签类型:
- 默认:加签范围有镜像Digest和镜像版本信息,默认模式适用于当前实例下镜像数据的验签。
- 极简:加签范围仅有镜像Digest部分,不依赖镜像版本的信息。极简模式适用于跨实例镜像同步场景,镜像版本会变更时对应镜像数据的验签。
- 加签算法:提供两种可选加签算法RSA_PSS_SHA_256或者RSA_PKCS1_SHA_256。
- 加签范围:目前支持命名空间级别自动加签,选择需要自动加签的命名空间。
- 触发方式:默认支持自动触发,每次推送镜像后,会自动触发加签。
镜像验签
关于镜像验签请参见使用kritis-validation-hook进行容器镜像签名验证。
说明
- 支持在容器服务Kubernetes版集群中使用组件进行自动验签,设置相应策略在验签失败时阻断镜像部署,推荐此方法。
- 支持客户基于密钥管理中心验签功能、容器镜像服务镜像签名数据自行验签。