O Container Compute Service (ACS) utiliza duas camadas de autorização: o Resource Access Management (RAM) para operações com recursos de nuvem e o controle de acesso baseado em função (RBAC) para recursos do Kubernetes nos clusters. Usuários ou funções RAM precisam de permissões em ambas as camadas para gerenciar clusters e cargas de trabalho.
|
Tarefa |
Camada de autorização |
Documentação |
|
Crie, visualize ou exclua clusters |
RAM |
|
|
Conceder acesso a pods, Deployments ou Services a membros da equipe |
RAM + RBAC |
|
|
Permitir que pods distintos acessem serviços de nuvem diferentes |
RAM (RRSA) |
|
|
Configurar engenheiros de O&M com acesso ao cluster e às aplicações |
RAM + RBAC |
Cenário 1: Conceder aos engenheiros de O&M permissões para gerenciar clusters e aplicações |
|
Configurar desenvolvedores com acesso restrito ao namespace |
RAM + RBAC |
Cenário 2: Conceder aos desenvolvedores permissões para gerenciar clusters e aplicações |
|
Delegar o gerenciamento de permissões a administradores |
RAM + RBAC |
Como as duas camadas funcionam juntas
Os clusters ACS são um tipo de cluster Serverless do Container Service for Kubernetes (ACK). Todo o gerenciamento de clusters chama APIs do ACK; portanto, configure tanto as permissões no nível da nuvem (RAM) quanto no nível do cluster (RBAC).
|
Camada |
Escopo |
Controles |
Concessão por meio de |
|
Autorização RAM |
Recursos de nuvem (plano de controle) |
Ciclo de vida do cluster, gerenciamento de RBAC, monitoramento, logs e eventos |
Políticas do sistema RAM ou políticas personalizadas |
|
Autorização RBAC |
Recursos do Kubernetes (plano de dados) |
Cargas de trabalho, rede, armazenamento, namespaces, ConfigMaps e Secrets |
ClusterRoles predefinidos ou personalizados no console ACS |
Conclua a autorização RAM antes de conceder permissões RBAC.
Escopo da autorização RAM
A autorização RAM concede permissões para operações de O&M do cluster:
Crie, visualize e exclua clusters
Gerencie a autorização RBAC
Monitorar clusters e gerenciar logs e eventos
Escopo da autorização RBAC
A autorização RBAC concede permissões no nível do namespace ou em todo o cluster sobre recursos do Kubernetes:
Recursos de carga de trabalho: 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
Autorização RAM
Por padrão, usuários e funções RAM não podem chamar APIs de serviços de nuvem. Anexe políticas RAM para conceder o acesso necessário.
Políticas do sistema
As políticas do sistema concedem permissões amplas e predefinidas, adequadas para acesso de O&M em todos os clusters de uma conta. Conceder permissões a um usuário ou função RAM.
|
Política do sistema |
Permissões concedidas |
Observação sobre escopo |
|
AliyunCSFullAccess |
Acesso total a todas as operações da API do ACK |
Inclui todos os clusters ACK, não apenas clusters ACS. Não concede permissões RBAC em recursos do Kubernetes. |
|
AliyunCSReadOnlyAccess |
Acesso somente leitura a todas as operações da API do ACK |
Inclui todos os clusters ACK, não apenas clusters ACS. |
|
AliyunACCFullAccess |
Acesso total a todas as operações da API do ACS |
Apenas clusters ACS. |
|
AliyunACCReadOnlyAccess |
Acesso somente leitura a todas as operações da API do ACS |
Apenas clusters ACS. |
|
AliyunVPCReadOnlyAccess |
Acesso somente leitura à Virtual Private Cloud (VPC) |
Necessário para selecionar uma VPC ao criar um cluster ACS. |
|
AliyunContainerRegistryFullAccess |
Acesso total a imagens de contêiner no Container Registry (ACR) |
Em toda a conta. |
|
AliyunLogReadOnlyAccess |
Acesso somente leitura ao Simple Log Service (SLS) |
Necessário para selecionar um projeto de log para logs de auditoria ou visualizar resultados de inspeção de configuração. |
|
AliyunRAMFullAccess |
Acesso total ao RAM |
Necessário para gerenciar a autorização de outros usuários e funções RAM. |
|
AliyunEBSFullAccess |
Acesso total ao Elastic Block Storage (EBS) |
Necessário para usar recursos de armazenamento em disco. |
|
AliyunARMSReadOnlyAccess |
Acesso somente leitura ao Application Real-Time Monitoring Service (ARMS) |
Necessário para visualizar dados de monitoramento do Managed Service for Prometheus. |
|
AliyunKMSReadOnlyAccess |
Acesso somente leitura ao Key Management Service (KMS) |
Necessário para selecionar chaves de criptografia ao criar um cluster ACS. |
AliyunCSFullAccess e AliyunCSReadOnlyAccess abrangem todos os clusters ACK, não apenas clusters ACS. Avalie se esse escopo é apropriado antes de anexar essas políticas.
Políticas personalizadas
Políticas personalizadas oferecem controle refinado sobre operações específicas da API e recursos. Utilize-as quando usuários ou funções RAM precisarem de permissões com escopo restrito para desenvolvimento baseado em SDK.
O exemplo a seguir concede acesso somente leitura a um bucket do Object Storage Service (OSS) chamado myphotos:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:ListBuckets",
"oss:GetBucketStat",
"oss:GetBucketInfo",
"oss:GetBucketTagging",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"oss:ListObjects",
"oss:GetBucketAcl"
],
"Resource": "acs:oss:*:*:myphotos"
},
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:GetObjectAcl"
],
"Resource": "acs:oss:*:*:myphotos/*"
}
]
}
Acesso no nível do pod com RRSA
O RAM Roles for Service Accounts (RRSA) associa uma função RAM a um ServiceAccount do Kubernetes. Assim, os pods que utilizam esse ServiceAccount podem chamar APIs designadas de serviços de nuvem. Usar RRSA para autorizar diferentes pods a acessar diferentes serviços de nuvem.
Autorização RBAC
Após configurar a autorização RAM, conceda permissões RBAC para controlar as ações de usuários ou funções RAM sobre os recursos do Kubernetes. Atribua permissões RBAC na página de autorização do console ACS.
Funções predefinidas
O ACS fornece as seguintes funções predefinidas, além de uma opção personalizada. Cada uma corresponde a um ClusterRole. Conceder permissões RBAC a usuários ou funções RAM.
|
Função |
Escopo |
Concede |
Não concede |
|
Administrator |
Todos os namespaces |
Acesso de leitura e gravação a todos os recursos |
-- |
|
Engenheiro de O&M |
Todos os namespaces |
Acesso de leitura e gravação a recursos visíveis no console; acesso somente leitura a nós, PVs, namespaces e cotas |
Acesso de gravação a nós, PVs, namespaces e cotas |
|
Desenvolvedor |
Namespaces especificados ou todos |
Acesso de leitura e gravação a recursos visíveis no console |
Acesso fora do namespace atribuído (quando restrito ao namespace) |
|
Usuário restrito |
Namespaces especificados ou todos |
Acesso somente leitura a recursos visíveis no console |
Acesso de gravação a qualquer recurso |
|
Função personalizada |
Definido pelo ClusterRole |
Determinado pelo ClusterRole selecionado |
Permissões não incluídas no ClusterRole |
Antes de atribuir uma função personalizada, revise as permissões do ClusterRole para verificar se apenas o acesso necessário foi concedido. Personalizar uma função RBAC.
Roles e ClusterRoles
O RBAC do Kubernetes utiliza dois tipos de recursos de função:
Role: recurso com escopo de namespace que define permissões dentro de um único namespace. Especifique o namespace de destino ao criar uma Role.
ClusterRole: recurso sem escopo de namespace que define permissões em todo o cluster.
Um ClusterRole pode ser usado de três maneiras:
Conceder permissões em recursos com escopo de namespace dentro de namespaces individuais.
Conceder permissões em recursos com escopo de namespace em todos os namespaces.
Conceder permissões em recursos com escopo de cluster.
Use uma Role para limitar as permissões a um único namespace. Use um ClusterRole quando as permissões abrangerem todo o cluster.
O ACK permite apenas que ClusterRoles concedam permissões RBAC. Roles não podem ser usadas para autorização RBAC.
Para criar um ClusterRole personalizado, consulte Personalizar uma função RBAC. Para anexar um ClusterRole a um usuário ou função RAM, consulte Conceder permissões RBAC a usuários ou funções RAM.