Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Guia de usuário/ Permissões/ Permissões de cluster (baseadas no IAM)
Atualizado em 2024-11-28 GMT+08:00

Permissões de cluster (baseadas no IAM)

As permissões no nível do cluster do CCE são atribuídas com base nas políticas do sistema do IAM e nas políticas personalizadas. Você pode usar grupos de usuários para atribuir permissões a usuários do IAM.

  • As permissões de cluster são concedidas aos usuários para operar apenas recursos relacionados a clusters (como clusters e nós). Para operar recursos do Kubernetes, como cargas de trabalho e serviços, você deve receber permissões de namespace ao mesmo tempo.
  • Ao visualizar um cluster no console do CCE, as informações exibidas dependem das permissões de namespace. Se você não tiver permissões de namespace, não poderá exibir os recursos no cluster. Para mais detalhes, consulte Dependência de permissão do console do CCE.

Pré-requisitos

  • Antes de conceder permissões a grupos de usuários, familiarize-se com as políticas do sistema listadas em Permissões. Para as políticas do sistema de outros serviços, consulte Permissões do sistema.
  • Um usuário com a função de Security Administrator (por exemplo, sua conta) tem todas as permissões do IAM, exceto a troca de função. Somente esses usuários podem exibir grupos de usuários e suas permissões na página Permissions no console do CCE.

Configuração

No console do CCE, ao escolher Permissions > Cluster-Level Permissions para criar um grupo de usuários, você será direcionado ao console do IAM para concluir o processo. Depois que o grupo de usuários é criado e suas permissões são configuradas, você pode exibir as informações na página de guia Cluster-Level Permissions. Esta seção descreve as operações no IAM.

Fluxo do processo

Figura 1 Processo de atribuição de permissões do CCE

  1. Crie um grupo de usuários e atribua permissões a ele.

    Crie um grupo de usuários no console do IAM e atribua permissões do CCE, por exemplo, a política CCEReadOnlyAccess ao grupo.

    O CCE é implementado por região. No console do IAM, selecione Region-specific projects ao atribuir permissões do CCE.

  2. Crie um usuário e adicione-o a um grupo de usuários.

    Crie um usuário no console do IAM e adicione o usuário ao grupo criado em 1.

  3. Fazer logon e verificar as permissões.

    Efetue logon no console de gerenciamento como o usuário que você criou e verifique se o usuário tem as permissões atribuídas.

    • Faça logon no console de gerenciamento, alterne para o console do CCE e compre um cluster. Se você não conseguir fazê-lo (supondo que apenas a permissão CCEReadOnlyAccess é atribuída), a política CCEReadOnlyAccess entra em vigor.
    • Alterne para o console de qualquer outro serviço. Se aparecer uma mensagem indicando que você não tem as permissões necessárias para acessar o serviço, a política CCEReadOnlyAccess entrará em vigor.

Funções definidas pelo sistema

As funções são um tipo de mecanismo de autorização grosseiro que define permissões de nível de serviço com base nas responsabilidades do usuário. Apenas um número limitado de funções em nível de serviço está disponível para autorização. As funções não são ideais para autorização refinada e acesso de privilégio mínimo.

A função de sistema predefinida para CCE no IAM é CCEAdministrator. Ao atribuir essa função a um grupo de usuários, você também deve selecionar outras funções e políticas das quais essa função depende, como Tenant Guest, Server Administrator, ELB Administrator, OBS Administrator, SFS Administrator, SWR Admin e APM FullAccess. Para obter mais informações sobre dependências, consulte Permissões do sistema.

Políticas definidas pelo sistema

As políticas de sistema predefinidas para CCE no IAM são CCEFullAccess e CCEReadOnlyAccess.

  • CCE FullAccess: permissões de operação comuns em recursos de cluster do CCE, excluindo as permissões em nível de namespace para os clusters (com RBAC do Kubernetes ativado) e as operações de administrador privilegiado, como configuração de agência e geração de certificados de cluster
  • CCE ReadOnlyAccess: permissões para visualizar recursos de cluster do CCE, excluindo as permissões de nível de namespace dos clusters (com RBAC do Kubernetes ativado)
Tabela 1 Permissões atribuídas por CCEFullAccess

Ação

Ação específica

Descrição

cce:*:*

cce:cluster:create

Criar um cluster.

cce:cluster:delete

Excluir um cluster.

cce:cluster:update

Atualizar um cluster. Por exemplo, atualize os parâmetros de agendamento do nó do cluster e forneça suporte RBAC aos clusters.

