云容器引擎 CCE-集群权限(IAM授权):CCE集群权限与IAM RBAC

时间:2023-11-01 16:25:55

CCE集群权限与 IAM RBAC

CCE兼容IAM传统的系统角色进行权限管理,建议您切换使用IAM的细粒度策略,避免设置过于复杂或不必要的权限管理场景。

CCE当前支持的角色如下:

  • IAM的基础角色:
    • te_admin(Tenant Administrator):可以调用除IAM外所有服务的所有API。
    • readonly(Tenant Guest):可以调用除IAM外所有服务的只读权限的API。
  • CCE的自定义管理员角色:CCE Administrator。
  • 由于历史原因,CCE的API中保留了对应用管理与运维平台(ServiceStage)的三个系统角色(SvcStg Administrator、SvcStg Developer、SvcStg Operator)的兼容,当前CCE和ServiceStage已经全面适配了IAM的细粒度策略进行权限管理,不建议您继续使用该系统角色进行权限管理。其在CCE侧的具体权限如下:
    • SvcStg Administrator:拥有CCE Administrator相同权限,例外:拥有此角色的用户不默认具有命名空间的权限(Kubernetes RBAC)。
    • SvcStg Developer:拥有CCE Administrator相同权限,例外:拥有此角色的用户不默认具有命名空间的权限(Kubernetes RBAC)。
    • SvcStg Operator:拥有CCE的只读权限,但不默认具有命名空间的权限。

    了解更多ServiceStage和CCE的权限管理详情请参见:ServiceStage权限管理介绍 CCE权限管理 介绍。

  • Tenant Administrator、Tenant Guest是特殊的IAM系统角色,当配置任意系统或自定义策略后,Tenant Administrator、Tenant Guest将以系统策略形式生效,用于兼容IAM RBAC和ABAC场景。
  • 如果用户有Tenant Administrator或者CCE Administrator的系统角色,则此用户拥有Kubernetes RBAC的cluster-admin权限,在集群创建后不可移除。
    如果用户为集群创建者,则默认被授权Kubernetes RBAC的cluster-admin权限,此项权限可以在集群创建后被手动移除:
    • 方式1:权限管理 - 命名空间权限 - 移除cluster-creator。
    • 方式2:通过API或者kubectl删除资源,ClusterRoleBinding:cluster-creator。

RBAC与IAM策略共存时,CCE开放API或Console操作的后端鉴权逻辑如下:

CCE部分接口由于涉及命名空间权限或关键操作,需要特殊权限:

clusterCert获取集群k8s kubeconfig: cceadm/teadmin

support.huaweicloud.com/usermanual-cce/cce_01_0188.html