Compartilhar via


Controle de acesso baseado em funções em clusters do Kubernetes do Azure Operator Nexus

Este artigo oferece um guia completo sobre como gerenciar o acesso aos clusters Kubernetes do Nexus usando o Microsoft Entra ID. O foco principal é o controle de acesso baseado em função, que permite conceder permissões aos usuários com base em suas funções ou responsabilidades dentro da organização.

Antes de começar

  1. Para começar, crie um grupo do Microsoft Entra destinado aos administradores do cluster e atribua os membros necessários a esse grupo. O Microsoft Entra ID permite que o acesso seja concedido ao grupo como um todo, sem a necessidade de gerenciar permissões individualmente para cada usuário.
  2. Utilize o ID do grupo como valor para o parâmetro "adminGroupObjectIds" ao criar o cluster Kubernetes do Nexus. Isso garante que os membros do grupo tenham as permissões necessárias para gerenciar o cluster. Consulte o Guia de início rápido para instruções sobre como criar e acessar o cluster Kubernetes do Nexus.

Acesso de administrador ao cluster

O Nexus cria uma vinculação de função no cluster Kubernetes com a função padrão do Kubernetes cluster-admin e os grupos Microsoft Entra especificados como adminGroupObjectIds. Os administradores do cluster têm acesso total, podendo realizar todas as operações no cluster. Os administradores do cluster também podem conceder acesso a outros usuários ao atribuí-los ao grupo apropriado do Microsoft Entra.

Observação

Quando você cria um cluster do Kubernetes do Nexus, o Nexus cria automaticamente um grupo de recursos dedicado ao armazenamento dos recursos de cluster, dentro desse grupo, o recurso de cluster conectado do Arc é estabelecido.

Para acessar o cluster, você precisa configurar a conexão do cluster kubeconfig. Depois de fazer logon na CLI do Azure com a entidade Microsoft Entra relevante, você pode obter o kubeconfig necessário para se comunicar com o cluster de qualquer lugar, mesmo fora do firewall que o cerca.

  1. Configure as variáveis CLUSTER_NAME, RESOURCE_GROUP e SUBSCRIPTION_ID.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Consultar o grupo de recursos gerenciados com o az e armazenar no MANAGED_RESOURCE_GROUP

     az account set -s $SUBSCRIPTION_ID
     MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
    
  3. O comando a seguir inicia um proxy connectedk8s que permite que você se conecte ao servidor de API do Kubernetes para o cluster especificado do Kubernetes do Nexus.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. Use kubectl para enviar solicitações ao cluster:

    kubectl get pods -A
    

    Agora você deve conseguir ver uma resposta do cluster contendo a lista de todos os nós.

Observação

Se estiver vendo a mensagem de erro "Falha ao postar o token de acesso no proxy do cliente ou Falha ao se conectar à MSI", talvez seja necessário executar um az login para se autenticar novamente no Azure.

Controle de acesso baseado em função

Como administrador, você pode fornecer controle de acesso baseado em função para o cluster criando uma vinculação de função com a ID do objeto de grupo do Microsoft Entra. Para usuários que só precisam de permissões de "exibição", você pode realizar essa tarefa adicionando-os a um grupo do Microsoft Entra vinculado à função "exibição".

  1. Crie um grupo do Microsoft Entra para usuários que precisam de acesso de "exibição", referindo-se à função padrão do Kubernetes chamada view. Essa função é apenas um exemplo e, se necessário, você pode criar funções personalizadas e usá-las para atender a requisitos específicos. Para obter mais informações sobre funções voltadas para usuários no Kubernetes, você pode conferir a documentação oficial acessando Acesso baseado em funções do Kubernetes.

  2. Anote a ID do objeto de grupo do Microsoft Entra gerada após a criação.

  3. Use o comando kubectl para criar um clusterrolebinding com a função "exibição" e associá-lo ao grupo do Microsoft Entra. Substitua AZURE_AD_GROUP_OBJECT_ID pela ID do objeto de grupo do Microsoft Entra.

    kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
    

    Esse comando cria uma vinculação de função de cluster chamada nexus-read-only-users que atribui a função view aos membros do grupo do Microsoft Entra especificado.

  4. Verifique se a vinculação de função foi criada com sucesso.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. Agora, os usuários do grupo do Microsoft Entra têm acesso de "exibição" ao cluster. Esses usuários podem acessar o cluster usando az connectedk8s proxy para visualizar os recursos, mas não podem fazer nenhuma alteração

Próximas etapas

Você pode ajustar ainda mais o controle de acesso criando funções personalizadas com permissões específicas. A criação dessas funções envolve os recursos nativos do Kubernetes, como RoleBinding ou ClusterRoleBinding. Você pode conferir a documentação oficial do Kubernetes para receber orientações detalhadas sobre como criar mais funções e vinculações de funções personalizadas que atendam às suas necessidades.