容器服务 Cerberus 说明

Cerberus 组件支持对签名镜像进行可信验证,确保在 TKE 集群中只部署可信授权方签名的容器镜像,降低在容器环境中的镜像安全风险。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、部署在集群内的 Kubernetes 对象

Kubernetes 对象名称 类型 请求资源 所属 Namespace
cerberus-webhook Deployment 每个实例 CPU 0.5C,Memory 0.5G,共1个实例 tcr-verification
cerberus-webhook Service – tcr-verification
cerberus-webhook Configmap – tcr-verification
cerberus-webhook Secret – tcr-verification
cerberus-webhook validatingwebhookconfigurations – –
cerberus-rolebinding ClusterRoleBinding – –
cerberus-role ClusterRole – –
cerberus-controller ServiceAccount – –

二、限制条件

·TKE 集群版本 = 1.18。

·开通并使用 TCR 高级版 容器镜像签名 功能后,才可在 TKE 集群中为已加签的镜像进行验签。

·验签需要提前授权容器服务角色拥有使用 TCR 接口的权限。

三、权限说明

·该组件权限是当前功能实现的最小权限依赖。

·需要支持镜像验签功能,所以需要 tcr.tencentcloudcr.com/verifications 的 create、delete、get、list、patch、update、watch 权限。

·不涉及 Secret 等资源的敏感权限。

四、权限定义

apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: creationTimestamp: null name: cerberus-rolerules: – apiGroups: – tcr.tencentcloudcr.com resources: – verifications verbs: – create – delete – get – list – patch – update – watch – apiGroups: – tcr.tencentcloudcr.com resources: – verifications/finalizers verbs: – update – apiGroups: – tcr.tencentcloudcr.com resources: – verifications/status verbs: – get – patch – update

五、授权容器服务使用 TCR 查询接口

为让 TKE 服务可以读取到你账号下的签名信息,需要在你的账号配置如下策略。

1. 登录 访问管理控制台。

2. 在角色页面,单击 TCR_QCSRole。

3. 在 TCR_QCSRole 角色详情页,关联预设策略 QcloudTCRReadOnlyAccess。

六、安装组件并配置验签策略

1. 登录 容器服务控制台,在左侧导航栏中选择集群。

2. 在集群列表中,单击目标集群 ID,进入集群详情页。

3. 选择左侧导航中的组件管理,在组件页面单击新建。

4. 在新建组件管理页面中勾选 Cerberus 组件并进行签名验证策略的参数配置,说明如下:


·策略名称:请为验签策略设置合理名称。

·命名空间:请选择当前验签策略生效的 Kubernetes 命名空间,每个验签策略仅对一个命名空间生效。

·证明者:证明者将定位到镜像加签时所采用的 KMS 密钥,可通过该字段确保镜像签名来源的可信性。

·地域:选择 TCR 镜像仓库实例所在的地域,和 TKE 集群所在地域无强制关联性。

·TCR 实例:选择 TCR 镜像仓库实例。

·签名策略:选择已经创建的签名策略。签名策略和镜像签名时使用的 KMS 密钥相对应,支持选择多个签名策略。

5. 单击确定完成组件创建。

注意:说明:

七、镜像签名验证

1. 登录 容器服务控制台,在左侧导航栏中选择集群。

2. 在集群列表中,单击目标集群 ID,进入集群详情页。

3. 选择左侧导航中的工作负载,在 Deployment 页签,单击新建。

4. 在新建工作负载页,配置实例内容器 > 镜像时,选择待部署的已经加签的容器镜像及镜像版本(Tag)。

5. 单击完成创建工作负载部署。若签名验证通过,则 Pod 将正常部署;若签名验证不通过,则 Pod 部署将被阻断,相关 Event 信息展示如下:

·若拉取镜像所在 TCR 仓库实例下未开启镜像签名特性,则报错如下:

·若拉取镜像没有签名信息,则报错如下:

·若拉取镜像的签名信息验证不通过,则报错如下:

注意:说明:

注意:镜像签名验证目前只支持使用 digest 格式的镜像,否则会验证不通过。

赞 (0)
上一篇 4天前
下一篇 4天前