文档首页/ 华为云UCS/ 用户指南/ 集群联邦/ 集群联邦RBAC授权
更新时间:2024-04-15 GMT+08:00

集群联邦RBAC授权

UCS集群联邦可以实现基于华为云IAM的精细化权限管理。并在联邦中创建 Kubernetes 原生 RBAC 资源,实现联邦访问权限的精细化管理。

使用须知

  • UCS的权限管理功能与当前联邦RBAC授权互不影响。使用UCS API时,前者生效;使用KubeConfig直接操作联邦时,后者生效。
  • 在集群联邦和成员集群上分别创建的RBAC资源互相不感知、不影响。通过集群联邦入口配置的RBAC权限仅直接访问联邦时生效;直接访问成员集群时,仅成员集群上配置的RBAC生效。
  • 在分配细粒度鉴权时,谨慎使用ClusterRole、ClusterRoleBinding等相关权限和角色配置,避免将资源查看权限赋予“Karmada-”为前缀的命名空间;建议使用Role、RoleBinding对指定用户命名空间的资源赋予权限。

集群联邦RBAC授权

UCS集群联邦使用Kubernetes原生RBAC鉴权方式,通过创建RBAC资源,为子用户授予联邦访问权限。

  1. 使用拥有Tenant Administrator权限的用户,下载并配置好 KubeConfig 文件。详细请参见使用kubectl连接集群联邦
  2. 将如下内容保存为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