Compartilhar via


Habilitar integração gerenciada do Microsoft Entra pelo AKS para clusters do Kubernetes com kubelogin

A integração Microsoft Entra gerida por AKS simplifica o processo de integração Microsoft Entra. Anteriormente, você era obrigado a criar um aplicativo cliente e servidor, e o locatário do Microsoft Entra tinha que atribuir permissões de função Leitores de Diretório. Agora, o provedor de recursos do AKS (Serviço de Kubernetes do Azure) gerencia os aplicativos cliente e servidor para você.

Os administradores do cluster podem configurar o RBAC (controle de acesso baseado em função) do Kubernetes com base na identidade de um usuário ou na associação dele a um grupo de diretórios. A autenticação do Microsoft Entra é fornecida aos clusters do AKS com OpenID Connect. O OpenID Connect é uma camada de identidade compilada sobre o protocolo OAuth 2.0. Para obter mais informações sobre o OpenID Connect, consulte a documentação do Open ID Connect.

Saiba mais sobre o fluxo de integração do Microsoft Entra na documentação do Microsoft Entra.

Limitações

Veja a seguir as restrições para integrar a autenticação no AKS:

  • A integração não pode ser desabilitada após a adição.
  • Não há suporte para downgrades de um cluster integrado para os clusters herdados do Microsoft Entra ID.
  • Clusters sem suporte do RBAC do Kubernetes não podem adicionar a integração.

Antes de começar

Para instalar o complemento do AKS, verifique se você tem os seguintes itens:

  • Você tem a CLI do Azure versão 2.29.0 ou posterior, instalada e configurada. Para localizar a versão, execute o comando az --version. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
  • Você precisa de kubectl com uma versão mínima de 1.18.1 ou kubelogin. Com a CLI do Azure e o módulo do Azure PowerShell, esses dois comandos são incluídos e gerenciados automaticamente. Ou seja, são atualizados por padrão e executar o az aks install-cli não é necessário nem recomendado. Se estiver usando um pipeline automatizado, você precisará gerenciar as atualizações para a versão correta ou mais recente. A diferença entre as versões secundárias do Kubernetes e kubectl não deve ser superior a uma versão. Caso contrário, problemas de autenticação ocorrem na versão errada.
  • Se você estiver usando o helm, precisará de uma versão mínima do helm 3.3.
  • Essa configuração exige que você tenha um grupo do Microsoft Entra para seu cluster. Este grupo é registrado como um grupo de administração no cluster para conceder permissões de administrador. Se você não tiver um grupo existente do Microsoft Entra, poderá criar um usando o comando az ad group create.

Observação

Os clusters integrados do Microsoft Entra usando uma versão do Kubernetes mais recente que a versão 1.24 usam automaticamente o formato kubelogin. A partir da versão 1.24 do Kubernetes, o formato padrão da credencial clusterUser para clusters do Microsoft Entra ID é exec, o que requer o binário kubelogin no ambiente de execução PATH. Não há nenhuma alteração de comportamento para clusters que não são do Microsoft Entra ou clusters do Microsoft Entra ID executando uma versão anterior à 1.24. O kubeconfig baixado atual continuará a funcionar. Um parâmetro de consulta opcional format é incluído ao obter a credencial clusterUser para substituir a alteração de comportamento padrão. Você pode especificar explicitamente o formato para azure se precisar manter o formato antigo kubeconfig .

Habilitar a integração no cluster do AKS

Crie um novo cluster

  1. Crie um grupo de recursos do Azure usando o comando az group create.

    az group create --name myResourceGroup --___location centralus
    
  2. Crie um cluster do AKS e habilite o acesso de administração para o seu grupo do Microsoft Entra usando o comando az aks create.

    az aks create \
      --resource-group myResourceGroup \
      --name myManagedCluster \
      --enable-aad \
      --aad-admin-group-object-ids <id> \
      --aad-tenant-id <id> \
      --generate-ssh-keys
    

    A criação bem-sucedida de um cluster do Microsoft Entra ID gerenciado pelo AKS inclui a seguinte seção no corpo da resposta.

    "AADProfile": {
      "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
      ],
      "clientAppId": null,
      "managed": true,
      "serverAppId": null,
      "serverAppSecret": null,
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
    }
    

Usar um cluster existente

