容器服务 授权模式对比

腾讯云容器服务 TKE 目前存在新旧两种授权模式,旧的授权模式无法进行 Kubernetes 级别的授权管理,建议你升级集群管理的授权模式,以便能够对集群内 Kubernetes 资源进行细粒度的权限控制。

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

一、新旧模式对比

对比项 旧模式 新模式
Kubeconfig admin token 子账号独立的 x509 证书
控制台访问集群资源 无细粒度权限,子账号具备全读写权限 对接 Kubernetes RBAC 资源控制

二、升级授权模式

若使用旧授权模式的集群需要升级时,请参考以下操作步骤进行升级:

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

2. 在集群页面,选择需升级的集群 ID,进入集群基本信息页。

3. 选择左侧授权管理,在 ClusterRole 中,单击 RBAC 策略生成器。

4. 在弹出的“切换权限管理模式”窗口中,单击切换权限管理模式即可进行授权模式升级。如下:

为确保新旧模式的兼容性,升级过程中会进行如下操作:

4.1 创建默认预设管理员 ClusterRole:tke:admin。

4.2 拉取子账号列表。

4.3 为每个子账号生成可用于 Kubernetes APIServer 认证的 x509 客户端证书。

4.4 为每个子账号都绑定 tke:admin 角色(确保和存量功能兼容)。

4.5 升级完毕。

三、回收子账号权限

集群授权模式升级完毕后,集群管理员(通常为主账号管理员或创建集群的运维人员)可按需对具有该集群权限的子账号进行权限回收操作,步骤如下:

1. 选择集群授权管理下的菜单项,在对应的管理页面中单击 RBAC 策略生成器。

2. 在管理权限页面的“选择账号”步骤中,勾选需回收权限的子账号并单击下一步。

3. 在“集群 RBAC 设置” 步骤中,设置权限。例如,“权限设置”选择为命名空间 “default” 下的“只读用户”。

4. 单击完成即可完成回收操作。

四、确认子账号权限

当完成子账号回收操作后,你可通过以下步骤进行确认:

1. 选择左侧的授权管理 > ClusterRoleBinding,进入 ClusterRoleBinding 管理页面。

2. 选择被回收权限的子账号名称,进入 YAML 文档页面。

子账号默认为 tke:admin 权限,回收对应权限后,可在 YAML 文件中查看变更。如下:

五、子账号对应的 Kubernetes 用户名如何获取?

为腾讯云子账号手工创建 RoleBinding 或 ClusterRoleBinding 时,需要在 subjects[].name 中填写该子账号对应的 Kubernetes 认证用户名,而不是 CAM 子账号名称、UIN 或 kubeconfig 中的用户别名。

前提条件

• 使用目标子账号的 AKSK 调用 DescribeClusterKubeconfig,或登录目标子账号从控制台下载 kubeconfig。假设文件名称为 subaccount.kubeconfig。

• 执行命令的机器已安装支持 auth whoami 的 kubectl,且能够访问集群 API Server。

查询用户名

使用目标子账号的 kubeconfig 执行以下命令,可以获取签名在证书中的 UserName。(subaccount.kubeconfig 为前提条件中下载的 kubeconfig 文件)

$ kubectl –kubeconfig subaccount.kubeconfig auth whoamiATTRIBUTE VALUEUsername 100000000001-1700000000Groups [tke:users system:authenticated]

在 Binding 中使用用户名

管理员创建 RoleBinding 或 ClusterRoleBinding 时,将 subjects 设置为证书中的 UserName,即可将相关权限绑定到子账户。

subjects: – kind: User apiGroup: rbac.authorization.k8s.io name: "100000000001-1700000000"

六、在新授权模式下创建的集群,谁具备管理员 admin 权限?

集群的创建者及主账号始终具备 tke:admin ClusterRole 的权限。

七、当前使用账号是否可控制自身权限?

目前不支持通过控制台操作当前使用账号权限,如需进行相关操作,可通过 kubectl 完成。

八、是否可以直接操作 ClusterRoleBinding 及 ClusterRole?

请勿直接对 ClusterRoleBinding 及 ClusterRole 进行修改或删除等操作。

九、客户端证书是如何创建的?

当你使用子账号通过控制台访问集群资源时,TKE 会获取该子账号的客户端证书。若未获取到证书,则会为该子账号创建客户端证书。

十、在访问管理 CAM 中删除了子账号,相关权限会自动回收吗?

不会自动回收,你可进入控制台“授权管理”页面,单击 ClusterRoleBinding,点击右上角“清理失效账户”进行权限回收。

十一、如何授权其他账户“授权管理”的权限?

可使用默认管理员角色 tke:admin 进行“授权管理”的授权操作。

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