Todos os produtos
Search
Central de documentação

Container Compute Service:Melhores práticas de autorização

Última atualização: Sep 20, 2026

O sistema de autorização do Container Compute Service (ACS) inclui a autorização RAM para os recursos de computação subjacentes e a autorização Role-Based Access Control (RBAC) para clusters Container Service for Kubernetes (ACK) do tipo ACS. Cada função de usuário requer permissões diferentes em ambas as camadas. Este tópico descreve as melhores práticas de autorização para gerentes de recursos corporativos, administradores de clusters Kubernetes, engenheiros de O&M de clusters e aplicações, desenvolvedores de aplicações e administradores de permissões.

Sistema de autorização do ACS

Como as duas camadas funcionam em conjunto

Os clusters ACS são um tipo de cluster Serverless do Container Service for Kubernetes (ACK). Todo gerenciamento de cluster utiliza as APIs do ACK; portanto, as permissões no nível cloud (RAM) e no nível de cluster (RBAC) devem estar configuradas.

Camada

Escopo

Controla

Concedida por meio de

Autorização RAM

Recursos cloud (plano de controle)

Ciclo de vida do cluster, gerenciamento de RBAC, monitoramento, logs e eventos

Políticas de sistema RAM ou políticas personalizadas

Autorização RBAC

Recursos Kubernetes (plano de dados)

Workloads, redes, armazenamento, namespaces, ConfigMaps e Secrets

ClusterRoles predefinidos ou personalizados no console do ACS

Conclua a autorização RAM antes de conceder permissões RBAC.

ACS authorization system

O que a autorização RAM abrange

A autorização RAM concede permissões para operações de O&M de clusters:

  • Crie, visualize e exclua clusters

  • Gerencie a autorização RBAC

  • Monitore clusters e gerencie logs e eventos

O que a autorização RBAC abrange

A autorização RBAC concede permissões no nível de namespace ou em todo o cluster para recursos Kubernetes:

  • Recursos de workload: Deployment, StatefulSet, Job, CronJob, pod, ReplicaSet e HorizontalPodAutoscaler (HPA)

  • Recursos de rede: Service, Ingress e NetworkPolicy

  • Recursos de armazenamento: persistent volume (PV), persistent volume claim (PVC) e StorageClass

  • Outros recursos: Namespace, ConfigMap e Secret

Políticas de sistema padrão

O ACS oferece as seguintes políticas de sistema padrão. Anexe essas políticas a usuários RAM ou funções RAM para conceder permissões rapidamente.

Importante

As políticas de sistema padrão concedem permissões amplas, que podem incluir acesso de leitura ou gravação a todas as operações OpenAPI do ACK e do ACS. Conceda essas políticas com cautela.

Política de sistema padrão

Descrição

AliyunAccFullAccess

Permissões para gerenciar o ACS.

AliyunAccReadOnlyAccess

Permissões de somente leitura no ACS.

AliyunCSFullAccess

Permissões para gerenciar o ACK.

Importante

Concede permissões de leitura e gravação em todos os clusters ACK, incluindo clusters do tipo ACS. Conceda essas permissões com cautela.

AliyunCSReadOnlyAccess

Permissões de somente leitura no ACK.

Importante

Concede permissões de leitura em todos os clusters ACK, incluindo clusters do tipo ACS. Conceda essas permissões com cautela.

Política AliyunAccFullAccess

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "acc:*",
            "Resource": "*"
        }
    ],
    "Version": "1"
}

Política AliyunAccReadOnlyAccess

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "acc:Describe*",
                "acc:CheckServiceRole"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Política AliyunCSFullAccess

{
    "Version": "1",
    "Statement": [
        {
            "Action": "cs:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:PassRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "acs:Service": "cs.aliyuncs.com"
                }
            }
        }
    ]
}

Política AliyunCSReadOnlyAccess

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "cs:CheckServiceRole",
                "cs:Get*",
                "cs:List*",
                "cs:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Melhores práticas de autorização

Quando um usuário RAM ou uma função RAM requer permissões para O&M de clusters e aplicações, é necessário conceder permissões RAM e RBAC. Conceda primeiro as permissões RAM e, em seguida, as permissões RBAC. As seções a seguir descrevem os procedimentos de autorização para três cenários comuns:

Cenário 1: Engenheiro de O&M de clusters e aplicações

