All Products
Search
Document Center

Container Compute Service:Authorization overview

Last Updated:Feb 28, 2026

Container Compute Service (ACS) uses two authorization layers: Resource Access Management (RAM) for cloud resource operations and role-based access control (RBAC) for Kubernetes resources inside clusters. A RAM user or RAM role needs permissions from both layers to manage clusters and workloads.

TaskAuthorization layerDocumentation
Create, view, or delete clustersRAMGrant permissions to a RAM user or RAM role
Grant a team member access to pods, Deployments, or ServicesRAM + RBACGrant RBAC permissions to RAM users or RAM roles
Let different pods access different cloud servicesRAM (RRSA)Use RRSA to authorize pods to access cloud services
Set up an O&M engineer with cluster and application accessRAM + RBACScenario 1: Grant O&M engineers the permissions to manage clusters and applications
Set up a developer with namespace-scoped accessRAM + RBACScenario 2: Grant developers the permissions to manage your clusters and applications
Delegate permission management to an administratorRAM + RBACScenario 3: Grant authorization administrators the permissions to manage the permissions of RAM users and RAM roles

How the two layers work together

ACS clusters are a type of Container Service for Kubernetes (ACK) Serverless cluster. All cluster management goes through the ACK API, so both cloud-level and cluster-level permissions must be in place.

LayerScopeControlsGranted through
RAM authorizationCloud resources (control plane)Cluster lifecycle, RBAC management, monitoring, logs, and eventsRAM system policies or custom policies
RBAC authorizationKubernetes resources (data plane)Workloads, networking, storage, namespaces, ConfigMaps, and SecretsPredefined or custom ClusterRoles in the ACS console

Complete RAM authorization before granting RBAC permissions.

ACS authorization system

What RAM authorization covers

RAM authorization grants permissions for cluster O&M operations:

  • Create, view, and delete clusters

  • Manage RBAC authorization

  • Monitor clusters and manage logs and events

What RBAC authorization covers

RBAC authorization grants namespace-level or cluster-wide permissions on Kubernetes resources:

  • Workload resources: Deployment, StatefulSet, Job, CronJob, pod, ReplicaSet, and HorizontalPodAutoscaler (HPA)

  • Network resources: Service, Ingress, and NetworkPolicy

  • Storage resources: persistent volume (PV), persistent volume claim (PVC), and StorageClass

  • Other resources: Namespace, ConfigMap, and Secret

RAM authorization

By default, RAM users and RAM roles cannot call cloud service APIs. Attach RAM policies to grant the required access.

System policies

System policies grant broad, predefined permissions. They are best suited for O&M access across all clusters in an Alibaba Cloud account. For instructions, see Grant permissions to a RAM user or RAM role.

System policyWhat it grantsScope note
AliyunCSFullAccessFull access to all ACK API operationsIncludes all ACK clusters, not just ACS clusters. Does not grant RBAC permissions on Kubernetes resources.
AliyunCSReadOnlyAccessRead-only access to all ACK API operationsIncludes all ACK clusters, not just ACS clusters.
AliyunACCFullAccessFull access to all ACS API operationsACS clusters only.
AliyunACCReadOnlyAccessRead-only access to all ACS API operationsACS clusters only.
AliyunVPCReadOnlyAccessRead-only access to Virtual Private Cloud (VPC)Required to select a VPC when creating an ACS cluster.
AliyunContainerRegistryFullAccessFull access to container images in Container Registry (ACR)Account-wide.
AliyunLogReadOnlyAccessRead-only access to Simple Log Service (SLS)Required to select a log project for audit logs or view configuration inspection results.
AliyunRAMFullAccessFull access to RAMRequired to manage authorization for other RAM users and RAM roles.
AliyunEBSFullAccessFull access to Elastic Block Storage (EBS)Required to use disk storage features.
AliyunARMSReadOnlyAccessRead-only access to Application Real-Time Monitoring Service (ARMS)Required to view Managed Service for Prometheus monitoring data.
AliyunKMSReadOnlyAccessRead-only access to Key Management Service (KMS)Required to select encryption keys when creating an ACS cluster.
Important

AliyunCSFullAccess and AliyunCSReadOnlyAccess cover all ACK clusters, not just ACS clusters. Evaluate whether this scope is appropriate before attaching these policies.

Custom policies

Custom policies provide fine-grained control over specific API operations and resources. Use custom policies when RAM users or RAM roles develop applications with SDKs and need narrowly scoped permissions.

The following example grants read-only access to an Object Storage Service (OSS) bucket named myphotos:

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:ListBuckets",
                "oss:GetBucketStat",
                "oss:GetBucketInfo",
                "oss:GetBucketTagging",
                "oss:GetBucketAcl"
            ],
            "Resource": "acs:oss:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:ListObjects",
                "oss:GetBucketAcl"
            ],
            "Resource": "acs:oss:*:*:myphotos"
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:GetObjectAcl"
            ],
            "Resource": "acs:oss:*:*:myphotos/*"
        }
    ]
}

Pod-level access with RRSA

To grant individual pods access to specific cloud services, use RAM Roles for Service Accounts (RRSA). RRSA associates a RAM role with a Kubernetes ServiceAccount so that pods using that ServiceAccount can call designated cloud service APIs. For details, see Use RRSA to authorize different pods to access different cloud services.

RBAC authorization

After completing RAM authorization, grant RBAC permissions to control what a RAM user or RAM role can do with Kubernetes resources inside a cluster. Assign RBAC permissions from the authorization page in the ACS console.

Predefined roles

ACS provides the following predefined roles, plus a custom option. Each maps to a ClusterRole that defines its permissions. For setup instructions, see Grant RBAC permissions to RAM users or RAM roles.

RoleScopeGrantsDoes not grant
AdministratorAll namespacesRead and write access to all resources--
O&M engineerAll namespacesRead and write access to console-visible resources; read-only access to nodes, PVs, namespaces, and quotasWrite access to nodes, PVs, namespaces, and quotas
DeveloperSpecified or all namespacesRead and write access to console-visible resourcesAccess outside the assigned namespace (when namespace-scoped)
Restricted userSpecified or all namespacesRead-only access to console-visible resourcesWrite access to any resource
Custom roleDefined by ClusterRoleDetermined by the selected ClusterRolePermissions not included in the ClusterRole
Important

Before assigning a custom role, review the ClusterRole permissions to verify that only the required access is granted. For more information, see Customize an RBAC role.

Roles and ClusterRoles

Kubernetes RBAC uses two types of role resources:

  • Role -- a namespaced resource that defines permissions within a single namespace. Specify the target namespace when creating a Role.

  • ClusterRole -- a non-namespaced resource that defines cluster-wide permissions.

A ClusterRole can be used in three ways:

  1. Grant permissions on namespaced resources within individual namespaces.

  2. Grant permissions on namespaced resources across all namespaces.

  3. Grant permissions on cluster-scoped resources.

Use a Role when permissions should be limited to one namespace. Use a ClusterRole when permissions span the entire cluster.

Important

ACK allows only ClusterRoles to grant RBAC permissions. Roles cannot be used for RBAC authorization.

For instructions on creating a custom ClusterRole, see Customize an RBAC role. To attach a ClusterRole to a RAM user or RAM role, see Grant RBAC permissions to RAM users or RAM roles.