General structure of a policy
{
"Version": "1",
"Statement": [
{
"Effect": "<Effect>",
"Action": "<Action>",
"Resource": "<Resource>",
"Condition": {
"<Condition_operator>": {
"<Condition_key>": [
"<Condition_value>"
]
}
}
}
]
}
- 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 theAction
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:
- For mandatory resource types, indicate with a prefix of * .
- 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.
Actions | API operation | Access level | Resource type | Condition key | Associated operation |
---|
Actions | API operation | Access level | Resource type | Condition key | Associated operation |
---|---|---|---|---|---|
cs:AttachInstances | AttachInstances | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:AttachInstancesToNodePool | AttachInstancesToNodePool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CancelClusterUpgrade | CancelClusterUpgrade | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CancelOperationPlan | CancelOperationPlan | delete | *All Resources * | None | None |
cs:CancelTask | CancelTask | update | *All Resources * | None | None |
cs:CheckControlPlaneLogEnable | CheckControlPlaneLogEnable | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CheckServiceRole | CheckServiceRole | none | *All Resources * | None | None |
cs:CleanClusterUserPermissions | CleanClusterUserPermissions | none | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CleanUserPermissions | CleanUserPermissions | none | *All Resources * | None | None |
cs:CreateAutoscalingConfig | CreateAutoscalingConfig | create | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CreateCluster | CreateCluster | create | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/* | cs:ClusterType cs:ClusterSpec cs:ClusterProfile cs:EnableSecretEncryption cs:EnableApiServerEip cs:EnableAddonLogtailDs cs:EnableCoreControlPlaneComponentsLog cs:AddonNames | None |
cs:CreateClusterDiagnosis | CreateClusterDiagnosis | create | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CreateClusterNodePool | CreateClusterNodePool | create | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:CreateTemplate | CreateTemplate | create | *All Resources * | None | None |
cs:CreateTrigger | CreateTrigger | create | *All Resources * | None | None |
cs:DeleteAlertContact | DeleteAlertContact | delete | *All Resources * | None | None |
cs:DeleteAlertContactGroup | DeleteAlertContactGroup | delete | *All Resources * | None | None |
cs:DeleteCluster | DeleteCluster | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DeleteClusterNodepool | DeleteClusterNodepool | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DeleteClusterNodes | DeleteClusterNodes | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DeletePolicyInstance | DeletePolicyInstance | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DeleteTemplate | DeleteTemplate | delete | *All Resources * | None | None |
cs:DeleteTrigger | DeleteTrigger | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DeployPolicyInstance | DeployPolicyInstance | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeAddon | DescribeAddon | get | *All Resources * | None | None |
cs:DescribeAddons | DescribeAddons | get | *All Resources * | None | None |
cs:DescribeClusterAddonInstance | DescribeClusterAddonInstance | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterAddonMetadata | DescribeClusterAddonMetadata | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterAddonsUpgradeStatus | DescribeClusterAddonsUpgradeStatus | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterAttachScripts | DescribeClusterAttachScripts | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterDetail | DescribeClusterDetail | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterEvents | DescribeClusterEvents | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterLogs | DescribeClusterLogs | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterNodePoolDetail | DescribeClusterNodePoolDetail | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterNodePools | DescribeClusterNodePools | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterNodes | DescribeClusterNodes | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterResources | DescribeClusterResources | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClusterTasks | DescribeClusterTasks | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id} | None | None |
cs:DescribeClusterUserKubeconfig | DescribeClusterUserKubeconfig | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:KubeConfigDurationMinutes | None |
cs:DescribeClusterVuls | DescribeClusterVuls | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeClustersForRegion | DescribeClustersForRegion | list | *All Resources * | None | None |
cs:DescribeEvents | DescribeEvents | get | *All Resources * | None | None |
cs:DescribeEventsForRegion | DescribeEventsForRegion | list | *All Resources * | None | None |
cs:DescribeKubernetesVersionMetadata | DescribeKubernetesVersionMetadata | get | *All Resources * | None | None |
cs:DescribeNodePoolVuls | DescribeNodePoolVuls | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id} | None | None |
cs:DescribePolicies | DescribePolicies | get | *All Resources * | None | None |
cs:DescribePolicyDetails | DescribePolicyDetails | get | *All Resources * | None | None |
cs:DescribePolicyGovernanceInCluster | DescribePolicyGovernanceInCluster | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribePolicyInstances | DescribePolicyInstances | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribePolicyInstancesStatus | DescribePolicyInstancesStatus | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeResourcesDeleteProtection | DescribeResourcesDeleteProtection | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeSubaccountK8sClusterUserConfig | DescribeSubaccountK8sClusterUserConfig | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeTaskInfo | DescribeTaskInfo | get | *All Resources * | None | None |
cs:DescribeTemplateAttribute | DescribeTemplateAttribute | get | *All Resources * | None | None |
cs:DescribeTemplates | DescribeTemplates | get | *All Resources * | None | None |
cs:DescribeTrigger | DescribeTrigger | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:DescribeUserClusterNamespaces | DescribeUserClusterNamespaces | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:FixNodePoolVuls | FixNodePoolVuls | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id} | None | None |
cs:GetClusterAddonInstance | GetClusterAddonInstance | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetClusterAuditProject | GetClusterAuditProject | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetClusterCheck | GetClusterCheck | list | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetClusterDiagnosisCheckItems | GetClusterDiagnosisCheckItems | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetClusterDiagnosisResult | GetClusterDiagnosisResult | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetClusters | DescribeClustersV1 | get | *Cluster acs:cs:*:{#accountId}:cluster/* | None | None |
cs:GetUpgradeStatus | GetUpgradeStatus | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:GetUserPermissions | DescribeUserPermission | get | *All Resources * | None | None |
cs:GrantPermission | GrantPermissions | update | *All Resources * | None | None |
cs:InstallClusterAddons | InstallClusterAddons | create | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:AddonNames | None |
cs:ListAddons | ListAddons | list | *All Resources * | None | None |
cs:ListClusterAddonInstances | ListClusterAddonInstances | list | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ListClusterChecks | ListClusterChecks | list | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ListClusterKubeconfigStates | ListClusterKubeconfigStates | none | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ListOperationPlans | ListOperationPlans | list | *All Resources * | None | None |
cs:ListTagResources | ListTagResources | get | *All Resources * | None | None |
cs:ListUserKubeConfigStates | ListUserKubeConfigStates | none | *All Resources * | None | None |
cs:MigrateCluster | MigrateCluster | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ModifyCluster | ModifyCluster | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:EnableApiServerEip cs:ApiServerEipId | None |
cs:ModifyClusterAddon | ModifyClusterAddon | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:AddonName cs:AddonNames | None |
cs:ModifyClusterNodePool | ModifyClusterNodePool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ModifyClusterTags | ModifyClusterTags | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ModifyNodePoolNodeConfig | ModifyNodePoolNodeConfig | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ModifyPolicyInstance | ModifyPolicyInstance | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:OpenAckService | OpenAckService | update | *All Resources * | None | None |
cs:PauseClusterUpgrade | PauseClusterUpgrade | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:PauseTask | PauseTask | update | *All Resources * | None | None |
cs:Queryk8sComponentsUpdateVersion | DescribeClusterAddonsVersion | get | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:RemoveNodePoolNodes | RemoveNodePoolNodes | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:RepairClusterNodePool | RepairClusterNodePool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#cluster_id} | None | None |
cs:ResumeTask | ResumeTask | update | *All Resources * | None | None |
cs:ResumeUpgradeCluster | ResumeUpgradeCluster | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:RevokeK8sClusterKubeConfig | RevokeK8sClusterKubeConfig | none | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:RunClusterCheck | RunClusterCheck | none | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ScaleClusterNodePool | ScaleClusterNodePool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:ScanClusterVuls | ScanClusterVuls | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:StartAlert | StartAlert | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:StopAlert | StopAlert | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:SyncClusterNodePool | SyncClusterNodePool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:TagResources | TagResources | update | *All Resources * | None | None |
cs:UnInstallClusterAddons | UnInstallClusterAddons | delete | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:EnableAddonLogtailDs | None |
cs:UntagResources | UntagResources | delete | *All Resources * | None | None |
cs:UpdateClusterAuditLogConfig | UpdateClusterAuditLogConfig | none | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpdateContactGroupForAlert | UpdateContactGroupForAlert | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpdateControlPlaneLog | UpdateControlPlaneLog | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | cs:EnableCoreControlPlaneComponentsLog | None |
cs:UpdateK8sClusterUserConfigExpire | UpdateK8sClusterUserConfigExpire | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpdateResourcesDeleteProtection | UpdateResourcesDeleteProtection | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpdateTemplate | UpdateTemplate | update | *All Resources * | None | None |
cs:UpdateUserPermissions | UpdateUserPermissions | none | *All Resources * | None | None |
cs:UpgradeCluster | UpgradeCluster | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpgradeClusterNodepool | UpgradeClusterNodepool | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
cs:UpgradeK8sComponents | UpgradeClusterAddons | update | *Cluster acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId} | None | None |
Resource
ACK defines the values that you can use in theResource
. 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 type | ARN |
---|
Resource type | ARN |
---|---|
Cluster |
|
Unrestricted |
|
Condition
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.Condition key | Description | Data type |
---|
Condition key | Description | Data type |
---|---|---|
cs:AddonName | Cluster component name, Example: aliyun-acr-credential-helper,metrics-server | String |
cs:AddonNames | Cluster component names, Example: ["metrics-server","terway-eniip"] | String |
cs:ApiServerEipId | The ID of the EIP that you want to associate with the cluster API server, Example: eip-2zep1n4o1ic48m3m**** | String |
cs:ClusterProfile | Subtype identifier of ACK managed cluster | String |
cs:ClusterSpec | The specification of ACK managed cluster | String |
cs:ClusterType | The type of the cluster | String |
cs:EnableAddonLogtailDs | Whether log component logtail-ds is enabled for the cluster | Boolean |
cs:EnableApiServerEip | Whether API Server public network access is enabled for the cluster | Boolean |
cs:EnableCoreControlPlaneComponentsLog | Whether the core component log function of the control plane is enabled for the cluster | Boolean |
cs:EnableSecretEncryption | Whether to enable secret encryption in the ACK cluster | Boolean |
cs:KubeConfigDurationMinutes | The validity period of a temporary kubeconfig file. Unit: minutes | Numeric |