Updated on 2025-07-17 GMT+08:00

Permission Overview

CCE permissions management allows you to assign permissions to IAM users and user groups under your tenant accounts. CCE combines the advantages of Identity and Access Management (IAM) and Kubernetes Role-based Access Control (RBAC) authorization to provide a variety of authorization methods, including IAM fine-grained authorization, IAM token authorization, cluster-scoped authorization, and namespace-wide authorization.

CCE allows you to manage permissions on clusters and related resources at a finer granularity, for example, to control the access of employees in different departments to cloud resources.

This section describes the CCE permissions management mechanism and related concepts. If your account has met your service requirements, you can skip the configurations in this chapter.

CCE policies apply to all CCE products, including CCE standard, CCE Turbo, and CCE Autopilot clusters. Any permission that is specific for CCE Autopilot clusters will be described in special notes.

CCE Permissions Management

CCE permissions are described as follows:
  • Cluster-level permissions: Cluster-level permissions management evolves out of the system policy authorization feature of IAM. IAM users in the same user group have the same permissions. A user group is simply a group of users. By granting cluster-level permissions to specific user groups, you can enable users in these user groups to perform various operations on clusters, including creating or deleting clusters, nodes, node pools, charts, and add-ons. In the meantime, you can restrict other user groups to only view clusters.

    Cluster-level permissions involve CCE non-Kubernetes APIs and support fine-grained IAM policies and enterprise project management capabilities.

  • Namespace-level permissions: You can regulate users' or user groups' access to Kubernetes resources in a single namespace based on their Kubernetes RBAC roles. CCE has also been enhanced based on open-source capabilities. It supports RBAC authorization based on IAM user or user group, and RBAC authentication on access to APIs using IAM tokens.

    Namespace-level permissions involve CCE and Kubernetes APIs and are enhanced based on the Kubernetes RBAC capabilities. Namespace-level permissions can be granted to IAM users or user groups for authentication and authorization, but are independent of fine-grained IAM policies.

In general, you configure CCE permissions in two scenarios. The first is creating and managing clusters and related resources, such as nodes. The second is using Kubernetes resources in the cluster, such as workloads and Services.

Figure 1 Illustration on CCE permissions

These permissions allow you to manage resource users at a finer granularity.

Cluster Permissions (IAM-based) and Namespace Permissions (Kubernetes RBAC-based)

Users with different cluster permissions (assigned using IAM) have different namespace permissions (assigned using Kubernetes RBAC). Table 1 lists the namespace permissions of different users.

Table 1 Differences in namespace permissions

User

CCE Standard, CCE Turbo, and CCE Autopilot (v1.13 or Later)

User with the Tenant Administrator permissions (for example, an account)

All namespace permissions

IAM user with the CCE Administrator role

All namespace permissions

IAM user with the CCE FullAccess or CCE ReadOnlyAccess role

Kubernetes RBAC authorization

IAM user with the Tenant Guest role

Kubernetes RBAC authorization

kubectl Permissions

You can use kubectl to access Kubernetes resources in a cluster.

When you access a cluster using kubectl, CCE uses kubeconfig.json generated on the cluster for authentication. This file contains user information, based on which CCE determines which Kubernetes resources can be accessed by kubectl. The permissions recorded in a kubeconfig.json file vary from user to user. The permissions that a user has are listed in Table 1.

Federated Users

IAM provides the identity provider function to implement federated identity authentication based on Security Assertion Markup Language (SAML) or OpenID Connect. This allows users in your management system to access the cloud platform through single sign-on (SSO).

Users who log in through federated identity authentication are called federated users. Federated users are equivalent to IAM users.

Pay attention to the following for federated users to use CCE:

  • When a user creates a CCE cluster, the cluster-admin permission is granted to the user by default. The user ID of a federated user changes upon each login and logout. Therefore, the user is displayed as deleted on the Permissions page of the CCE console. Do not manually delete the permission, otherwise, the authentication fails. You are advised to grant the cluster-admin permission to a user group on CCE and add federated users to the user group.
  • Federated users cannot create permanent access keys (AKs/SKs). In scenarios where AKs/SKs are required (for example, when creating OBS-related PVs/PVCs), only you or an IAM user can create the AK/SK and share them with the federated users. An access key contains the permissions granted to a user, so it is recommended that the federated user request an IAM user in the same group to create an access key.

Supported Actions in IAM