cce:cluster:upgrade

Atualizar um cluster.

cce:cluster:start

Despertar um cluster.

cce:cluster:stop

Hibernar um cluster.

cce:cluster:list

Listar todos os clusters.

cce:cluster:get

Consultar detalhes do cluster.

cce:node:create

Adicionar um nó.

cce:node:delete

Excluir um ou mais nós.

cce:node:update

Atualizar um nó. Por exemplo, atualize o nome do nó.

cce:node:get

Consultar detalhes do nó.

cce:node:list

Listar todos os nós.

cce:nodepool:create

Criar um pool de nós.

cce:nodepool:delete

Excluir um pool de nós.

cce:nodepool:update

Atualizar informações sobre um pool de nós.

cce:nodepool:get

Obter informações sobre um pool de nós.

cce:nodepool:list

Listar todos os pools de nós em um cluster.

cce:release:create

Criar um release.

cce:release:delete

Excluir um release.

cce:release:update

Atualizar um release.

cce:job:list

Listar todas as tarefas de cluster.

cce:job:delete

Excluir uma ou mais tarefas de cluster.

cce:job:get

Consultar uma tarefa de cluster especificada.

cce:storage:create

Criar um volume de armazenamento.

cce:storage:delete

Excluir um volume de armazenamento.

cce:storage:list

Listar todos os volumes.

cce:addonInstance:create

Criar uma instância de complemento.

cce:addonInstance:delete

Excluir uma instância de complemento.

cce:addonInstance:update

Atualizar uma instância de complemento.

cce:addonInstance:get

Consultar detalhes da instância do complemento.

cce:addonTemplate:get

Consultar detalhes do modelo de complemento.

cce:addonInstance:list

Listar todas as instâncias do complemento.

cce:addonTemplate:list

Listar todos os modelos de complementos.

cce:chart:list

Listar todos os gráficos.

cce:chart:delete

Eliminar um gráfico.

cce:chart:update

Atualizar um gráfico.

cce:chart:upload

Fazer upload de um gráfico.

cce:chart:get

Obter informações sobre um gráfico.

cce:release:get

Obter informações sobre um release.

cce:release:list

Listar todos os releases.

cce:userAuthorization:get

Obter autorização de usuário do CCE.

cce:userAuthorization:create

Criar autorização de usuário do CCE.

ecs:*:*

Nenhuma

Executar todas as operações em um Elastic Cloud Server (ECS).

evs:*:*

-

Executar todas as operações em Elastic Volume Service (EVS).

Os discos EVS podem ser anexados a servidores em nuvem e dimensionados para uma capacidade maior sempre que necessário.

vpc:*:*

Nenhuma

Executar todas as operações em Virtual Private Cloud (VPC), incluindo ELBs.

Um cluster deve ser executado em uma VPC. Ao criar um namespace, crie ou associe uma VPC para o namespace para que todos os contêineres no namespace sejam executados na VPC.

sfs:*:get*

Nenhuma

Visualizar detalhes do recurso do Scalable File Service (SFS).

sfs:shares:ShareAction

Nenhuma

Compartilhar recursos do SFS para dimensionamento.

aom:*:get

Nenhuma

Exibir detalhes do recurso do Application Operations Management (AOM).

aom:*:list

Nenhuma

Listar recursos do AOM.

aom:autoScalingRule:*

Nenhuma

Executar todas as operações nas regras de escala automática do AOM.

apm:icmgr:*

Nenhuma

Executar operações no ICAgent no Application Performance Management (APM).

lts:*:*

Nenhuma

Executar todas as operações no Log Tank Service (LTS).

Tabela 2 Permissões atribuídas por CCEReadOnlyAccess

Ação

Ação específica

Descrição

cce:*:get

cce:cluster:get

Consultar detalhes do cluster.

cce:node:get

Consultar detalhes do nó.

cce:job:get

Consultar uma tarefa de cluster especificada.

cce:addonInstance:get

Consultar detalhes da instância do complemento.

cce:addonTemplate:get

Consultar detalhes do modelo de complemento.

cce:chart:get

Obter informações sobre um gráfico.

cce:nodepool:get

Obter informações sobre um pool de nós.

cce:release:get

Obter informações sobre um release.

cce:userAuthorization:get

Obter autorização de usuário do CCE.

cce:*:list

cce:cluster:list

Listar todos os clusters.

cce:node:list

Listar todos os nós.

cce:job:list

Listar todas as tarefas de cluster.

