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

I cluster del servizio Web Diaks creati con un'entità servizio hanno una scadenza di un anno. Se la data di scadenza è prossima, è possibile reimpostare le credenziali per estendere l'entità servizio per un ulteriore periodo di tempo. È anche possibile aggiornare, o alternare, le credenziali come parte di criteri di sicurezza definiti. Questo articolo illustra come aggiornare le credenziali per un cluster del servizio Azure Kubernetes.

È anche possibile aver integrato il cluster del servizio Azure Active Directory con Azure AD e usarlo come provider di autenticazione per il cluster. In tal caso si avranno altre 2 identità create per il cluster, l'app Azure AD Server e l'app client Azure AD, è anche possibile reimpostare tali credenziali.

In alternativa, è possibile usare un'identità gestita per le autorizzazioni anziché un'entità servizio. Le identità gestite sono più facili da gestire rispetto alle entità servizio e non richiedono aggiornamenti o rotazioni. Per altre informazioni, vedere Usare le identità gestite.

Prima di iniziare

È necessario che sia installata e configurata l'interfaccia della riga di comando di Azure versione 2.0.65 o 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 una nuova entità servizio per il cluster del servizio Service Pack

Quando si desidera aggiornare le credenziali per un cluster del servizio Web Disassociato di Microsoft, è possibile scegliere tra le opzioni seguenti:

  • Aggiornare le credenziali per l'entità servizio esistente.
  • Creare una nuova entità servizio e aggiornare il cluster per l'uso di queste nuove credenziali.

Avviso

Se si sceglie di creare una nuova entità servizio, attendere circa 30 minuti per la propagazione dell'autorizzazione dell'entità servizio in tutte le aree. Il completamento dell'aggiornamento di un cluster del servizio Web AKS di grandi dimensioni per l'uso di queste credenziali può richiedere molto tempo.

Controllare la data di scadenza dell'entità servizio

Per controllare la data di scadenza dell'entità servizio, usare il comando az ad sp credential list . L'esempio seguente ottiene l'ID dell'entità servizio per il cluster denominato myAKSCluster nel gruppo di risorse myResourceGroup usando il comando az aks show . L'ID entità servizio viene impostato come variabile denominata SP_ID da usare con il comando az ad sp credential list .

SP_ID=$(az aks show --resource-group myResourceGroup --name myAKSCluster \
    --query servicePrincipalProfile.clientId -o tsv)
az ad sp credential list --id "$SP_ID" --query "[].endDate" -o tsv

Reimpostare le credenziali dell'entità servizio esistente

Per aggiornare le credenziali per l'entità servizio esistente, ottenere l'ID dell'entità servizio del cluster usando il comando az aks show. L'esempio seguente ottiene l'ID per il cluster denominato myAKSCluster nel gruppo di risorse myResourceGroup. L'ID entità servizio viene impostato come variabile denominata SP_ID per l'uso in un comando aggiuntivo. Questi comandi usano la sintassi Bash.

Avviso

Quando si reimpostano le credenziali del cluster in un cluster del servizio Azure Set di scalabilità di macchine virtuali, 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 myResourceGroup --name myAKSCluster \
    --query servicePrincipalProfile.clientId -o tsv)

Con un set variabile contenente l'ID dell'entità servizio, reimpostare le credenziali usando az ad sp credential reset. L'esempio seguente consente alla piattaforma Azure di generare un nuovo segreto sicuro per l'entità servizio. Questo nuovo segreto sicuro viene archiviato anche come una variabile.

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

A questo punto, continuare ad aggiornare il cluster del servizio Web Disassociato di Microsoft Con le nuove credenziali dell'entità servizio. Questo passaggio è necessario per fare in modo che le modifiche apportate all'entità servizio si riflettano nel cluster del servizio Web Diaks.

Creare una nuova entità servizio

Se si sceglie di aggiornare le credenziali dell'entità servizio esistente nella sezione precedente, ignorare questo passaggio. Continuare ad aggiornare il cluster del servizio Web Diaks con le nuove credenziali dell'entità servizio.

Per creare un'entità servizio e quindi aggiornare il cluster del servizio Azure Kubernetes in modo da usare le nuove credenziali, usare il comando az ad sp create-for-rbac.

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

L'output è simile all'esempio seguente: Prendere nota dei propri valori appId e password. Questi valori vengono usati nel passaggio successivo.

{
  "appId": "7d837646-b1f3-443d-874c-fd83c7c739c5",
  "name": "7d837646-b1f3-443d-874c-fd83c7c739c",
  "password": "a5ce83c9-9186-426d-9183-614597c7f2f7",
  "tenant": "a4342dc8-cd0e-4742-a467-3129c469d0e5"
}

A questo punto definire le variabili per l'ID dell'entità servizio e il segreto client usando l'output dal proprio comando az ad sp create-for-rbac, come illustrato nell'esempio seguente. L'SP_ID è l'appIde l'SP_SECRET è la password:

SP_ID=7d837646-b1f3-443d-874c-fd83c7c739c5
SP_SECRET=a5ce83c9-9186-426d-9183-614597c7f2f7

A questo punto, continuare ad aggiornare il cluster del servizio Web Disassociato di Microsoft Con le nuove credenziali dell'entità servizio. Questo passaggio è necessario per fare in modo che le modifiche apportate all'entità servizio si riflettano nel cluster del servizio Web Diaks.

Aggiornare il cluster del servizio Web Disassociato di Microsoft Con le nuove credenziali dell'entità servizio

Importante

Per i cluster di grandi dimensioni, il completamento dell'aggiornamento del cluster del servizio AKS con una nuova entità servizio può richiedere molto tempo. È consigliabile esaminare e personalizzare le impostazioni di aggiornamento dei picchi di nodo per ridurre al minimo le interruzioni durante gli aggiornamenti del cluster.

Indipendentemente dal fatto che si sia scelto di aggiornare le credenziali per l'entità servizio esistente o di creare un'entità servizio, aggiornare il cluster AKS con le nuove credenziali usando il comando az aks update-credentials. Vengono usate le variabili per --service-principal e --client-secret:

az aks update-credentials \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --reset-service-principal \
    --service-principal "$SP_ID" \
    --client-secret "${SP_SECRET:Q}"

Nota

${SP_SECRET:Q} escape di qualsiasi carattere speciale in SP_SECRET, che può causare l'esito negativo del comando. L'esempio precedente funziona per i terminali Cloud Shell e zsh di Azure. Per i terminali BASH, usare ${SP_SECRET@Q}.

Per i cluster di piccole e medie dimensioni, sono necessari alcuni istanti prima che le credenziali dell'entità servizio siano aggiornate nel servizio AKS.

Aggiornare il cluster del servizio Web Disassociato di Azure AD con le nuove credenziali dell'applicazione

È possibile creare nuove applicazioni Azure AD Server e Client seguendo i passaggi Azure AD integrazione. Oppure reimpostare le applicazioni Azure AD esistenti seguendo lo stesso metodo della reimpostazione dell'entità servizio. Successivamente, è sufficiente aggiornare il cluster Azure AD credenziali dell'applicazione usando lo stesso comando az servizio Web Application Azure AD update-credentials, ma usando le variabili --reset-aad.

az aks update-credentials \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --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 sono state aggiornate l'entità servizio per il cluster del servizio Azure AD Servizio Azure AD servizio. Per altre informazioni su come gestire l'identità per i carichi di lavoro all'interno di un cluster, consultare Procedure consigliate per l'autenticazione e l'autorizzazione nel servizio Azure Kubernetes.