集群联邦RBAC授权
UCS集群联邦可以实现基于华为云IAM的精细化权限管理。并在联邦中创建 Kubernetes 原生 RBAC 资源,实现联邦访问权限的精细化管理。
使用须知
- UCS的权限管理功能与当前联邦RBAC授权互不影响。使用UCS API时,前者生效;使用KubeConfig直接操作联邦时,后者生效。
- 在集群联邦和成员集群上分别创建的RBAC资源互相不感知、不影响。通过集群联邦入口配置的RBAC权限仅直接访问联邦时生效;直接访问成员集群时,仅成员集群上配置的RBAC生效。
- 在分配细粒度鉴权时,谨慎使用ClusterRole、ClusterRoleBinding等相关权限和角色配置,避免将资源查看权限赋予“Karmada-”为前缀的命名空间;建议使用Role、RoleBinding对指定用户命名空间的资源赋予权限。
集群联邦RBAC授权
UCS集群联邦使用Kubernetes原生RBAC鉴权方式,通过创建RBAC资源,为子用户授予联邦访问权限。
- 使用拥有Tenant Administrator权限的用户,下载并配置好 KubeConfig 文件。详细请参见使用kubectl连接集群联邦。
- 将如下内容保存为list-deploy.yaml文件。
apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: list-deploy-role-binding namespace: default roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: list-deploy-role subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: <user-id> # IAM用户ID - apiGroup: rbac.authorization.k8s.io kind: Group name: <group-id> # IAM用户组的ID --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: list-deploy-role namespace: default rules: - apiGroups: - apps resources: - deployments verbs: - list - get
其中,<user-id>为IAM用户ID,<group-id>为用户组ID。Role与RoleBinding的字段含义详见使用 RBAC 鉴权。
使用如下命令创建对应的资源:kubectl apply -f list-deploy.yaml
创建完成后,<user-id>用户或<group-id>用户组下的用户可使用查看default命名空间的deployment:kubectl get deploy -n default