文档首页 > > 用户指南> 权限管理> 集群权限

集群权限

分享
更新时间: 2020/07/14 GMT+08:00

CCE集群权限是基于IAM系统策略自定义策略的授权,可以通过用户组功能实现IAM用户的授权,如何授权请参见设置集群权限

集群权限仅针对与集群相关的资源(如集群、节点等)有效,您必须确保同时配置了命名空间权限,才能有操作Kubernetes资源(如工作负载、Service等)的权限。

系统策略

IAM中预置的CCE系统策略当前包含CCE FullAccessCCE ReadOnlyAccess两种策略,分别支持的细粒度操作(Action)权限如下:

表1 CCE FullAccess策略主要权限

操作(Action)

Action详情

说明

cce:*:*

cce:cluster:create

创建集群

cce:cluster:delete

删除集群

cce:cluster:update

更新集群,如后续允许集群支持RBAC,调度参数更新等

cce:cluster:upgrade

升级集群

cce:cluster:resize

变更集群规格

cce:cluster:start

唤醒集群

cce:cluster:stop

休眠集群

cce:cluster:list

查询集群列表

cce:cluster:get

查询集群详情

cce:node:create

添加节点

cce:node:delete

删除节点/批量删除节点

cce:node:update

更新节点,如更新节点名称

cce:node:get

查询节点详情

cce:node:list

查询节点列表

cce:nodepool:create

创建节点池

cce:nodepool:delete

删除节点池

cce:nodepool:update

更新节点池信息

cce:nodepool:get

获取节点池

cce:nodepool:list

列出集群的所有节点池

cce:release:create

创建模板实例

cce:release:delete

删除模板实例

cce:release:update

更新升级模板实例

cce:job:list

查询任务列表(集群层面的job)

cce:job:delete

删除任务/批量删除任务(集群层面的job)

cce:job:get

查询任务详情(集群层面的job)

cce:storage:create

创建存储

cce:storage:delete

删除存储

cce:storage:list

列出所有磁盘

cce:addonInstance:create

创建插件实例

cce:addonInstance:delete

删除插件实例

cce:addonInstance:update

更新升级插件实例

cce:addonInstance:get

获取插件实例

cce:addonTemplate:get

获取插件模板

cce:addonInstance:list

列出所有插件实例

cce:addonTemplate:list

列出所有插件模板

cce:chart:list

列出所有模板

cce:chart:delete

删除摸板

cce:chart:update

更新模板

cce:chart:upload

上传模板

cce:chart:get

获取模板信息

cce:release:get

获取模板实例信息

cce:release:list

列出所有模板实例

cce:userAuthorization:get

获取CCE用户授权

cce:userAuthorization:create

创建CCE用户授权

ecs:*:*

-

ECS(弹性云服务器)服务的所有权限。

evs:*:*

具体action详见:云硬盘v2接口的授权信息

EVS(云硬盘)的所有权限。

可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量

vpc:*:*

-

VPC(虚拟私有云,包含二代ELB)的所有权限。

创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内。

sfs:*:get*

-

SFS(弹性文件服务)资源详情的查看权限。

sfs:shares:ShareAction

-

SFS(弹性文件服务)资源的扩容共享。

aom:*:get

-

AOM(应用运维管理)资源详情的查看权限。

aom:*:list

-

AOM(应用运维管理)资源列表的查看权限。

aom:autoScalingRule:*

-

AOM(应用运维管理)自动扩缩容规则的所有操作权限。

apm:icmgr:*

-

APM(应用性能管理服务)操作ICAgent权限。

表2 CCE ReadOnlyAccess策略主要权限

操作(Action)

操作(Action)

说明

cce:*:get

cce:cluster:get

查询集群详情

cce:node:get

查询节点详情

cce:job:get

查询任务详情(集群层面的job)

cce:addonInstance:get

获取插件实例

cce:addonTemplate:get

获取插件模板

cce:chart:get

获取模板信息

cce:nodepool:get

获取节点池

cce:release:get

获取模板实例信息

cce:userAuthorization:get

获取CCE用户授权

cce:*:list

cce:cluster:list

查询集群列表

cce:node:list

查询节点列表

cce:job:list

查询任务列表(集群层面的job)

cce:addonInstance:list

列出所有插件实例

cce:addonTemplate:list

列出所有插件模板

cce:chart:list

列出所有模板

cce:nodepool:list

列出集群的所有节点池

cce:release:list

列出所有模板实例

cce:storage:list

