Aggiornare o ruotare le credenziali per il cluster del servizio Azure Kubernetes (AKS)

I cluster AKS creati con un principale del servizio hanno una durata di un anno. Man mano che ti avvicini alla data di scadenza, puoi reimpostare le credenziali per estendere il 'service principal' per un ulteriore periodo di tempo. È anche possibile aggiornare, o ruotare, le credenziali come parte di criteri di sicurezza definiti. I cluster del servizio Azure Kubernetes integrati con Microsoft Entra ID come provider di autenticazione hanno altre due identità: l'app Microsoft Entra Server e l'app client Microsoft Entra. Questo articolo illustra in dettaglio come aggiornare il principale del servizio e le credenziali di Microsoft Entra per un cluster AKS.

Nota

In alternativa, è possibile usare un'identità gestita per le autorizzazioni anziché un principale del servizio. Le identità gestite non richiedono aggiornamenti o rotazioni. Per altre informazioni, vedere Usare le identità gestite.

Operazioni preliminari

È necessario che sia installata e configurata l'interfaccia della riga di comando di Azure 2.0.65 o versione successiva. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Aggiornare o creare un nuovo principale del servizio per il cluster AKS

Quando si desidera aggiornare le credenziali per un cluster del servizio Azure Kubernetes, è possibile scegliere di:

  • Aggiornare le credenziali per il principale del servizio esistente.
  • Creare una nuova entità servizio e aggiornare il cluster per usare le nuove credenziali.

Avviso

Se si sceglie di creare una nuova entità servizio, attendere circa 30 minuti prima che l'autorizzazione dell'entità servizio venga propagata in tutte le regioni. L'aggiornamento di un cluster del servizio Azure Kubernetes di grandi dimensioni per l'uso di queste credenziali può richiedere molto tempo.

Controllare la data di scadenza del principale del servizio

Per controllare la data di scadenza del principale del servizio, usare il comando az ad app credential list. L'esempio seguente ottiene l'ID dell’entità servizio per il cluster $CLUSTER_NAME nel gruppo di risorse $RESOURCE_GROUP_NAME usando il comando az aks show. L'ID principale del servizio viene impostato come variabile denominata SP_ID.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)
az ad app credential list --id "$SP_ID" --query "[].endDateTime" -o tsv

Reimpostare le credenziali del principale del servizio esistente

Per aggiornare le credenziali per un principal di servizio già esistente, ottieni l'ID del principal di servizio del cluster utilizzando il comando az aks show. L'esempio seguente ottiene l'ID per il cluster $CLUSTER_NAME nel gruppo di risorse $RESOURCE_GROUP_NAME. La variabile denominata SP_ID archivia l'ID entità servizio usato nel passaggio successivo. Questi comandi usano il linguaggio di comando Bash.

Avviso

Quando si reimpostano le credenziali del cluster su un cluster AKS che utilizza i set di scalabilità di macchine virtuali di Azure, viene eseguito un aggiornamento dell'immagine del nodo per aggiornare i nodi con le nuove informazioni sulle credenziali.

SP_ID=$(az aks show --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME \
    --query servicePrincipalProfile.clientId -o tsv)

Usare la variabile SP_ID contenente l'ID entità servizio per reimpostare le credenziali usando il az ad app credential reset comando. L'esempio seguente consente alla piattaforma Azure di generare un nuovo segreto sicuro per l'entità servizio e archiviarlo come variabile denominata SP_SECRET.

SP_SECRET=$(az ad app credential reset --id "$SP_ID" --query password -o tsv)

Successivamente, si aggiorna il cluster AKS con le credenziali del principale di servizio. Questo passaggio è necessario per aggiornare il principale del servizio sul cluster AKS.

Creare un nuovo principale del servizio

Nota

Se nella sezione precedente sono state aggiornate le credenziali dell'entità servizio esistente, saltare questa sezione e invece aggiornare il cluster AKS con le credenziali dell'entità servizio.

Per creare un principale del servizio e aggiornare il cluster AKS per usare le nuove credenziali, usare il comando az ad sp create-for-rbac.

az ad sp create-for-rbac --role Contributor --scopes /subscriptions/$SUBSCRIPTION_ID

L'output è simile a quello dell'esempio seguente. Prendere nota del proprio appId e del proprio password da utilizzare nel passaggio successivo.

{
  "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

Definire le variabili per l'ID service principal e il segreto client usando l'output del comando az ad sp create-for-rbac. L'SP_ID è l'appIde ilSP_SECRET è la password.

SP_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SP_SECRET=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Quindi, aggiorni il cluster AKS con le nuove credenziali dell'entità servizio. Questo passaggio è necessario per aggiornare il cluster AKS con le nuove credenziali del principale del servizio.

Aggiornare il cluster AKS con le credenziali dell'entità servizio

Importante

Per i grandi cluster, l'aggiornamento del tuo cluster AKS con un nuovo principale del servizio può richiedere molto tempo. Prendere in considerazione la revisione e la personalizzazione delle impostazioni di aggiornamento delle distribuzioni a nodi per ridurre al minimo le interruzioni durante l'aggiornamento. Per i cluster di piccole e medie dimensioni, l'aggiornamento delle nuove credenziali nel cluster richiede alcuni minuti.

Aggiorna il cluster AKS con le nuove credenziali o quelle esistenti eseguendo il comando az aks update-credentials.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-service-principal \
    --service-principal "$SP_ID" \
    --client-secret "${SP_SECRET}"

Aggiornare il cluster AKS con le nuove credenziali dell'applicazione Microsoft Entra

È possibile creare nuove applicazioni Microsoft Entra server e client seguendo la procedura di integrazione di Microsoft Entra, oppure ripristinare le applicazioni Microsoft Entra esistenti seguendo lo stesso metodo del ripristino dell’entità servizio. Successivamente, è necessario aggiornare le credenziali dell'applicazione Microsoft Entra del cluster usando il az aks update-credentials comando con le variabili --reset-aad.

az aks update-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --reset-aad \
    --aad-server-app-id $SERVER_APPLICATION_ID \
    --aad-server-app-secret $SERVER_APPLICATION_SECRET \
    --aad-client-app-id $CLIENT_APPLICATION_ID

Passaggi successivi

In questo articolo hai imparato come aggiornare o ruotare le credenziali del servizio principale e dell'applicazione Microsoft Entra. Per maggiori informazioni su come gestire l'identità per i carichi di lavoro all'interno di un cluster del servizio Azure Kubernetes, consultare Procedure consigliate per l'autenticazione e l'autorizzazione nel servizio Azure Kubernetes.