Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Dependendo de sua função como um operador de cluster ou desenvolvedor, você pode fornecer um ambiente (Project) na área de trabalho do AKS para os desenvolvedores implantarem, migrarem ou gerenciarem aplicativos ou permitirem que eles autoatendissem a implantação e o gerenciamento de aplicativos em um cluster dedicado do AKS. Como alternativa, talvez você queira conceder a mais desenvolvedores acesso para gerenciar, observar e solucionar problemas de aplicativos.
Por padrão, ao criar um Projeto na área de trabalho do AKS, você pode compartilhá-lo com outras pessoas em sua organização e ele define as permissões para você. No entanto, talvez seja necessário manter permissões ao longo do tempo ou automatizá-las ou definir um modelo operacional definindo as permissões apropriadas.
Este artigo descreve como gerenciar permissões RBAC para permitir que os membros da equipe trabalhem com a área de trabalho do AKS.
Observação
Atualmente, a área de trabalho do AKS não fornece uma opção de interface do usuário para modificar as permissões do Project após a criação. Para atualizar permissões ou conceder acesso a usuários adicionais após a criação de um Projeto, use o portal do Azure ou a CLI do Azure, conforme descrito neste artigo.
Observação
Quando você cria projetos na área de trabalho do AKS, os namespaces gerenciados do AKS são criados no mesmo grupo de recursos que o cluster.
Pré-requisitos
- Uma assinatura do Azure. Se você não tiver uma assinatura do Azure, poderá criar uma conta gratuita do Azure.
- CLI do Azure versão 2.64.0 ou posterior instalada e configurada. Verifique a versão usando o comando
az --version. Para instalar ou atualizar, confira Instalar a CLI do Azure. - A extensão da CLI do
aks-previewAzure. Instale-o usando oaz extension add --name aks-previewcomando. - Uma compreensão básica do RBAC (controle de acesso baseado em função) do Azure, veja o que é o RBAC do Azure? e as funções internas do Azure.
- Um grupo de recursos do Azure que contém o cluster do AKS e quaisquer projetos gerenciados pelo AKS criados por meio da área de trabalho do AKS.
- Um cluster do AKS Standard que atende aos requisitos de área de trabalho do AKS ou a um cluster automático do AKS, que é o cluster do Kubernetes em que os aplicativos são executados.
- Um ACR (Registro de Contêiner do Azure) para armazenar suas imagens de contêiner para implantação.
Responsabilidades do operador de cluster
Como operador de cluster, você é responsável por provisionar e configurar a infraestrutura fundamental que permite que as equipes de desenvolvimento criem e implantem aplicativos. Suas responsabilidades incluem:
- Criando a infraestrutura necessária do Azure (grupo de recursos, cluster do AKS, ACR).
- Configurando a integração do ACR com o cluster do AKS.
- Atribuindo permissões para os usuários criarem Projetos.
- Opcionalmente, delegar o gerenciamento de permissões aos criadores do Project.
Criar recursos de infraestrutura
Para criar os recursos de infraestrutura, você precisa de permissões para criar recursos no Azure. Se você não receber a função RBAC de Proprietário, precisará da função Colaborador para criar recursos e a função Administrador de Acesso de Usuário para atribuir permissões a outros usuários. Atribua permissões aos usuários para que eles possam criar recursos no grupo de recursos usando as seguintes etapas:
Defina variáveis de ambiente para o grupo de recursos e o nome do cluster. Certifique-se de substituir os marcadores de posição pelos nomes reais do seu grupo de recursos e cluster.
export RESOURCE_GROUP=<infra-resource-group> export CLUSTER_NAME=<cluster-name> export SUBSCRIPTION_ID=$(az account show --query id --output tsv) export ACR_NAME=<acr-name>Atribua a função necessária para criar recursos no grupo de recursos usando o
az role assignment createcomando. Certifique-se de substituir<user-id>pela ID apropriada do usuário ou da entidade de serviço.az role assignment create --role "Contributor" \ --assignee <user-id> \ --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Integrar o ACR ao cluster do AKS
Anexe o registro de contêiner do Azure ao cluster do AKS usando o az aks update comando.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--attach-acr $ACR_NAME
Selecionar um modelo de criação de projeto
Como um operador de cluster, você tem duas opções de como os desenvolvedores trabalham com projetos na área de trabalho do AKS:
- Modelo de autoatendimento: os desenvolvedores criam e gerenciam seus próprios Projetos. Essa abordagem oferece aos desenvolvedores total autonomia, mas requer a concessão da função de Colaborador do Namespace do Serviço de Kubernetes do Azure . Quando os desenvolvedores criam seus próprios Projetos, eles recebem automaticamente a função Proprietário no namespace gerenciado e podem iniciar imediatamente a implantação de aplicativos.
- Modelo gerenciado: crie projetos para desenvolvedores e conceda-lhes acesso. Atualmente, você pode configurar isso durante a criação do Project. Essa abordagem fornece mais controle sobre a criação do Project, mas se você precisar atribuir mais membros da equipe à pós-criação do Project, será necessário atribuir a eles as permissões necessárias usando o portal do Azure ou a CLI do Azure, conforme descrito nas próximas seções.
Modelo de autoatendimento: permitir que os desenvolvedores criem seus próprios projetos
Para permitir que os desenvolvedores criem seus próprios Projetos, atribua-lhes a função de Colaborador de Namespace do Serviço de Kubernetes do Azure no cluster do AKS. Projetos da área de trabalho do AKS criam namespaces gerenciados do AKS nos bastidores e essa função concede as permissões necessárias.
Atribua aos desenvolvedores a função de Colaborador do Namespace do Serviço de Kubernetes do Azure usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
az role assignment create \
--role "Azure Kubernetes Service Namespace Contributor" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Modelo gerenciado: criar projetos para desenvolvedores e atribuir acesso
Se você preferir criar projetos em nome de desenvolvedores, deverá atribuir três funções essenciais para permitir que eles acessem o cluster e trabalhem no namespace atribuído:
-
Função de Usuário do Cluster do Serviço de Kubernetes do Azure: permite que os desenvolvedores baixem as credenciais do cluster usando o
az aks get-credentialscomando. - Usuário do Namespace do Serviço de Kubernetes do Azure: concede acesso ao namespace gerenciado.
- Uma das funções RBAC do Kubernetes (Leitor, Gravador ou Administrador): controla quais ações podem ser executadas no namespace.
Todas as três funções são necessárias para que os desenvolvedores acessem e trabalhem com êxito com seus projetos na área de trabalho do AKS. Sem a Função de Usuário do Cluster do Serviço de Kubernetes do Azure, os desenvolvedores não podem baixar o arquivo kubeconfig necessário para se conectar ao cluster.
Atribuir acesso ao cluster
Atribua a Função de Usuário do Cluster do Serviço de Kubernetes do Azure para habilitar o download do kubeconfig usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Atribuir acesso ao namespace
Atribua a função de Usuário do Namespace do Serviço de Kubernetes do Azure para o projeto/namespace específico usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Atribuir a função RBAC do Kubernetes
Atribua a função RBAC do Kubernetes apropriada com base no que o desenvolvedor precisa fazer:
- Leitor RBAC do Serviço de Kubernetes do Azure para acesso somente leitura.
- Gravador RBAC do Serviço de Kubernetes do Azure para implantação de aplicativos.
- Administrador do RBAC do Serviço de Kubernetes do Azure para controle administrativo completo.
Obtenha a ID do cluster do AKS usando o
az aks showcomando.AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Atribua a função RBAC do Kubernetes apropriada usando o
az role assignment createcomando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado. O exemplo a seguir atribui a função Escritor de RBAC do Serviço de Kubernetes do Azure.az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Permitir que os criadores do Project atribuam permissões de acesso (opcional)
Se você quiser que os criadores do Project possam atribuir permissões de acesso a outros usuários, conceda a eles a função administrador de acesso do usuário . Essa permissão permite que o usuário defina permissões em qualquer recurso no grupo de recursos de infraestrutura.
Atribua a função administrador de acesso do usuário usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
az role assignment create \
--role "User Access Administrator" \
--assignee <user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Responsabilidades do desenvolvedor
Como desenvolvedor, você trabalha em um ambiente de área de trabalho do AKS existente para implantar aplicativos, gerenciar projetos e monitorar suas cargas de trabalho. O operador de cluster concede as permissões necessárias para executar essas tarefas. Suas responsabilidades incluem:
- Implantando aplicativos em Projetos.
- Exibindo e gerenciando aplicativos implantados.
- Monitorando métricas e logs do aplicativo.
- Modificando o acesso ao Project (se necessário).
Funções de usuário necessárias para desenvolvedores
Para trabalhar com a área de trabalho do AKS como desenvolvedor, seu operador de cluster deve atribuir a você três funções essenciais:
Função de Usuário do Cluster do Serviço de Kubernetes do Azure: permite baixar credenciais de cluster usando o
az aks get-credentialscomando, que é um requisito para se conectar ao cluster do computador local ou por meio da área de trabalho do AKS.Usuário do Namespace do Serviço de Kubernetes do Azure: concede acesso ao namespace/projeto gerenciado atribuído.
Uma das funções RBAC do Kubernetes (Leitor, Gravador ou Administrador): controla quais ações você pode executar no namespace.
- Leitor RBAC do Serviço de Kubernetes do Azure para acesso somente leitura.
- Gravador RBAC do Serviço de Kubernetes do Azure para implantação de aplicativos.
- Administrador do RBAC do Serviço de Kubernetes do Azure para controle administrativo completo.
Como as permissões são atribuídas
As permissões são atribuídas com base em como os Projetos são criados na área de trabalho do AKS:
Criador do projeto: recebe automaticamente a função Proprietário no namespace gerenciado e todas as permissões necessárias para implantar aplicativos.
Outros usuários: deve ser concedido acesso pelo operador de cluster ou criador do Projeto. Eles recebem:
- Função de Usuário do Cluster do Serviço de Kubernetes do Azure no cluster.
- Função de Usuário de Namespace do Serviço de Kubernetes do Azure no namespace.
- Uma das funções RBAC do Kubernetes (Leitor, Gravador ou Administrador).
Para implantar aplicativos, você precisa da função Gravador ou Administrador . Para mais informações, consulte funções internas associadas a namespaces gerenciados.
Exibir métricas de aplicativo
Observação
Pode levar até 10 minutos para que as métricas sejam preenchidas depois que um aplicativo é implantado.
Na tela inicial do Project, você pode exibir métricas para seu aplicativo, como CPU, memória e uso de rede. Essas métricas são originadas do ponto de extremidade do Prometheus Gerenciado com suporte de um workspace do Azure Monitor.
Para exibir as métricas, você precisa da função Leitor de Dados de Monitoramento no workspace do Azure Monitor. Essa função concede acesso a todas as métricas do cluster, não apenas aos projetos específicos.
Seu operador de cluster pode atribuir essa permissão usando as seguintes etapas:
Identifique o workspace do Azure Monitor usado pelo cluster usando o
az alerts-management prometheus-rule-group listcomando.export WORKSPACE_ACC_FOR_PROM_RULES=$(az alerts-management prometheus-rule-group list \ --resource-group "$RESOURCE_GROUP" \ --query "[?clusterName=='$CLUSTER_NAME'] | [0].scopes[0]" \ --output tsv)Atribua a função Leitor de Dados de Monitoramento usando o
az role assignment createcomando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.az role assignment create \ --role "Monitoring Data Reader" \ --assignee <user-id> \ --scope $WORKSPACE_ACC_FOR_PROM_RULES
Modificar permissões de acesso do Project
Atualmente, a área de trabalho do AKS não fornece uma opção de interface do usuário para modificar as permissões do Project após a criação. Se você precisar atualizar suas permissões ou conceder acesso a outras pessoas, trabalhe com seu operador de cluster para atualizar permissões usando o portal do Azure ou a CLI do Azure. As etapas a seguir descrevem como atribuir as funções necessárias usando a CLI do Azure:
Atribuir acesso ao cluster
Atribua a Função de Usuário do Cluster do Serviço de Kubernetes do Azure para habilitar o download do kubeconfig usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Atribuir acesso ao namespace
Atribua a função de Usuário do Namespace do Serviço de Kubernetes do Azure para o projeto/namespace específico usando o az role assignment create comando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Atribuir a função RBAC do Kubernetes
Atribua a função RBAC do Kubernetes apropriada com base no que o desenvolvedor precisa fazer:
- Leitor RBAC do Serviço de Kubernetes do Azure para acesso somente leitura.
- Gravador RBAC do Serviço de Kubernetes do Azure para implantação de aplicativos.
- Administrador do RBAC do Serviço de Kubernetes do Azure para controle administrativo completo.
Obtenha a ID do cluster do AKS usando o
az aks showcomando.AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Atribua a função RBAC do Kubernetes apropriada usando o
az role assignment createcomando. Certifique-se de substituir o marcador de posição pelo ID de usuário ou entidade de serviço apropriado. O exemplo a seguir atribui a função Escritor de RBAC do Serviço de Kubernetes do Azure.az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Conceder permissões para exibir métricas (opcional)
Para conceder permissões para exibir métricas, siga as etapas na seção Exibir métricas do aplicativo .