Abilitare l'autenticazione di Microsoft Entra ID per il piano di controllo di AKS

L'integrazione di Microsoft Entra semplifica il processo di integrazione di Microsoft Entra. In precedenza, dovevi creare un'app client e server, e il tenant di Microsoft Entra doveva concedere le autorizzazioni di ruolo Directory Readers. Il provider di risorse di Azure Kubernetes Service (AKS) gestisce per te le app client e server.

Gli amministratori del cluster possono configurare il controllo degli accessi in basati sul ruolo di Kubernetes (Kubernetes RBAC), in base all'identità o all'appartenenza al gruppo di directory di un utente.

Scopri di più sul flusso di integrazione di Microsoft Entra nella documentazione di Microsoft Entra.

Limitazioni

L'integrazione di Microsoft Entra non può essere disabilitata dopo l'abilitazione in un cluster.

Prima di iniziare

Per installare il componente aggiuntivo di AKS, verificare di avere i seguenti elementi:

  • Devi aver installato e configurato l’interfaccia della riga di comando di Azure versione 2.29.0 o successiva. Per trovare la versione, eseguire il comando az --version. Se è necessario installare o aggiornare, vedere Installare Azure CLI.
  • Hai bisogno di kubectl con una versione minima di 1.18.1 o kubelogin. Con l'interfaccia della riga di comando di Azure e il modulo Azure PowerShell, questi due comandi vengono inclusi e gestiti automaticamente. Ciò significa che vengono aggiornati per impostazione predefinita e l'esecuzione di az aks install-cli non è necessaria o consigliata. Se usi una pipeline automatizzata, devi gestire gli aggiornamenti per la versione corretta o più recente. La differenza tra le versioni secondarie di Kubernetes e kubectl non deve essere più di una versione. In caso contrario, si verificano problemi di autenticazione nella versione errata.
  • Per questa configurazione devi disporre di un gruppo Microsoft Entra per il cluster. Questo gruppo viene registrato come gruppo di amministrazione nel cluster per concedere autorizzazioni di amministratore. Se non disponi di un gruppo Microsoft Entra esistente, puoi crearne uno usando il comando az ad group create.

Abilita l'integrazione nel tuo cluster del servizio Azure Kubernetes

Prima di tutto, impostare le variabili di ambiente per il gruppo di risorse, il nome del cluster, gli ID oggetto del gruppo amministrativo di "Microsoft Entra" e l'ID tenant. Riutilizzare queste variabili nei comandi seguenti.

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"

Creare un nuovo cluster

  1. Creare un gruppo di risorse Azure usando il comando az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Creare un cluster del servizio Azure Kubernetes e abilitare l'accesso amministrativo per il gruppo Microsoft Entra usando il comando az aks create.

    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
    

    Una creazione corretta di un cluster Microsoft Entra ID include la sezione seguente nel corpo della risposta.

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

Usare un cluster esistente

Abilitare l'integrazione di Microsoft Entra nel cluster esistente abilitato al controllo degli accessi con RBAC di Kubernetes usando il comando az aks update. Assicurati di impostare il gruppo di amministrazione per mantenere l'accesso al tuo 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

Un'attivazione corretta di un cluster Microsoft Entra ID include la sezione seguente nel corpo della risposta:

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

Eseguire la migrazione del cluster legacy all'integrazione

Se il cluster usa l'integrazione legacy di Microsoft Entra, è possibile eseguire l'aggiornamento all'integrazione di Microsoft Entra tramite il az aks update comando .

Avvertimento

I cluster di livello gratuito potrebbero riscontrare tempi di inattività del server API durante l'aggiornamento. È consigliabile eseguire l'aggiornamento durante le ore non lavorative. Dopo l'aggiornamento, il kubeconfig contenuto cambia. È necessario eseguire az aks get-credentials --resource-group <AKS resource group name> --name <AKS cluster name> per unire le nuove credenziali nel kubeconfig file.

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

Una migrazione corretta di un cluster Microsoft Entra ID include la sezione seguente nel corpo della risposta:

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

Accedi al cluster abilitato

  1. Ottieni le credenziali utente per accedere al cluster usando il comando az aks get-credentials.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. Seguire le istruzioni di accesso.

  3. Visualizza i nodi nel cluster usando il comando kubectl get nodes.

    kubectl get nodes
    

I cluster che eseguono Kubernetes 1.24 o versioni successive usano automaticamente il kubelogin formato exec-plugin, quindi non è necessaria alcuna conversione manuale kubeconfig per l'accesso interattivo all'interfaccia della riga di comando di Azure. Per scenari non interattivi, ad esempio pipeline di integrazione continua, o per usare un metodo di autenticazione diverso (principal del servizio, identità gestita, identità workload o codice dispositivo), vedere Usare kubelogin per autenticare gli utenti in AKS.

Accesso di emergenza "break-glass"

Nel raro caso in cui l'accesso dell'ID Microsoft Entra al server API Kubernetes del cluster non funzioni, ad esempio durante un evento imprevisto del servizio Microsoft Entra più ampio, è possibile eseguire il fallback all'account amministratore locale del cluster per mantenere operativo il cluster fino al ripristino dell'accesso basato su Entra.

Note

Questo fallback è necessario solo quando l'accesso basato su Entra non è disponibile. Se il problema è un gruppo di amministrazione configurato in modo errato (ad esempio, se il gruppo è stato eliminato o se è stato impostato l'ID oggetto sbagliato), non è necessario: aggiorna direttamente il gruppo di amministrazione utilizzando un account che disponga dell'autorizzazione Microsoft.ContainerService/managedClusters/write con az aks update --aad-admin-group-object-ids.

Importante

Questo flusso di lavoro ignora l'autenticazione di Microsoft Entra. Usarlo solo come fallback temporaneo e disabilitare nuovamente gli account locali dopo il ripristino dell'accesso a Microsoft Entra.

Per usare il percorso break-glass, è necessario il ruolo Collaboratore al servizio Azure Kubernetes nella risorsa cluster. Questo ruolo concede l'autorizzazione Microsoft.ContainerService/managedClusters/write necessaria per riabilitare gli account locali, oltre all'accesso alle credenziali di amministratore del cluster locale. Viene valutato da Azure Resource Manager, quindi funziona indipendentemente dal percorso di accesso di Microsoft Entra al server API Kubernetes.

  1. Se gli account locali sono disabilitati nel cluster, attivarli di nuovo temporaneamente.

    az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-local-accounts
    
  2. Recuperare le credenziali locali di cluster-admin usando il comando az aks get-credentials con il flag --admin. Questa credenziale è un kubeconfig basato su certificato che ignora Microsoft Entra.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --admin
    
  3. Usare kubectl per gestire il cluster mentre Microsoft Entra non è disponibile. Quando l'accesso a Microsoft Entra funziona di nuovo, disabilitare gli account locali per restituire il cluster alla baseline sicura.

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

Passaggi successivi