cce:addonInstance:list

Listar todas as instâncias do complemento.

cce:addonTemplate:list

Listar todos os modelos de complementos.

cce:chart:list

Listar todos os gráficos.

cce:nodepool:list

Listar todos os pools de nós em um cluster.

cce:release:list

Listar todos os releases.

cce:storage:list

Listar todos os volumes.

cce:kubernetes:*

Nenhuma

Executar operações em todos os recursos do Kubernetes. Para obter detalhes, consulte Permissões de namespace.

ecs:*:get

Nenhuma

Exibir detalhes sobre todos os recursos do ECS.

Um ECS com vários discos EVS é um nó de cluster no CCE.

ecs:*:list

Nenhuma

Listar todos os recursos do ECS.

bms:*:get*

Nenhuma

Exibir detalhes sobre todos os recursos do BMS.

bms:*:list

Nenhuma

Listar todos os recursos do BMS.

evs:*:get

Nenhuma

Exibir detalhes de todos os recursos de disco EVS. Os discos EVS podem ser anexados a servidores em nuvem e dimensionados para uma capacidade maior sempre que necessário.

evs:*:list

Nenhuma

Listar todos os recursos do EVS.

evs:*:count

Nenhuma

Nenhuma

vpc:*:get

Nenhuma

Exibir detalhes de todos os recursos da VPC (incluindo ELBs).

Um cluster deve ser executado em uma VPC. Ao criar um namespace, crie ou associe uma VPC para o namespace para que todos os contêineres no namespace sejam executados na VPC.

vpc:*:list

Nenhuma

Listar todos os recursos da VPC (incluindo ELBs).

sfs:*:get*

Nenhuma

Exibir detalhes do recurso do SFS.

sfs:shares:ShareAction

Nenhuma

Compartilhar recursos do SFS para dimensionamento.

aom:*:get

Nenhuma

Exibir detalhes do recurso do AOM.

aom:*:list

Nenhuma

Listar todos os recursos do AOM.

aom:autoScalingRule:*

Nenhuma

Executar todas as operações nas regras de escala automática do AOM.

lts:*:get

Nenhuma

Exibir detalhes sobre todos os recursos do LTS.

lts:*:list

Nenhuma

Listar todos os recursos do LTS.

Políticas personalizadas

Políticas personalizadas podem ser criadas como um suplemento para as políticas definidas pelo sistema do CCE. Para as ações que podem ser adicionadas a políticas personalizadas, consulte Políticas de permissões e ações suportadas.

Você pode criar políticas personalizadas de uma das seguintes maneiras:

  • Editor visual: selecione serviços em nuvem, ações, recursos e condições de solicitação. Isso não requer conhecimento de sintaxe de política.
  • JSON: edite políticas de JSON do rascunho ou com base em uma política existente.

Para obter detalhes, consulte Criação de uma política personalizada. Esta seção fornece exemplos de políticas do CCE personalizadas comuns.

Exemplos de políticas personalizadas:

  • Exemplo 1: criar um cluster chamado test
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cce:cluster:create"
                ]
            }
        ]
    }
  • Exemplo 2: negar exclusão de nó

    Uma política com apenas permissões "Deny" deve ser usada em conjunto com outras políticas para entrar em vigor. Se as permissões atribuídas a um usuário contiverem "Allow" e "Deny", as permissões "Deny" terão precedência sobre as permissões "Allow".

    O método a seguir pode ser usado se você precisar atribuir permissões da política CCEFullAccess a um usuário, mas quiser impedir que o usuário exclua nós.(cce:node:delete). Crie uma política personalizada para negar a exclusão de nós e anexe ambas as políticas ao grupo ao qual o usuário pertence. Em seguida, o usuário pode executar todas as operações no CCE, exceto a exclusão de nós. O seguinte é um exemplo de uma política de negação:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Deny",
                "Action": [
                    "cce:node:delete"
                ]
            }
        ]
    }
  • Exemplo 3: definir as permissões para vários serviços em uma política

    Uma política personalizada pode conter as ações de vários serviços que são do tipo global ou de nível de projeto. Veja a seguir um exemplo de política que contém ações de vários serviços:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Action": [
                    "ecs:cloudServers:resize",
                    "ecs:cloudServers:delete",
                    "ecs:cloudServers:delete",
                    "ims:images:list",
                    "ims:serverImages:create"
                ],
                "Effect": "Allow"
            }
        ]
    }

Permissões de cluster do CCE e projetos empresariais