Habilite a integração do Microsoft Entra gerenciada pelo AKS no cluster habilitado para RBAC do Kubernetes existente usando o comando az aks update. Defina seu grupo de administradores para manter o acesso no cluster.

az aks update \
  --resource-group MyResourceGroup \
  --name myManagedCluster \
  --enable-aad \
  --aad-admin-group-object-ids <id-1>,<id-2> \
  --aad-tenant-id <id>

Uma ativação bem-sucedida de um cluster do Microsoft Entra ID gerenciado pelo AKS tem a seguinte seção no corpo da resposta:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Migrar o cluster herdado para a integração

Se o cluster usar a integração herdada do Microsoft Entra, você poderá atualizar para a integração do Microsoft Entra gerenciada pelo AKS através do comando az aks update.

Aviso

Clusters da camada gratuita podem apresentar tempo de inatividade do servidor de API durante a atualização. É recomendável atualizar durante o horário que você não trabalha. Após a atualização, o kubeconfig conteúdo é alterado. Você precisa executar az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> para mesclar as novas credenciais no kubeconfig arquivo.

az aks update \
  --resource-group myResourceGroup \
  --name myManagedCluster \
  --enable-aad \
  --aad-admin-group-object-ids <id> \
  --aad-tenant-id <id>

Uma migração bem-sucedida de um cluster do Microsoft Entra ID gerenciado pelo AKS tem a seguinte seção no corpo da resposta:

"AADProfile": {
  "adminGroupObjectIds": [
      "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
  ],
  "clientAppId": null,
  "managed": true,
  "serverAppId": null,
  "serverAppSecret": null,
  "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
}

Acessar o cluster habilitado

  1. Obtenha as credenciais de usuário para acessar o cluster usando o comando az aks get-credentials.

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Siga as instruções de entrada.

  3. Defina kubelogin para usar a CLI do Azure.

    kubelogin convert-kubeconfig -l azurecli
    
  4. Veja os nós no cluster com o comando kubectl get nodes.

    kubectl get nodes
    

Entrada não interativa com kubelogin

Há alguns cenários não interativos que não dão suporte a kubectl. Nesses casos, use kubelogin para se conectar ao cluster com uma credencial de entidade de serviço não interativa para executar pipelines de integração contínua.

Observação

Os clusters integrados do Microsoft Entra usando uma versão do Kubernetes mais recente que a versão 1.24 usam automaticamente o formato kubelogin. A partir da versão 1.24 do Kubernetes, o formato padrão da credencial clusterUser para clusters do Microsoft Entra ID é exec, o que exige o binário kubelogin no caminho de execução (PATH). Não há nenhuma alteração de comportamento para clusters que não são do Microsoft Entra ou clusters do ID do Microsoft Entra executando uma versão anterior à 1.24. O kubeconfig baixado atual continuará a funcionar. Um parâmetro de consulta opcional format é incluído ao obter a credencial clusterUser para substituir a alteração de comportamento padrão. Você pode especificar explicitamente o formato para azure se precisar manter o formato antigo kubeconfig .

Ao obter a clusterUser credencial, você pode usar o format parâmetro de consulta para substituir o comportamento padrão. Você pode definir o valor para azure usar o formato original kubeconfig :

az aks get-credentials --format azure

Se o cluster integrado do Microsoft Entra usar o Kubernetes versão 1.24 ou inferior, você precisará converter manualmente o kubeconfig formato.

export KUBECONFIG=/path/to/kubeconfig
kubelogin convert-kubeconfig

Se você receber o erro da mensagem : o plug-in de autenticação do Azure foi removido., você precisará executar o comando kubelogin convert-kubeconfig para converter o kubeconfig formato manualmente. Para mais informações, confira Problemas Conhecidos do Azure Kubelogin.

Solucionar problemas de acesso

Importante

A etapa descrita nesta seção sugere um método de autenticação alternativo em comparação com a autenticação de grupo normal do Microsoft Entra. Use essa opção somente em uma emergência.

Se você não tiver acesso administrativo a um grupo válido do Microsoft Entra, poderá seguir essa solução alternativa. Entre com uma conta que seja membro da função de Administrador do Cluster do Serviço de Kubernetes do Azure e conceda credenciais de administrador de grupo ou locatário para acessar seu cluster.

Próximas etapas