CCE provides system-defined policies that can be directly used in IAM. You can also create custom policies to supplement system-defined policies for more refined access control. Operations supported by policies are specific to APIs. The following are common concepts related to policies:

  • Permissions: statements in a policy that allow or deny certain operations
  • APIs: REST APIs that can be called by a user who has been granted specific permissions.
  • Actions: specific operations that are allowed or denied.
  • Dependencies: actions which a specific action depends on. When allowing an action for a user, you also need to allow any existing action dependencies for that user.
  • IAM projects/Enterprise projects: the authorization scope of a custom policy. A custom policy can be applied to IAM projects or enterprise projects or both. Policies that contain actions for both IAM and enterprise projects can be used and applied for both IAM and Enterprise Management. Policies that contain actions only for IAM projects can be used and applied to IAM only. For details about the differences between IAM and enterprise management, see What Are the Differences Between IAM and Enterprise Management?

The check mark (√) and cross symbol (x) indicate that an action takes effect or does not take effect for the corresponding type of projects.

CCE supports the following actions in custom policies.

Table 2 Cluster

Permission

API

Action

IAM Project

Enterprise Project

Obtaining clusters in a project

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters

cce:cluster:list

Obtaining a cluster

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:get

Creating a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters

cce:cluster:create

Updating a cluster

[CCE standard and CCE Turbo clusters]

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}

[CCE Autopilot clusters]

PUT /autopilot/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:update

Deleting a cluster

[CCE standard and CCE Turbo clusters]

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}

[CCE Autopilot clusters]

DELETE /autopilot/v3/projects/{project_id}/clusters/{cluster_id}

cce:cluster:delete

Upgrading a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade

cce:cluster:upgrade

Waking up a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/awake

[CCE Autopilot clusters]

N/A

cce:cluster:start

Hibernating a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/hibernate

[CCE Autopilot clusters]

N/A

cce:cluster:stop

Changing the specifications of a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v2/projects/{project_id}/clusters/:clusterid/resize

[CCE Autopilot clusters]

N/A

cce:cluster:resize

Binding/Unbinding the public API server address of a cluster

[CCE standard and CCE Turbo clusters]

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/mastereip

[CCE Autopilot clusters]

PUT /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/mastereip

cce:cluster:update

Obtaining the certificate of a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/clustercert

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/clustercert

cce:cluster:get

Table 3 Node

Permissions

API

Action

IAM Project

Enterprise Project

Obtaining all nodes in a cluster

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes

[CCE Autopilot clusters]

N/A

cce:node:list

Obtaining a node

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

[CCE Autopilot clusters]

N/A

cce:node:get

Creating a node

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes

[CCE Autopilot clusters]

N/A

cce:node:create

NOTE:

If you use enterprise project authorization to create a node, you need to add the global permission of evs:quota:get.

Updating a node

[CCE standard and CCE Turbo clusters]

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

[CCE Autopilot clusters]

N/A

cce:node:update

Deleting a node

[CCE standard and CCE Turbo clusters]

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodes/{node_id}

[CCE Autopilot clusters]

N/A

cce:node:delete

Table 4 Job

Permissions

API

Action

IAM Project

Enterprise Project

Obtaining information about a job

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/jobs/{job_id}

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/jobs/{job_id}

cce:job:get

Listing all jobs

[CCE standard and CCE Turbo clusters]

GET /api/v2/projects/{project_id}/jobs

[CCE Autopilot clusters]

GET /autopilot/v2/projects/{project_id}/jobs

cce:job:list

Deleting one or all jobs

[CCE standard and CCE Turbo clusters]

DELETE /api/v2/projects/{project_id}/jobs

DELETE /api/v2/projects/{project_id}/jobs/{job_id}

[CCE Autopilot clusters]

DELETE /autopilot/v2/projects/{project_id}/jobs

DELETE /autopilot/v2/projects/{project_id}/jobs/{job_id}

cce:job:delete

Table 5 Node pool

Permission

API

Action

IAM Project

Enterprise Project

Obtaining all node pools in a cluster

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools

[CCE Autopilot clusters]

N/A

cce:nodepool:list

Obtaining a node pool

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

[CCE Autopilot clusters]

N/A

cce:nodepool:get

Creating a node pool

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools

[CCE Autopilot clusters]

N/A

cce:nodepool:create

Updating a node pool

[CCE standard and CCE Turbo clusters]

PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

[CCE Autopilot clusters]

N/A

