Partilhar via


Ative a integração do Microsoft Entra gerida pelo Azure Kubernetes Service (AKS) para clusters do Kubernetes com o kubelogin.

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

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

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

Limitações

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

  • A integração não pode ser desativada depois de adicionada.
  • Os downgrades de um cluster integrado para clusters Microsoft Entra ID legados não são suportados.
  • Clusters sem suporte a RBAC do Kubernetes não conseguem adicionar a integração.

Antes de começar

Para instalar o addon 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 az --version comando. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
  • Você precisa 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, eles são atualizados por padrão e a execução az aks install-cli não é necessária ou recomendada. Se você estiver usando um pipeline automatizado, precisará gerenciar 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 mais de uma versão. Caso contrário, ocorrerão problemas de autenticação na versão errada.
  • Se você estiver usando helm, você precisa de uma versão mínima do helm 3.3.
  • Essa configuração requer que você tenha um grupo do Microsoft Entra para seu cluster. Esse grupo é registrado como um grupo de administradores no cluster para conceder permissões de administrador. Se você não tiver um grupo existente do Microsoft Entra, poderá criar um usando o az ad group create comando.

Nota

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

Habilite a integração em seu cluster AKS

Criar um novo cluster

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

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

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

    Uma criação bem-sucedida de um cluster do Microsoft Entra ID gerenciado pelo AKS inclui a seguinte secçã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 em seu cluster existente habilitado para Kubernetes RBAC usando o az aks update comando. Certifique-se de definir 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 de ID do Microsoft Entra 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 cluster legado para integração

Se o cluster usa a integração herdada do Microsoft Entra, você pode atualizar para a integração do Microsoft Entra gerenciada pelo AKS por meio do az aks update comando.

Aviso

Os clusters de camada livre podem enfrentar tempo de inatividade do servidor de API durante a atualização. Recomendamos que a atualização seja feita fora do horário habitual de funcionamento. 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 de ID do Microsoft Entra 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 seu cluster usando o az aks get-credentials comando.

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    
  2. Siga as instruções para iniciar sessão.

  3. Defina kubelogin para usar a CLI do Azure.

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

    kubectl get nodes
    

Login não interativo com kubelogin

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

Nota

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

Ao obter a clusterUser credencial, 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 usa o Kubernetes versão 1.24 ou inferior, você precisa converter manualmente o kubeconfig formato.

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

Se você receber a mensagem de erro: 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 obter mais informações, consulte Problemas conhecidos do Kubelogin do Azure.

Resolver 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. Utilize esta opção apenas em caso de emergência.

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

Próximos passos