O CCE oferece suporte ao gerenciamento de recursos e à alocação de permissões por cluster e projeto empresariais.

Note que:

  • Os projetos do IAM são baseados no isolamento físico de recursos, enquanto os projetos empresariais fornecem grupos lógicos globais de recursos, que atendem melhor aos requisitos reais das empresas. Além disso, as políticas do IAM podem ser gerenciadas com base em projetos empresariais. Portanto, é aconselhável usar projetos empresariais para gerenciamento de permissões. Para obter detalhes, consulte Criação de um projeto empresarial.
  • Quando há projetos do IAM e projetos empresariais, o IAM corresponde preferencialmente às políticas de projeto do IAM.
  • Ao criar um cluster ou nó usando recursos de nuvem comprados, verifique se os usuários do IAM receberam as permissões necessárias no projeto empresarial para usar esses recursos. Caso contrário, o cluster ou nó pode falhar ao ser criado.
  • Se um recurso não suportar projetos empresariais, as permissões concedidas ao recurso não terão efeito.

    Tipo de recurso

    Nome do recurso

    Descrição

    Apoiar projetos empresariais

    cluster

    Cluster

    node

    nodepool

    Pool de nós

    job

    Tarefa

    tag

    Rótulo do cluster

    addonInstance

    Instância de complemento

    release

    Versão de Helm

    storage

    Armazenamento

    Não apoiar projetos empresariais

    quota

    Cota do cluster

    chart

    Gráfico

    addonTemplate

    Modelo de complemento

Permissões do cluster do CCE e RBAC do IAM

O CCE é compatível com as funções do sistema do IAM para gerenciamento de permissões. Recomendamos que você use políticas refinadas fornecidas pelo IAM para simplificar o gerenciamento de permissões.

O CCE suporta as seguintes funções:

  • Funções básicas do IAM:
    • te_admin (Tenant Administrator): os usuários com essa função podem chamar todas as APIs de todos os serviços, exceto o IAM.
    • readonly (Tenant Guest): os usuários com essa função podem chamar APIs com as permissões de somente leitura de todos os serviços, exceto o IAM.
  • Função de administrador do CCE personalizada: CCE Administrator
  • As APIs do CCE são compatíveis com três funções de sistema legadas de ServiceStage (SvcStg Administrator, SvcStg Developer e SvcStg Operator). Atualmente, o CCE e ServiceStage se adaptaram totalmente às políticas refinadas do IAM para gerenciamento de permissões. Portanto, não é aconselhável usar essas funções herdadas para o gerenciamento de permissões. Essas funções ServiceStage são descritas a seguir:
    • SvcStg Administrator: essa função tem as mesmas permissões que a função CCE Administrator, exceto que os usuários com essa função não têm as permissões no nível do namespace por padrão (RBAC do Kubernetes).
    • SvcStg Developer: essa função tem as mesmas permissões que a função CCE Administrator, exceto que o usuário com essa função não tem a permissão de nível de namespace por padrão (RBAC do Kubernetes).
    • SvcStg Operator: essa função tem as permissões somente leitura no CCE, excluindo as permissões no nível do namespace dos clusters por padrão.

    Para obter detalhes, consulte Permissões..

  • Tenant Administrator e Tenant Guest são funções especiais do sistema do IAM. Depois que qualquer sistema ou política personalizada for configurada, Tenant Administrator e Tenant Guest entrarão em vigor como políticas do sistema para obter compatibilidade com cenários RBAC e ABAC do IAM.
  • Se um usuário tiver a função de sistema Tenant Administrator ou CCE Administrator, ele terá as permissões de administrador de cluster no RBAC do Kubernetes e as permissões não poderão ser removidas após a criação do cluster.
    Se o usuário for o criador do cluster, as permissões cluster-admin no RBAC do Kubernetes serão concedidas ao usuário por padrão. As permissões podem ser removidas manualmente após a criação do cluster.
    • Método 1: escolha Permissions Management > Namespace-Level Permissions > Delete na mesma função que cluster-creator no console do CCE.
    • Método 2: exclua ClusterRoleBinding: cluster-creator por meio da API ou kubectl.

Quando as políticas de RBAC e IAM coexistem, a lógica de autenticação de back-end para APIs abertas ou operações de console no CCE é a seguinte:

Certas APIs do CCE envolvem permissões em nível de namespace ou operações de chave e, portanto, exigem permissões especiais:

Usar clusterCert para obter o cluster kubeconfig: cceadm/teadmin