cce:nodepool:update

Deleting a node pool

[CCE standard and CCE Turbo clusters]

DELETE /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/{nodepool_id}

[CCE Autopilot clusters]

N/A

cce:nodepool:delete

Table 6 Chart

Permission

API

Action

IAM Project

Enterprise Project

Updating a chart

[CCE standard and CCE Turbo clusters]

PUT /v2/charts/{id}

[CCE Autopilot clusters]

POST /autopilot/v2/charts

cce:chart:update

×

Uploading a chart

[CCE standard and CCE Turbo clusters]

POST /v2/charts

[CCE Autopilot clusters]

POST /autopilot/v2/charts

cce:chart:upload

×

Downloading a chart

[CCE standard and CCE Turbo clusters]

GET /v2/charts/{id}/archive

[CCE Autopilot clusters]

GET /autopilot/v2/charts/{id}/archive

cce:chart:get

×

Listing all charts

[CCE standard and CCE Turbo clusters]

GET /v2/charts

[CCE Autopilot clusters]

GET /autopilot/v2/charts

cce:chart:list

×

Obtaining information about a chart

[CCE standard and CCE Turbo clusters]

GET /v2/charts/{id}

[CCE Autopilot clusters]

GET /autopilot/v2/charts/{id}

cce:chart:get

×

Obtaining a chart

[CCE standard and CCE Turbo clusters]

GET /v2/charts/{id}/values

[CCE Autopilot clusters]

GET /autopilot/v2/charts/{id}/values

cce:chart:get

×

Deleting a chart

[CCE standard and CCE Turbo clusters]

DELETE /v2/charts/{id}

[CCE Autopilot clusters]

DELETE /autopilot/v2/charts/{id}

cce:chart:delete

×

Obtaining the quota of a chart

[CCE standard and CCE Turbo clusters]

GET /v2/charts/{project_id}/quotas

[CCE Autopilot clusters]

GET /autopilot/v2/charts/{project_id}/quotas

cce:chart:list

×

Table 7 Release

Permission

API

Action

IAM Project

Enterprise Project

Updating a release

[CCE standard and CCE Turbo clusters]

PUT /cce/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

PUT /v2/releases/{name} (deprecated)

[CCE Autopilot clusters]

PUT /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

cce:release:update

Listing all releases

[CCE standard and CCE Turbo clusters]

GET /cce/cam/v3/clusters/{cluster_id}/releases

GET /v2/releases (deprecated)

[CCE Autopilot clusters]

GET /autopilot/cam/v3/clusters/{cluster_id}/releases

cce:release:list

Creating a release

[CCE standard and CCE Turbo clusters]

POST /cce/cam/v3/clusters/{cluster_id}/releases

POST /v2/releases (deprecated)

[CCE Autopilot clusters]

POST /autopilot/cam/v3/clusters/{cluster_id}/releases

cce:release:create

Obtaining information about a release

[CCE standard and CCE Turbo clusters]

GET /cce/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

GET /v2/releases/{name} (deprecated)

[CCE Autopilot clusters]

GET /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

cce:release:get

Querying historical records of a release

[CCE standard and CCE Turbo clusters]

GET /cce/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}/history

GET /v2/releases/{name}/history (deprecated)

[CCE Autopilot clusters]

GET /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

cce:release:get

Deleting a release

[CCE standard and CCE Turbo clusters]

DELETE /cce/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

DELETE /v2/releases/{name} (deprecated)

[CCE Autopilot clusters]

DELETE /autopilot/cam/v3/clusters/{cluster_id}/namespace/{namespace}/releases/{name}

cce:release:delete

Table 8 Storage

Permission

API

Action

IAM Project

Enterprise Project

Creating a PVC (to be discarded)

[CCE standard and CCE Turbo clusters]

POST /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims

[CCE Autopilot clusters]

N/A

cce:storage:create

Deleting a PVC (to be discarded)

[CCE standard and CCE Turbo clusters]

DELETE /api/v1/namespaces/{namespace}/cloudpersistentvolumeclaims/{name}

[CCE Autopilot clusters]

N/A

cce:storage:delete

Listing all volumes

[CCE standard and CCE Turbo clusters]

GET /storage/api/v1/namespaces/{namespace}/listvolumes

[CCE Autopilot clusters]

N/A

cce:storage:list

Table 9 Add-on

Permission

API

Action

IAM Project

Enterprise Project

Listing all add-on templates