Este cenário destina-se a usuários que gerenciam e mantêm clusters ACS e as aplicações neles hospedadas. O processo de autorização envolve a concessão de permissões RAM e RBAC.

  1. Autorização RAM

    O ACK oferece duas políticas de sistema para RAM: AliyunCSFullAccess e AliyunCSReadOnlyAccess.

    • AliyunCSFullAccess concede permissões de leitura e gravação para todas as operações OpenAPI do ACK.

    • AliyunCSReadOnlyAccess concede permissões de somente leitura para todas as operações OpenAPI do ACK.

      Importante

      Essas duas políticas de sistema concedem permissões em todos os clusters ACK, incluindo clusters do tipo ACS. Conceda essas permissões com cautela.

    Acesse o console do RAM e anexe uma das políticas de sistema conforme necessário. Para mais informações, consulte Manage permissions for a RAM user e Manage permissions for a RAM role.

    Para um controle de acesso mais granular, crie uma política personalizada. Para mais informações, consulte Grant RAM permissions to a RAM user or RAM role.

    O código a seguir é um exemplo de política de autorização RAM para este cenário.

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "acc:DescribeCommodityStatus",
                    "acc:CheckServiceRole",
                    "acc:DescribeCloudProducts",
                    "acc:DescribeRegions",
                    "acc:DescribeZones",
                    "acc:GetInstancePrice",
                    "acc:RecommendZones",
                    "acc:DescribeGpuModelSeries"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": [
                    "bssapi:GetPayAsYouGoPrice",
                    "bssapi:QueryAccountBalance"
                ],
                "Resource": "*"
            },
            {
                "Action": [
                    "ecs:DescribePrice",
                    "ecs:DescribeAccountAttributes"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": [
                    "ram:GetRole",
                    "ram:CreateRole"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": [
                    "cs:CreateCluster",
                    "cs:DescribeAddons",
                    "cs:DescribeUserQuota",
                    "cs:DescribeTasks",
                    "cs:ListClusterAddonInstances"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": [
                    "cs:GetClusters",
                    "cs:DescribeClustersV1",
                    "cs:DescribeClusterUserKubeconfig",
                    "cs:DescribeClusterResources",
                    "cs:DescribeUserQuota",
                    "cs:DescribeClusterLogs",
                    "cs:ModifyCluster",
                    "cs:UpgradeCluster",
                    "cs:GetUpgradeStatus",
                    "cs:ResumeUpgradeCluster",
                    "cs:PauseClusterUpgrade",
                    "cs:CancelClusterUpgrade",
                    "cs:InstallClusterAddons",
                    "cs:UpgradeClusterAddons",
                    "cs:DescribeClusterAddonsUpgradeStatus",
                    "cs:UnInstallClusterAddons",
                    "cs:DeleteCluster",
                    "cs:DescribeClusterDetail",
                    "cs:GetClusterAuditProject",
                    "cs:DescribeClusterAddonsVersion",
                    "cs:DescribeClusterTasks",
                    "cs:DescribeClusterEvents",
                    "cs:DescribeEvents",
                    "cs:ListClusterReportSummary",
                    "cs:GetClusterBasicInfo",
                    "cs:ListReportTaskRule",
                    "cs:CreateReportTaskRule",
                    "cs:CheckControlPlaneLogEnable",
                    "cs:CreateClusterCheck"
                ],
                "Effect": "Allow",
                "Resource": "acs:cs:*:*:cluster/<yourclusterID>"
            },
            {
                "Action": [
                    "cs:CheckServiceRole",
                    "cs:DescribeKubernetesVersionMetadata"
                ],
                "Effect": "Allow",
                "Resource": "acs:cs:*:*:cluster/*"
            },
            {
                "Action": [
                    "log:ListProject",
                    "log:DescribeService",
                    "log:GetSlsService"
                ],
                "Effect": "Allow",
                "Resource": "*"
            },
            {
                "Action": [
                    "vpc:ListEnhanhcedNatGatewayAvailableZones",
                    "vpc:DescribeEipAddresses",
                    "vpc:DescribeVSwitches",
                    "vpc:DescribeVpcs"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

    No exemplo acima, substitua <yourclusterID> pelo ID real do cluster ACS.

  2. Para mais informações sobre a OpenAPI do ACK, consulte [[Product Change] Notice on ACK OpenAPI Authentication Optimization](t2103012.dita#task_2103012) e API overview.

  3. Autorização RBAC

    Após conceder as permissões RAM, conceda também ao usuário RAM ou à função RAM as permissões RBAC para o cluster. O ACK oferece quatro funções predefinidas no nível do cluster.

    Função

    Permissões RBAC no cluster

    Administrator

    Permissões de leitura e gravação em todos os recursos de todos os namespaces.

    O&M Engineer

    Permissões de leitura e gravação nos recursos Kubernetes visíveis no console em todos os namespaces, e permissões de somente leitura em nós do cluster, persistent volumes (PVs), namespaces e cotas.

    Developer

    Permissões de leitura e gravação nos recursos Kubernetes visíveis no console em todos os namespaces ou em namespaces selecionados.

    Restricted User

    Permissões de somente leitura nos recursos Kubernetes visíveis no console em todos os namespaces ou em namespaces selecionados.

    1. No console do Container Compute Service, clique em Authorizations no painel de navegação à esquerda. Na aba sub account ou RAM Roles, localize a identidade desejada e clique em Modify Permissions.

    2. Na caixa de diálogo exibida, clique em +Add Permissions. Defina a permissão para o cluster de destino e seus namespaces como O&M Engineer e clique em Submit.

    Após atribuir a função predefinida, o ACS cria automaticamente uma instância de ClusterRoleBinding no cluster correspondente à identidade do usuário ou da função autorizada. O código a seguir apresenta as permissões RBAC da função predefinida O&M Engineer.

    Exemplo de permissões RBAC para a função predefinida O&M Engineer

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: cs:ops
    rules:
    - apiGroups: [""]
      resources:  ["pods", "pods/attach", "pods/exec", "pods/portforward", "pods/proxy"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: [""]
      resources:  ["configmaps", "endpoints", "persistentvolumeclaims", "replicationcontrollers", "replicationcontrollers/scale", "secrets", "serviceaccounts", "services", "services/proxy"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: [""]
      resources:  ["bindings", "events", "limitranges", "namespaces/status", "replicationcontrollers/status", "pods/log", "pods/status", "resourcequotas", "resourcequotas/status", "componentstatuses"]
      verbs: ["get", "list", "watch"]
    - apiGroups: [""]
      resources:  ["namespaces", "nodes", "persistentvolumes"]
      verbs: ["get", "list", "watch", "patch"]
    - apiGroups: ["coordination.k8s.io"]
      resources:  ["leases"]
      verbs: ["get"]
    - apiGroups: ["apps"]
      resources:  ["daemonsets", "deployments", "deployments/rollback", "deployments/scale", "replicasets", "replicasets/scale", "statefulsets"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["autoscaling"]
      resources:  ["horizontalpodautoscalers"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["batch"]
      resources:  ["cronjobs", "jobs"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["extensions"]
      resources:  ["daemonsets", "deployments", "deployments/rollback", "deployments/scale","ingresses","replicasets", "replicasets/scale", "replicationcontrollers/scale"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["networking.k8s.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["servicecatalog.k8s.io"]
      resources:  ["clusterserviceclasses", "clusterserviceplans", "clusterservicebrokers", "serviceinstances", "servicebindings"]
      verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["servicecatalog.k8s.io"]
      resources:  ["clusterservicebrokers/status", "clusterserviceclasses/status", "clusterserviceplans/status", "serviceinstances/status", "serviceinstances/reference", "servicebindings/status",]
      verbs: ["update"]
    - apiGroups: ["storage.k8s.io"]
      resources:  ["storageclasses"]
      verbs: ["get", "list", "watch"]
    - apiGroups: ["alicloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["policy"]
      resources:  ["poddisruptionbudgets"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["metrics.k8s.io"]
      resources: ["pods"]
      verbs: ["get", "watch", "list"]
    - apiGroups: ["networking.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["config.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["rbac.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["istio.alibabacloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["authentication.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["log.alibabacloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["monitoring.kiali.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["kiali.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["apiextensions.k8s.io"]
      resources: ["customresourcedefinitions"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["serving.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["eventing.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["messaging.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["sources.eventing.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["tekton.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["alert.alibabacloud.com"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]

    Para um controle mais granular das permissões RBAC, crie uma instância de ClusterRole personalizada consultando a documentação oficial do Kubernetes sobre RBAC. Em seguida, na página Authorizations do console do Container Compute Service, selecione Custom e escolha o nome do ClusterRole personalizado na lista suspensa. Para mais informações, consulte Create a custom RBAC authorization policy.

Cenário 2: Desenvolvedor de aplicações no cluster

Este cenário aplica-se a usuários que gerenciam apenas recursos Kubernetes dentro de um cluster ACS (usando autorização RBAC) e não precisam acessar outros recursos cloud.

Importante

Antes de conceder permissões RBAC, o usuário ou a função deve ter, no mínimo, permissões RAM de somente leitura para o cluster de destino. Definir Resource como * concede as permissões de Action especificadas em todos os clusters ACK. Não utilize curinga (*) para o recurso, a menos que você compreenda totalmente o escopo e o impacto dessa configuração.

  1. Autorização RAM

    Crie uma política personalizada no console do RAM e anexe-a ao usuário RAM ou à função RAM de destino. Para mais informações, consulte Grant RAM permissions to a RAM user or RAM role. A política personalizada é a seguinte:

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "acc:DescribeCommodityStatus",
                    "acc:CheckServiceRole",
                    "acc:DescribeCloudProducts",
                    "acc:DescribeRegions",
                    "acc:DescribeZones",
                    "acc:GetInstancePrice",
                    "acc:RecommendZones"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "bssapi:GetPayAsYouGoPrice",
                "Resource": "*"
            },
            {
                "Action": [
                    "cs:Get*",
                    "cs:List*",
                    "cs:Check*",
                    "cs:Describe*"
                ],
                "Effect": "Allow",
                "Resource": [
                    "acs:cs:*:*:cluster/<yourclusterID>"
                ]
            },
            {
                "Action": [
                    "vpc:ListEnhanhcedNatGatewayAvailableZones",
                    "vpc:DescribeEipAddresses"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

    No exemplo acima, substitua <yourclusterID> pelo ID real do seu cluster ACS.

    Nota

    Para conceder a um usuário apenas permissões de somente leitura em um cluster ACS específico, utilize esta política de exemplo e especifique o ARN do cluster. Não atribua a política de sistema AliyunCSReadOnlyAccess. Essa política concede permissões de somente leitura em todos os clusters ACK e é excessivamente permissiva para este caso de uso.

  2. Autorização RBAC

    1. No console do Container Compute Service, clique em Authorizations no painel de navegação à esquerda. Na aba sub account ou RAM Roles, localize a identidade desejada e clique em Modify Permissions.

    2. Na caixa de diálogo exibida, clique em +Add Permissions. Defina a permissão para o cluster de destino e seus namespaces como Developer e clique em Submit.

    Após atribuir a função predefinida, o ACS cria automaticamente uma instância de ClusterRoleBinding no cluster correspondente à identidade do usuário ou da função autorizada. O código de exemplo a seguir apresenta as permissões RBAC da função predefinida Developer.

    Exemplo de permissões RBAC para a função predefinida Developer

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: cs:ns:dev
    rules:
    - apiGroups: [""]
      resources:  ["pods", "pods/attach", "pods/exec", "pods/portforward", "pods/proxy"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: [""]
      resources:  ["configmaps", "endpoints", "persistentvolumeclaims", "replicationcontrollers", "replicationcontrollers/scale", "secrets", "serviceaccounts", "services", "services/proxy"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: [""]
      resources:  ["events", "replicationcontrollers/status", "pods/log", "pods/status"]
      verbs: ["get", "list", "watch"]
    - apiGroups: ["apps"]
      resources:  ["daemonsets", "deployments", "deployments/rollback", "deployments/scale", "replicasets", "replicasets/scale", "statefulsets"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["autoscaling"]
      resources:  ["horizontalpodautoscalers"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["batch"]
      resources:  ["cronjobs", "jobs"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["extensions"]
      resources:  ["daemonsets", "deployments", "deployments/rollback", "deployments/scale","ingresses","replicasets", "replicasets/scale", "replicationcontrollers/scale"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["networking.k8s.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["servicecatalog.k8s.io"]
      resources:  ["clusterserviceclasses", "clusterserviceplans", "clusterservicebrokers", "serviceinstances", "servicebindings"]
      verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["servicecatalog.k8s.io"]
      resources:  ["clusterservicebrokers/status", "clusterserviceclasses/status", "clusterserviceplans/status", "serviceinstances/status", "serviceinstances/reference", "servicebindings/status",]
      verbs: ["update"]
    - apiGroups: ["alicloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["policy"]
      resources:  ["poddisruptionbudgets"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["networking.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["config.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["rbac.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["istio.alibabacloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["authentication.istio.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["log.alibabacloud.com"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["monitoring.kiali.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["kiali.io"]
      resources:  ["*"]
      verbs: ["create", "delete", "deletecollection", "get", "list", "patch", "update", "watch"]
    - apiGroups: ["apiextensions.k8s.io"]
      resources: ["customresourcedefinitions"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["serving.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["eventing.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["messaging.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["sources.eventing.knative.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["tekton.dev"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]
    - apiGroups: ["alert.alibabacloud.com"]
      resources: ["*"]
      verbs: ["get", "list", "create", "watch", "patch", "update", "delete", "deletecollection"]

Cenário 3: Administrador de permissões de aplicações no cluster

Neste cenário, o usuário ou a função autorizante precisa gerenciar as permissões RBAC de outros usuários RAM ou funções RAM. Por padrão, um usuário RAM ou uma função RAM não tem permissão para conceder permissões RBAC a outros usuários RAM ou funções RAM. Ao acessar a página de gerenciamento de autorização no console do Container Service, se a interface exibir a mensagem The current RAM user does not have authorization management permissions. Please contact the Alibaba Cloud account or a permission administrator for authorization., isso indica que o usuário ou a função autorizante não possui a autorização RAM necessária ou a autorização de administrador RBAC para o cluster.

  1. Autorização RAM

    Verifique se o usuário ou a função possui as permissões RAM necessárias. A política deve incluir permissões para:

    • Listar outros usuários RAM ou funções RAM.

    • Conceder políticas RAM a usuários RAM ou funções RAM específicos.

    • Visualizar as configurações de permissão RBAC do Kubernetes de usuários RAM ou funções RAM específicos.

    • Executar a autorização RBAC do Kubernetes.

    No console do RAM, conceda as permissões RAM correspondentes ao usuário RAM ou à função RAM especificada. Para mais informações, consulte Grant RAM permissions to a RAM user or RAM role. O código de exemplo a seguir apresenta uma política RAM personalizada.

    {
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "acc:DescribeCommodityStatus",
                    "acc:CheckServiceRole",
                    "acc:DescribeCloudProducts",
                    "acc:DescribeRegions",
                    "acc:DescribeZones",
                    "acc:GetInstancePrice",
                    "acc:RecommendZones"
                ],
                "Resource": "*"
            },
            {
                "Effect": "Allow",
                "Action": "bssapi:GetPayAsYouGoPrice",
                "Resource": "*"
            },
            {
                "Action": [
                    "ram:Get*",
                    "ram:List*",
                    "cs:GetUserPermissions",
                    "cs:GetSubUsers",
                    "cs:GrantPermission",
                    "cs:CheckServiceRole"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ram:AttachPolicyToUser",
                    "ram:AttachPolicyToRole"
                ],
                "Effect": "Allow",
                "Resource": [
                    "acs:ram:*:*:policy/xxxx",
                    "acs:*:*:*:user/*"
                ]
            },
            {
                "Action": [
                    "vpc:ListEnhanhcedNatGatewayAvailableZones",
                    "vpc:DescribeEipAddresses"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ],
        "Version": "1"
    }
  2. Autorização RBAC

    1. No console do Container Compute Service, clique em Authorizations no painel de navegação à esquerda. Na aba sub account ou RAM Roles, localize a identidade desejada e clique em Modify Permissions.

    2. Na caixa de diálogo exibida, clique em +Add Permissions. Defina a permissão para o cluster de destino e seus namespaces como Administrator ou a função personalizada cluster-admin e clique em Submit.

      Nota

      Uma conta Alibaba Cloud e o criador do cluster são vinculados à função cluster-admin por padrão e têm acesso a todos os objetos de recursos Kubernetes no cluster.

Após concluir a autorização RAM e RBAC para um destinatário, ele poderá gerenciar a autorização RBAC de outros usuários RAM ou funções RAM dentro de um escopo de permissões definido. Para mais informações, consulte Grant RAM permissions to a RAM user or RAM role.

Ações de autorização

Nome da permissão (Action)

Descrição

acc:CheckServiceRole

Verifica se a conta autorizou o product a assumir uma ServiceRole para acessar os recursos de outros produtos cloud.

acc:DescribeCommodityStatus

Verifica se o ACS está ativado para a conta.

Nome da permissão (Action)

Descrição

bssapi:GetPayAsYouGoPrice

Consulta o service de precificação para produtos com pagamento conforme o uso.

ram:ListUserBasicInfos

Consulta as informações básicas de todos os usuários RAM.

ram:ListRoles

Consulta as informações básicas de todas as funções RAM.

Nota
  1. Para uma descrição das Actions de autorização do ACK, consulte Authorization information.

  2. Antes de criar regras de autorização, familiarize-se com as Actions de autorização do ACK e aplique o princípio do menor privilégio. Para mais informações, consulte Authorization information.

  3. Se você não especificar um ID de cluster de destino e definir o escopo do recurso como curinga (*), as permissões serão concedidas a todos os clusters ACK, o que pode ser mais amplo do que o pretendido. Conceda essas permissões com cautela.