All Products
Search
Document Center

Container Service for Kubernetes:RAM authorization

Last Updated:Nov 07, 2024
Resource Access Management (RAM) is a service provided by Alibaba Cloud to manage user identities and resource access permissions. You can use RAM to prevent RAM users from sharing the AccessKey pairs of your Alibaba Cloud account. You can also use RAM to grant minimum permissions to RAM users. RAM uses policies to define permissions.
This topic describes the elements, such as Action, Resource, and Condition, which are defined by ACK. You can use the elements to create policies in RAM. The code (RamCode) in RAM that is used to indicate ACK is cs. You can grant permissions on ACK at the RESOURCE.

General structure of a policy

Policies can be stored as JSON files. The following code provides an example on the general structure of a policy:
{
  "Version": "1",
  "Statement": [
    {
      "Effect": "<Effect>",
      "Action": "<Action>",
      "Resource": "<Resource>",
      "Condition": {
        "<Condition_operator>": {
          "<Condition_key>": [
            "<Condition_value>"
          ]
        }
      }
    }
  ]
}
The following list describes the fields in the policy:
  • Effect: specifies the authorization effect. Valid values: Allow, Deny.
  • Action: specifies one or more API operations that are allowed or denied. For more information, see the Action section of this topic.
  • Resource: specifies one or more resources to which the policy applies. You can use an Alibaba Cloud Resource Name (ARN) to specify a resource. For more information, see the Resource section of this topic.
  • Condition: specifies one or more conditions that are required for the policy to take effect. This is an optional field. For more information, see the Condition section of this topic.
    • Condition_operator: specifies the conditional operators. Different types of conditions support different conditional operators. For more information, see Policy elements.
    • Condition_key: specifies the condition keys.
    • Condition_value: specifies the condition values.

Action

ACK defines the values that you can use in the Action element of a policy statement. The following table describes the values.
  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • API operation: the API operation that you can call to perform the operation.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition key: the condition keys that are defined by the Alibaba Cloud service. The Condition key column does not list the common condition keys that are defined by Alibaba Cloud. For more information about the common condition keys, see Generic Condition Keyword.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