列出所有磁盘

cce:kubernetes:*

-

操作所有kubernetes资源,具体权限请在命名空间权限中配置。

ecs:*:get

-

ECS(弹性云服务器)所有资源详情的查看权限。

CCE中的一个节点就是具有多个云硬盘的一台弹性云服务器

ecs:*:list

-

ECS(弹性云服务器)所有资源列表的查看权限。

evs:*:get

-

EVS(云硬盘)所有资源详情的查看权限。可以将云硬盘挂载到云服务器,并可以随时扩容云硬盘容量

evs:*:list

-

EVS(云硬盘)所有资源列表的查看权限。

evs:*:count

-

-

vpc:*:get

-

VPC(虚拟私有云,包含二代ELB)所有资源详情的查看权限。

创建的集群需要运行在虚拟私有云中,创建命名空间时,需要创建或关联VPC,创建在命名空间的容器都运行在VPC之内

vpc:*:list

-

VPC(虚拟私有云,包含二代ELB)所有资源列表的查看权限。

sfs:*:get*

-

SFS(弹性文件服务)服务所有资源详情的查看权限。

sfs:shares:ShareAction

-

SFS(弹性文件服务)资源的扩容共享。

aom:*:get

-

AOM(应用运维管理)服务所有资源详情的查看权限。

aom:*:list

-

AOM(应用运维管理)服务所有资源列表的查看权限。

aom:autoScalingRule:*

-

AOM(应用运维管理)服务自动扩缩容规则的所有操作权限。

操作(Action)与CCE API对应关系请参见策略支持的授权项

自定义策略

如果系统预置的CCE策略,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参考权限策略和授权项

目前华为云支持以下两种方式创建自定义策略:

  • 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。
  • JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。

具体创建步骤请参见:创建自定义策略。本章为您介绍常用的CCE自定义策略样例。

job类型的操作不支持自定义资源路径,如cce:job:get、cce:job:list、cce:job:delete。

CCE自定义策略样例:

  • 示例1:创建一个名称为“test”的集群
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cce:cluster:create"
                ]
            }
        ]
    }
  • 示例2:拒绝用户删除节点

    拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则

    如果您给用户授予CCE FullAccess的系统策略,但不希望用户拥有CCE FullAccess中定义的删除节点权限(cce:node:delete),您可以创建一条相同Action的自定义策略,并将自定义策略的Effect设置为Deny,然后同时将CCE FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对CCE执行除了删除节点外的所有操作。拒绝策略示例如下:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "cce:node:delete"
                ]
            }
        ]
    }
  • 示例4:多个授权项策略

    一个自定义策略中可以包含多个授权项,且除了可以包含本服务的授权项外,还可以包含其他服务的授权项,可以包含的其他服务必须跟本服务同属性,即都是项目级服务或都是全局级服务。多个授权语句策略描述如下:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Action": [
                    "ecs:cloudServers:resize",
                    "ecs:cloudServers:delete",
                    "ecs:cloudServers:delete",
                    "ims:images:list",
                    "ims:serverImages:create"
                ],
                "Effect": "Allow"
            }
        ]
    }

延伸阅读

CCE集群权限与企业项目

CCE支持以集群为粒度,基于企业项目维度进行资源管理以及权限分配。

如下事项需特别注意:

  • IAM项目是基于资源的物理隔离进行管理,而企业项目则是提供资源的全局逻辑分组,更符合企业实际场景,并且支持基于企业项目维度的IAM策略管理,因此推荐您使用企业项目。详细信息请参见如何创建企业项目
  • IAM项目与企业项目共存时,IAM将优先匹配IAM项目策略、未决则匹配企业项目策略。
  • CCE集群基于已有基础资源(VPC)创建集群、节点时,请确保IAM用户在已有资源的企业项目下有相关权限,否则可能导致集群或者节点创建失败。

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或者Tenant Guest的系统角色,则此用户拥有Kubernetes RBAC的cluster-admin权限,在集群创建后不可移除。
    如果用户为集群创建者,则默认被授权Kubernetes RBAC的cluster-admin权限,此项权限可以在集群创建后被手动移除:
    • 方式1:权限管理 - 命名空间权限 - 移除cluster-creator。
    • 方式2:通过API或者kubectl删除资源,ClusterRoleBinding:cluster-creator。

RBAC与IAM策略共存时,CCE后端鉴权逻辑如下:

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

clusterCert 获取集群k8s kubeconfig: cceadm/teadmin

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问