Ativar a autenticação Microsoft Entra ID para o plano de controlo AKS

A integração com o Microsoft Entra simplifica o processo de integração com o 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.

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

Limitações

A integração com o Microsoft Entra não pode ser desativada depois de estar ativada num cluster.

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, consulte Install 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.
  • 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.

Habilite a integração em seu cluster AKS

Primeiro, defina variáveis de ambiente para o grupo de recursos, nome do cluster, IDs de objetos do grupo de administradores Microsoft Entra e ID de inquilino. Reutilize estas variáveis nos comandos que se seguem.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myManagedCluster"
export AAD_ADMIN_GROUP_OBJECT_IDS="<group-object-id>"  # comma-separated for multiple groups
export AAD_TENANT_ID="<tenant-id>"
export LOCATION="centralus"

Criar um novo cluster

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

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  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 $RESOURCE_GROUP \
      --name $CLUSTER_NAME \
      --enable-aad \
      --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
      --aad-tenant-id $AAD_TENANT_ID \
      --generate-ssh-keys
    

    Uma criação bem-sucedida de um cluster Microsoft Entra ID tem a seguinte secção no corpo de 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

Ative a integração com o Microsoft Entra no seu cluster Kubernetes já ativado por 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 $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Uma ativação bem-sucedida de um cluster Microsoft Entra ID tem a seguinte secção no corpo de 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 seu cluster usar a integração legada da Microsoft Entra, pode atualizar para a integração da Microsoft Entra através do comando az aks update.

Warning

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 $RESOURCE_GROUP \
  --name $CLUSTER_NAME \
  --enable-aad \
  --aad-admin-group-object-ids $AAD_ADMIN_GROUP_OBJECT_IDS \
  --aad-tenant-id $AAD_TENANT_ID

Uma migração bem-sucedida de um cluster Microsoft Entra ID tem 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"
}

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 $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Siga as instruções para iniciar sessão.

  3. Exiba os nós no cluster com o kubectl get nodes comando.

    kubectl get nodes
    

Clusters a correr Kubernetes 1.24 ou versões posteriores usam automaticamente o kubelogin formato exec-plugin, pelo que não é necessária conversão manual kubeconfig para iniciar sessão interativa na CLI do Azure. Para cenários não interativos, como pipelines CI, ou para utilizar um método de autenticação diferente, como principal de serviço, identidade gerida, identidade de carga de trabalho ou código do dispositivo, consulte Usar kubelogin para autenticar utilizadores no AKS.

Acesso por vidro quebrado

No raro caso de o login do Microsoft Entra ID no servidor Kubernetes do seu cluster não estar a funcionar — por exemplo, durante um incidente mais amplo do serviço Microsoft Entra — pode recorrer à conta local de administrador do cluster para continuar a operar o cluster até que o login baseado no Entra seja restaurado.

Note

Este recurso só é necessário quando o login baseado no Entra não está disponível. Se o teu problema for um grupo de administradores mal configurado (por exemplo, o grupo foi eliminado ou o ID de objeto errado foi definido), não precisas — atualiza diretamente o grupo de administradores usando az aks update --aad-admin-group-object-ids uma conta que tenha essa Microsoft.ContainerService/managedClusters/write permissão.

Importante

Este fluxo de trabalho contorna a autenticação Microsoft Entra. Use-o apenas como recurso temporário e desative novamente as contas locais assim que o login do Microsoft Entra for restaurado.

Para usar o caminho break-glass, precisa da função Azure Kubernetes Service Contributor no recurso do cluster. Esta função concede a Microsoft.ContainerService/managedClusters/write permissão necessária para reativar contas locais, além de acesso à credencial local de administrador do cluster. É avaliado pelo Azure Resource Manager, por isso funciona independentemente do trajeto de autenticação do Microsoft Entra para o servidor API Kubernetes.

  1. Se as contas locais estiverem desativadas no cluster, reative-as temporariamente.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Recupere a credencial local do administrador do cluster usando o az aks get-credentials comando com a --admin bandeira. Esta credencial é um kubeconfig baseado em certificados que contorna o Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Use kubectl para operar o cluster enquanto o Microsoft Entra não está disponível. Quando o login do Microsoft Entra voltar a funcionar, desative as contas locais para devolver o cluster à sua base segura.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --disable-local-accounts
    

Passos seguintes