本文主要介绍如何配置子账号对应的Kubernetes集群内RBAC权限。
配置说明
- 默认情况下子账号(非集群创建者)没有集群内任何K8s资源的访问权限。
- 请先确保目标子账号在RAM管理控制台中至少已被授予指定集群的RAM只读权限。
- 您可以使用容器服务提供的两个预置角色即管理员(拥有集群内全部K8s资源访问权限)和运维人员来对目标子账号进行授权。
- 对于拥有全局权限的管理员子账号,可以在所有集群维度进行一键授权,后续新创建的集群也会自动绑定已经授权的ClusterRole。
- 当运维管理子账号给其他子账号进行RBAC授权时,控制台会过滤其可以授权的集群和命名空间的资源范围,只有当运维管理子账号有指定集群或命名空间的管理员或cluster-admin角色时,才可以给其他子账号进行RBAC授权。
- 支持对多个目标子账号进行批量授权。
- 由于阿里云RAM的安全限制,当您通过容器服务控制台的授权配置涉及到子账号RAM授权的修改时,需要您按照页面上给出的参考策略内容和操作说明,在RAM控制台进行目标子账号的手动授权。
操作步骤
自定义权限说明
阿里云容器服务预置了管理员、运维人员、开发人员和受限用户4种标准的访问权限,可满足大部分用户在容器服务控制台上的使用需求。如果您想自由定义集群的访问权限,可使用自定义权限功能。
阿里云容器服务内置了一些自定义权限。
说明 其中cluster-admin权限值得关注,属于集群超级管理员权限,对所有资源都默认拥有权限。

您可登录到集群节点,执行以下命令,查看自定义权限的详情。
kubectl get clusterrole
kubectl get clusterrole
NAME AGE
admin 13d
alibaba-log-controller 13d
alicloud-disk-controller-runner 13d
cluster-admin 13d
cs:admin 13d
edit 13d
flannel 13d
kube-state-metrics 22h
node-exporter 22h
prometheus-k8s 22h
prometheus-operator 22h
system:aggregate-to-admin 13d
....
system:volume-scheduler 13d
view 13d
以超级管理员cluster-admin为例,执行以下命令,查看其权限详情。
kubectl get clusterrole cluster-admin -o yaml
说明 子账号被授予该集群角色后,在该集群内,可视为与主账号有相同权限的超级账号,拥有操作集群内所有资源的任意权限,建议谨慎授予。
kubectl get clusterrole cluster-admin -o yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
creationTimestamp: 2018-10-12T08:31:15Z
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: cluster-admin
resourceVersion: "57"
selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/cluster-admin
uid: 2f29f9c5-cdf9-11e8-84bf-00163e0b2f97
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
- nonResourceURLs:
- '*'
verbs:
- '*'
在文档使用中是否遇到以下问题
更多建议
匿名提交