[CCE standard and CCE Turbo clusters]

GET /api/v3/addontemplate

[CCE Autopilot clusters]

GET /autopilot/v3/addontemplates

cce:addonTemplate:get

x

Creating an add-on instance

[CCE standard and CCE Turbo clusters]

POST /api/v3/addons

[CCE Autopilot clusters]

POST /autopilot/v3/addons

cce:addonInstance:create

Obtaining an add-on instance

[CCE standard and CCE Turbo clusters]

GET /api/v3/addons/{id}?cluster_id={cluster_id}

[CCE Autopilot clusters]

GET /autopilot/v3/addons/{id}

cce:addonInstance:get

Listing all add-on instances

[CCE standard and CCE Turbo clusters]

GET /api/v3/addons?cluster_id={cluster_id}

[CCE Autopilot clusters]

GET /autopilot/v3/addons?cluster_id={cluster_id}

cce:addonInstance:list

Deleting an add-on instance

[CCE standard and CCE Turbo clusters]

DELETE /api/v3/addons/{id}

[CCE Autopilot clusters]

DELETE /autopilot/v3/addons/{id}

cce:addonInstance:delete

Updating an add-on instance

[CCE standard and CCE Turbo clusters]

PUT /api/v3/addons/{id}

[CCE Autopilot clusters]

PUT /autopilot/v3/addons/{id}

cce:addonInstance:update

Table 10 Quota

Permission

API

Action

IAM Project

Enterprise Project

Obtaining quota details

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/quotas

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/quotas

cce:quota:get

Table 11 Label

Permission

API

Action

IAM Project

Enterprise Project

Adding resource tags to a cluster in batches

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/tags/create

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/tags/create

cce:tag:operate

Deleting resource tags from a cluster in batches

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/tags/delete

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/tags/delete

cce:tag:operate

Table 12 Upgrade

Permission

API

Action

IAM Project

Enterprise Project

Obtaining the details about a cluster upgrade task

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/tasks/{task_id}

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/tasks/{task_id}

cce:cluster:get

Obtaining a list of cluster upgrade task details

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/tasks

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/tasks

cce:cluster:get

Retrying a cluster upgrade task

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/retry

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgrade/retry

cce:cluster:upgrade

Performing a pre-upgrade check for a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck

cce:cluster:upgrade

Obtaining details about a pre-upgrade check task of a cluster

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck/tasks/{task_id}

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck/tasks/{task_id}

cce:cluster:get

Obtaining a list of pre-upgrade check tasks of a cluster

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck/tasks

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/precheck/tasks

cce:cluster:get

Performing a post-upgrade check for a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/postcheck

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/postcheck

cce:cluster:upgrade

Backing up a cluster

[CCE standard and CCE Turbo clusters]

POST /api/v3.1/projects/{project_id}/clusters/{cluster_id}/operation/snapshot

[CCE Autopilot clusters]

POST /autopilot/v3.1/projects/{project_id}/clusters/{cluster_id}/operation/snapshot

cce:cluster:upgrade

Obtaining a list of cluster backup task details

[CCE standard and CCE Turbo clusters]

GET /api/v3.1/projects/{project_id}/clusters/{cluster_id}/operation/snapshot/tasks

[CCE Autopilot clusters]

GET /autopilot/v3.1/projects/{project_id}/clusters/{cluster_id}/operation/snapshot/tasks

cce:cluster:get

Obtaining details about a cluster upgrade task

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/upgradeinfo

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/upgradeinfo

cce:cluster:get

Enabling the cluster upgrade booting task

[CCE standard and CCE Turbo clusters]

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows

[CCE Autopilot clusters]

POST /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows

cce:cluster:upgrade

Obtaining a list of historical cluster upgrade booting tasks

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows

cce:cluster:get

Obtaining details about a specified cluster upgrade booting task

[CCE standard and CCE Turbo clusters]

GET /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows/{upgrade_workflow_id}

[CCE Autopilot clusters]

GET /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows/{upgrade_workflow_id}

cce:cluster:get

Updating the status of a cluster upgrade booting task

[CCE standard and CCE Turbo clusters]

PATCH /api/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows/{upgrade_workflow_id}

[CCE Autopilot clusters]

PATCH /autopilot/v3/projects/{project_id}/clusters/{cluster_id}/operation/upgradeworkflows/{upgrade_workflow_id}

cce:cluster:upgrade