ActionsAPI operationAccess levelResource typeCondition keyAssociated operation
cs:CancelClusterUpgradeCancelClusterUpgradedelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:RunClusterCheckRunClusterChecknone
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterUserKubeconfigDescribeClusterUserKubeconfigget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:KubeConfigDurationMinutes
None
cs:GetUserPermissionsDescribeUserPermissionget
All Resources
*
NoneNone
cs:UpgradeClusterNodepoolUpgradeClusterNodepoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterVulsDescribeClusterVulsget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterNodePoolsDescribeClusterNodePoolsget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterAttachScriptsDescribeClusterAttachScriptsupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:UpgradeK8sComponentsUpgradeClusterAddonsupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ResumeUpgradeClusterResumeUpgradeClusterupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:TagResourcesTagResourcesupdate
All Resources
*
NoneNone
cs:Queryk8sComponentsUpdateVersionDescribeClusterAddonsVersionget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribePoliciesDescribePoliciesget
All Resources
*
NoneNone
cs:DescribeNodePoolVulsDescribeNodePoolVulsget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id}
NoneNone
cs:DescribeClusterEventsDescribeClusterEventsget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:MigrateClusterMigrateClusterupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribePolicyInstancesStatusDescribePolicyInstancesStatusget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterNodePoolDetailDescribeClusterNodePoolDetailget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:PauseTaskPauseTaskupdate
All Resources
*
NoneNone
cs:DeployPolicyInstanceDeployPolicyInstanceget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeTaskInfoDescribeTaskInfoget
All Resources
*
NoneNone
cs:DescribeEventsDescribeEventsget
All Resources
*
NoneNone
cs:DeleteClusterDeleteClusterdelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ScaleClusterNodePoolScaleClusterNodePoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:GrantPermissionGrantPermissionsupdate
All Resources
*
NoneNone
cs:DescribeClusterResourcesDescribeClusterResourcesget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CreateClusterCreateClustercreate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/*
cs:ClusterType
cs:ClusterSpec
cs:ClusterProfile
cs:EnableSecretEncryption
cs:EnableApiServerEip
cs:EnableAddonLogtailDs
cs:EnableCoreControlPlaneComponentsLog
cs:AddonNames
None
cs:DescribeKubernetesVersionMetadataDescribeKubernetesVersionMetadataget
All Resources
*
NoneNone
cs:GetUpgradeStatusGetUpgradeStatusget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ModifyClusterTagsModifyClusterTagsupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CreateTriggerCreateTriggercreate
All Resources
*
NoneNone
cs:DescribeClusterAddonInstanceDescribeClusterAddonInstanceget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:GetClusterCheckGetClusterChecklist
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeTemplatesDescribeTemplatesget
All Resources
*
NoneNone
cs:RemoveNodePoolNodesRemoveNodePoolNodesupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterTasksDescribeClusterTasksget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id}
NoneNone
cs:ListClusterChecksListClusterCheckslist
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CreateTemplateCreateTemplatecreate
All Resources
*
NoneNone
cs:DescribeAddonsDescribeAddonsget
All Resources
*
NoneNone
cs:ModifyClusterAddonModifyClusterAddonupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:AddonName
cs:AddonNames
None
cs:DescribePolicyDetailsDescribePolicyDetailsget
All Resources
*
NoneNone
cs:DescribeUserClusterNamespacesDescribeUserClusterNamespacesget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribePolicyGovernanceInClusterDescribePolicyGovernanceInClusterget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CreateClusterNodePoolCreateClusterNodePoolcreate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ListOperationPlansListOperationPlanslist
All Resources
*
NoneNone
cs:CheckControlPlaneLogEnableCheckControlPlaneLogEnableget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeTriggerDescribeTriggerget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ListAddonsListAddonslist
All Resources
*
NoneNone
cs:DeleteTriggerDeleteTriggerdelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CancelOperationPlanCancelOperationPlandelete
All Resources
*
NoneNone
cs:UpdateTemplateUpdateTemplateupdate
All Resources
*
NoneNone
cs:DescribePolicyInstancesDescribePolicyInstancesget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:PauseClusterUpgradePauseClusterUpgradeupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:FixNodePoolVulsFixNodePoolVulsupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id}
NoneNone
cs:ResumeTaskResumeTaskupdate
All Resources
*
NoneNone
cs:UpgradeClusterUpgradeClusterupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CancelTaskCancelTaskupdate
All Resources
*
NoneNone
cs:OpenAckServiceOpenAckServiceupdate
All Resources
*
NoneNone
cs:DeleteTemplateDeleteTemplatedelete
All Resources
*
NoneNone
cs:SyncClusterNodePoolSyncClusterNodePoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:CreateAutoscalingConfigCreateAutoscalingConfigcreate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterAddonMetadataDescribeClusterAddonMetadataget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ModifyClusterModifyClusterupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:EnableApiServerEip
cs:ApiServerEipId
None
cs:DescribeClusterLogsDescribeClusterLogsget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeClusterNodesDescribeClusterNodesget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:InstallClusterAddonsInstallClusterAddonscreate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:AddonNames
None
cs:DescribeAddonDescribeAddonget
All Resources
*
NoneNone
cs:ListTagResourcesListTagResourcesget
All Resources
*
NoneNone
cs:DeleteClusterNodepoolDeleteClusterNodepooldelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:AttachInstancesToNodePoolAttachInstancesToNodePoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ScanClusterVulsScanClusterVulsupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ModifyClusterNodePoolModifyClusterNodePoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DeletePolicyInstanceDeletePolicyInstancedelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ModifyNodePoolNodeConfigModifyNodePoolNodeConfigupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:UntagResourcesUntagResourcesdelete
All Resources
*
NoneNone
cs:RepairClusterNodePoolRepairClusterNodePoolupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id}
NoneNone
cs:DeleteClusterNodesDeleteClusterNodesdelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ListClusterAddonInstancesListClusterAddonInstanceslist
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:UnInstallClusterAddonsUnInstallClusterAddonsdelete
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:EnableAddonLogtailDs
None
cs:GetClustersDescribeClustersV1get
All Resources
*
NoneNone
cs:UpdateUserPermissionsUpdateUserPermissionsnone
All Resources
*
NoneNone
cs:DescribeClusterAddonsUpgradeStatusDescribeClusterAddonsUpgradeStatusget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:ModifyPolicyInstanceModifyPolicyInstanceupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:GetClusterAddonInstanceGetClusterAddonInstanceget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeTemplateAttributeDescribeTemplateAttributeget
All Resources
*
NoneNone
cs:DescribeClusterDetailDescribeClusterDetailget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:DescribeSubaccountK8sClusterUserConfigDescribeSubaccountK8sClusterUserConfigget
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone
cs:UpdateControlPlaneLogUpdateControlPlaneLogWrite
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
cs:EnableCoreControlPlaneComponentsLog
None
cs:UpdateK8sClusterUserConfigExpireUpdateK8sClusterUserConfigExpireupdate
Cluster
acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
NoneNone

Resource

ACK defines the values that you can use in the Resource. You can attach the policy to a RAM user or a RAM role so that the RAM user or the RAM role can perform a specific operation on a specific resource. The ARN is the unique identifier of the resource on Alibaba Cloud. Take note of the following items:
  • {#}indicates a variable. {#} must be replaced with an actual value. For example, {#ramcode} must be replaced with the actual code of an Alibaba Cloud service in RAM.
  • An asterisk (*) is used as a wildcard. Examples:
    • {#resourceType} is set to *, all resources are specified.
    • {#regionId} is set to *, all regions are specified.
    • {#accountId} is set to *, all Alibaba Cloud accounts are specified.
Resource typeARN
Clusteracs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
Clusteracs:cs::{#accountId}:cluster/{#ClusterId}
Clusteracs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id}
Clusteracs:cs:*:{#accountId}:cluster/*
Unrestrictedacs:cs:{#regionId}:{#accountId}:*
Clusteracs:cs:{#regionId}:{#accountId}:cluster/*
Clusteracs:cs:{#regionId}:{#accountId}:cluster/{#clusterId}
Unrestrictedacs:cs:*:{#accountId}:cluster/*

Condition

ACK defines the values that you can use in the Condition element of a policy statement. The following table describes the values. The following table describes the service-specific condition keys. The common condition keys that are defined by Alibaba Cloud also apply to ACK. For more information about the common condition keys, see Generic Condition Keyword.
The data type determines the conditional operators that you can use to compare the value in a request with the value in a policy statement. You must use conditional operators that are supported by the data type. Otherwise, you cannot compare the value in the request with the value in the policy statement. In this case, the authorization is invalid. For more information about the conditional operators that are supported by each data type, see Policy elements.
Condition keyDescriptionData type
cs:ClusterTypeThe type of the clusterString
cs:ClusterSpecThe specification of ACK managed clusterString
cs:ClusterProfileSubtype identifier of ACK managed clusterString
cs:EnableSecretEncryptionWhether to enable secret encryption in the ACK clusterBoolean
cs:EnableApiServerEipWhether API Server public network access is enabled for the clusterBoolean
cs:ApiServerEipIdThe ID of the EIP that you want to associate with the cluster API server, Example: eip-2zep1n4o1ic48m3m****String
cs:KubeConfigDurationMinutesThe validity period of a temporary kubeconfig file. Unit: minutesNumeric
cs:AddonNameCluster component name, Example: aliyun-acr-credential-helper,metrics-serverString
cs:EnableAddonLogtailDsWhether log component logtail-ds is enabled for the clusterBoolean
cs:EnableCoreControlPlaneComponentsLogWhether the core component log function of the control plane is enabled for the clusterBoolean
cs:AddonNamesCluster component names, Example: [&quot;metrics-server&quot;,&quot;terway-eniip&quot;]String

What to do next

You can create a custom policy and attach the policy to a RAM user, RAM user group, or RAM role. For more information, see the following topics: