O ACK integra o RAM e o RBAC do Kubernetes para controlar o acesso à infraestrutura de nuvem e aos recursos internos do cluster.
Sistema de autorização
O ACK utiliza o RAM para gerenciar permissões no nível da infraestrutura e o RBAC para controlar o acesso aos recursos dentro do cluster.
-
Autorização via RAM: Concede permissões por meio de políticas do RAM para invocar APIs do ACK e de serviços de nuvem dependentes. Abrange operações como:
Cluster: crie, visualize, atualize e exclua
Pool de nós: crie, modifique e dimensionamento
Gerencie permissões
Monitoramento, logs e eventos do cluster
-
Autorização via RBAC: Baseada no RBAC do Kubernetes, concede permissões no nível dos recursos internos do cluster. Esse mecanismo permite que diferentes usuários operem distintos recursos do Kubernetes, incluindo operações de crie, leitura, atualize e exclua (CRUD) em objetos como:
Cargas de trabalho: Deployment, StatefulSet, DaemonSet, Job, CronJob, Pod, ReplicaSet, entre outros.
Rede: Service, Ingress, NetworkPolicy, entre outros.
Armazenamento: volume persistente (PV), solicitação de volume persistente (PVC), StorageClass, entre outros.
Namespace, ConfigMap, Secret, entre outros.
Tipos de permissão
|
Tipo de permissão |
Autorização necessária? |
Descrição da permissão |
|
Autorização via RAM |
|
|
|
Autorização via RBAC |
|
Usuários e funções do RAM autorizados podem operar recursos do Kubernetes dentro do cluster. |
Autorização via RAM
Por padrão, usuários e funções do RAM não têm permissão para invocar APIs de serviços da Alibaba Cloud. Configure políticas do sistema ou personalizadas conforme necessário. Consulte Usar o RAM para conceder permissões de acesso a clusters e recursos de nuvem.
Outros cenários de autorização via RAM
Categorize clusters com tags e aplique políticas do RAM para um controle de acesso refinado. Consulte Usar tags para implementar gerenciamento de permissões refinado.
Compartilhar uma única função Worker do RAM entre todos os nós do cluster pode resultar em permissões excessivas. Atribua uma função Worker do RAM personalizada por pool de nós para mitigar esse risco. Consulte Usar uma função Worker do RAM personalizada.
Para proteger aplicações no cluster que acessam serviços da Alibaba Cloud, utilize o RRSA para definir permissões do RAM no nível do ServiceAccount e isolar pods. Consulte Usar RRSA para configurar permissões do RAM para um ServiceAccount e isolar permissões de pod.
Para aumentar a segurança dos nós em um cluster gerenciado pelo ACK, ajuste as permissões da função Worker do RAM seguindo o princípio do menor privilégio. Consulte Restringir permissões da função Worker do RAM.
Autorização via RBAC
A autorização via RAM abrange apenas operações no nível do cluster. Para acessar recursos do Kubernetes, como pods e nós, conceda autorização via RBAC na página Permission Management do console do ACK.
O RBAC do Kubernetes suporta os seguintes tipos de funções e vínculos. Ao definir permissões de acesso a recursos usando funções, apenas regras de permissão são suportadas; regras de negação não são aceitas. Para criar ClusterRoles e Roles personalizados, consulte Usar RBAC personalizado para restringir operações em recursos internos do cluster.
Role: Define permissões de acesso a recursos dentro de um único namespace.
RoleBinding: Vincula um usuário a uma Role.
ClusterRole: Define permissões de recursos em todo o cluster.
ClusterRoleBinding: Vincula um usuário a uma ClusterRole.
O gerenciamento de permissões no ACK permite vincular ClusterRoles personalizadas a usuários ou funções do RAM em um cluster. Não há suporte para vincular Roles personalizadas a usuários ou funções do RAM.
Console do Container Service for Kubernetes oferece ClusterRoles predefinidas para simplificar a atribuição de permissões. Consulte Usar RBAC para autorizar operações em recursos internos do cluster.
Tabela 1. Descrição das permissões das funções
|
Função predefinida |
Permissões RBAC internas do cluster |
|
Administrator |
Acesso total de leitura e escrita a todos os recursos do Kubernetes em todos os namespaces, incluindo nós do cluster, PVs, namespaces e cotas de recursos. |
|
Read-only Administrator |
Acesso somente leitura a todos os recursos do Kubernetes em todos os namespaces, incluindo nós do cluster, PVs, namespaces e cotas de recursos. |
|
OM Engineer |
Acesso de leitura e escrita aos recursos expostos no console em todos os namespaces. Inclui acesso de leitura/atualize a nós do cluster, PVs e namespaces, além de acesso somente leitura a todos os demais recursos. |
|
Developer |
Acesso de leitura e escrita aos recursos expostos no console em todos os namespaces ou apenas nos especificados do cluster. |
|
Restricted User |
Acesso somente leitura aos recursos expostos no console em todos os namespaces ou apenas nos especificados do cluster. |
|
Custom |
As permissões dependem da ClusterRole especificada. Para evitar que identidades obtenham acesso não intencional, verifique as permissões da ClusterRole antes de atribuí-la. Consulte Restringir operações de recursos com RBAC personalizado. Importante
Qualquer usuário ou função do RAM com a permissão |
Se um usuário ou função do RAM precisar realizar operações e manutenção (OM) de clusters e aplicações, você deve conceder a autorização via RAM antes da autorização via RBAC. Cenários típicos de autorização:
Para visualizar recursos do cluster, consulte Caso de uso 1: Conceder permissão a administradores somente leitura para visualizar recursos do cluster.
Para gerenciar a infraestrutura do cluster e cargas de trabalho, consulte Caso de uso 2: Conceder permissão a engenheiros de OM para gerenciar clusters e aplicações.
Para compilar e implantar aplicações no cluster, consulte Caso de uso 3: Conceder permissão a desenvolvedores para gerenciar clusters e aplicações.
Para gerenciar permissões do cluster, consulte Caso de uso 4: Conceder acesso a administradores de permissões para gerenciar autorizações de usuários e funções do RAM.
Excluir um usuário ou função do RAM não revoga automaticamente suas permissões RBAC do KubeConfig. Revogue manualmente as permissões do KubeConfig durante o desligamento ou correções de segurança.