Condividi tramite


Aggiungere la crittografia etcd del Servizio di gestione delle chiavi a un cluster del servizio Azure Kubernetes

Questo articolo mostra come attivare la crittografia a riposo per i segreti del servizio Azure Kubernetes (AKS) in un archivio di valori chiave etcd, utilizzando l'insieme di credenziali delle chiavi di Azure e il plugin del Servizio di gestione delle chiavi (KMS). È possibile usare il plug-in KMS per:

  • Usare una chiave in un insieme di credenziali delle chiavi per la crittografia etcd.
  • Usare le proprie chiavi.
  • Fornire la crittografia a riposo per i segreti archiviati in etcd.
  • Ruotare le chiavi in un insieme di credenziali delle chiavi.

Per altre informazioni sull'uso del Server di gestione delle chiavi, vedere Uso di un provider del Server di gestione delle chiavi per la crittografia dei dati.

Prerequisiti

Avviso

A partire dal 15 settembre 2024, Konnectivity non è più supportato per gli insiemi di credenziali delle chiavi private per le nuove sottoscrizioni o le sottoscrizioni che non hanno usato in precedenza questa configurazione. Per le sottoscrizioni che attualmente usano questa configurazione o che l'hanno usata negli ultimi 60 giorni, il supporto continuerà fino a quando il servizio Azure Kubernetes versione 1.30 non raggiungerà la fine del ciclo di vita per il supporto della community.

Il Servizio di gestione delle chiavi supporta Konnectivity o API Server VNet Integration (anteprima) per gli insiemi di credenziali delle chiavi pubbliche.

Il Servizio di gestione delle chiavi supporta l'integrazione rete virtuale del server API (anteprima) per insiemi di credenziali delle chiavi sia privati che pubblici.

È possibile usare kubectl get po -n kube-system per verificare i risultati e mostrare che è in esecuzione un pod konnectivity-agent. Se un pod è in esecuzione, il cluster del servizio Azure Kubernetes sta usando Konnectivity. Quando si usa Integrazione di una rete virtuale in un server API, è possibile eseguire il az aks show -g -n comando per verificare che l'impostazione enableVnetIntegration sia impostata su true.

Limiti

Le limitazioni seguenti si applicano quando si integra la crittografia etcd del Servizio di gestione delle chiavi con il servizio Azure Kubernetes:

  • L'eliminazione della chiave, dell'insieme di credenziali delle chiavi o dell'identità associata non è supportata.
  • La crittografia etcd del Servizio di gestione delle chiavi non funziona con l'identità gestita assegnata dal sistema. I criteri di accesso dell'insieme di credenziali delle chiavi devono essere impostati prima che la funzionalità sia attivata. L'identità gestita assegnata dal sistema non è disponibile fino a quando non viene creato il cluster. Prendere in considerazione la dipendenza del ciclo.
  • Azure Key Vault con un'impostazione del firewall "consenti l'accesso pubblico da reti virtuali e indirizzi IP specifici" o "disabilita l'accesso pubblico" non è supportato perché blocca il traffico dal plug-in del Server di gestione delle chiavi all'insieme di credenziali delle chiavi.
  • Il numero massimo di segreti supportati da un cluster con il Servizio di gestione delle chiavi attivato è 2.000. Tuttavia, è importante notare che il Servizio di gestione delle chiavi v2 non è limitato da questa restrizione e può gestire un numero più elevato di segreti.
  • L'insieme di credenziali delle chiavi di Azure bring your own (BYO) da un altro tenant non è supportato.
  • Con il Servizio di gestione delle chiavi attivato, non è possibile modificare la modalità associata dell'insieme di credenziali delle chiavi (pubblica e privata). Per aggiornare una modalità dell'insieme di credenziali delle chiavi, è prima necessario disattivare il Servizio di gestione delle chiavi e quindi riattivarlo.
  • Se un cluster ha il Servizio di gestione delle chiavi attivato e ha un insieme di credenziali delle chiavi privato, deve usare il tunnel Integrazione rete virtuale per il server API (anteprima). Konnectivity non è supportato.
  • L'uso dell'API dei set di scalabilità di macchine virtuali per ridurre a zero i nodi del cluster comporta la deallocazione dei nodi.. Il cluster diventa quindi inattivo e diventa irreversibile.
  • Dopo aver disattivato il Servizio di gestione delle chiavi, non è possibile distruggere le chiavi. Se si eliminano le chiavi, il server API smette di funzionare.

Il Servizio di gestione delle chiavi supporta un insieme di credenziali delle chiavi pubblico o un insieme di credenziali delle chiavi privato.

Attivare il Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi pubblico

Le sezioni seguenti descrivono come attivare il Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi pubblico.

Creare un insieme di credenziali delle chiavi e una chiave pubblica

Avviso

L'eliminazione della chiave o dell'insieme di credenziali delle chiavi non è supportata e causa l'impossibilità di recuperare i segreti nel cluster.

Se è necessario ripristinare l'insieme di credenziali delle chiavi o la chiave, vedere Gestione del ripristino dell'insieme di credenziali delle chiavi di Azure con eliminazione morbida e protezione dalla cancellazione.

Creare un insieme di credenziali delle chiavi e una chiave per un insieme di credenziali delle chiavi pubbliche non RBAC

Usare az keyvault create per creare un insieme di credenziali delle chiavi senza usare il controllo degli accessi in base al ruolo di Azure (Azure RBAC):

az keyvault create --name MyKeyVault --resource-group MyResourceGroup

Usare az keyvault key create per creare una chiave:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Usare az keyvault key show per esportare l'ID chiave:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

Questo esempio archivia l'ID chiave in KEY_ID.

Creare un insieme di credenziali delle chiavi e una chiave per un insieme di credenziali delle chiavi pubbliche del controllo degli accessi in base al ruolo

Usare az keyvault create per creare un insieme di credenziali delle chiavi usando il controllo degli accessi in base al ruolo di Azure:

export KEYVAULT_RESOURCE_ID=$(az keyvault create --name MyKeyVault --resource-group MyResourceGroup  --enable-rbac-authorization true --query id -o tsv)

Assegnare a se stessi le autorizzazioni per creare una chiave:

az role assignment create --role "Key Vault Crypto Officer" --assignee-object-id $(az ad signed-in-user show --query id -o tsv) --assignee-principal-type "User" --scope $KEYVAULT_RESOURCE_ID

Usare az keyvault key create per creare una chiave:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

Usare az keyvault key show per esportare l'ID chiave:

export KEY_ID=$(az keyvault key show --name MyKeyName --vault-name MyKeyVault --query 'key.kid' -o tsv)
echo $KEY_ID

Questo esempio archivia l'ID chiave in KEY_ID.

Creare un'identità gestita assegnata dall'utente per un insieme di credenziali delle chiavi pubbliche

Creare un'identità gestita assegnata dall'utente usando az identity create:

az identity create --name MyIdentity --resource-group MyResourceGroup

Usare az identity show per ottenere l'ID oggetto Identity:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Nell'esempio precedente viene archiviato il valore dell'ID oggetto Identity in IDENTITY_OBJECT_ID.

Usare az identity show per ottenere l'ID risorsa di identità:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

In questo esempio viene archiviato il valore dell'ID risorsa identity in IDENTITY_RESOURCE_ID.

Assegnare autorizzazioni per decrittografare e crittografare un insieme di credenziali delle chiavi pubbliche

Le sezioni seguenti descrivono come assegnare le autorizzazioni di decrittografia e crittografia per un insieme di credenziali delle chiavi private.

Assegnare autorizzazioni per un insieme di credenziali delle chiavi pubbliche non RBAC

Se l'insieme di credenziali delle chiavi non è impostato con --enable-rbac-authorization, è possibile usare az keyvault set-policy per creare criteri dell'insieme di credenziali delle chiavi di Azure.

az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Assegnare autorizzazioni per un insieme di credenziali delle chiavi pubbliche di controllo degli accessi in base al ruolo

Se l'insieme di credenziali delle chiavi è impostato con --enable-rbac-authorization, assegnare il ruolo utente Crypto dell'insieme di credenziali delle chiavi per concedere le autorizzazioni di decrittografia e crittografia.

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Creare un cluster del servizio Azure Kubernetes con un insieme di credenziali delle chiavi pubbliche e attivare la crittografia etcd del Servizio di gestione delle chiavi

Per attivare la crittografia etcd del Servizio di gestione delle chiavi, creare un cluster del servizio Azure Kubernetes usando il comando creare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-vault-network-accesse --azure-keyvault-kms-key-id con az aks create.

az aks create \
    --name myAKSCluster \
    --resource-group MyResourceGroup \
    --assign-identity $IDENTITY_RESOURCE_ID \
    --enable-azure-keyvault-kms \
    --azure-keyvault-kms-key-vault-network-access "Public" \
    --azure-keyvault-kms-key-id $KEY_ID \
    --generate-ssh-keys

Aggiornare un cluster del servizio Azure Kubernetes esistente per attivare la crittografia etcd del Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi pubblico

Per attivare la crittografia etcd del Servizio di gestione delle chiavi per un cluster esistente, usare il comandoaggiornare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-vault-network-accesse --azure-keyvault-kms-key-id con az-aks-update.

az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $KEY_ID

Usare il comando seguente per aggiornare tutti i segreti. Se non si esegue questo comando, i segreti creati in precedenza non vengono più crittografati. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Ruotare le chiavi esistenti in un insieme di credenziali delle chiavi pubbliche

Dopo aver modificato l'ID chiave (modificando il nome della chiave o la versione della chiave), è possibile usare il comando aggiornare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-vault-network-access, and --azure-keyvault-kms-key-id con az-aks-update per ruotare le chiavi esistenti nel Servizio di gestione delle chiavi.

Avviso

Ricordarsi di aggiornare tutti i segreti dopo la rotazione delle chiavi. Se non si aggiornano tutti i segreti, i segreti sono inaccessibili se le chiavi create in precedenza non esistono o non funzionano più.

Il Server di gestione delle chiavi usa 2 chiavi contemporaneamente. Dopo la prima rotazione della chiave, è necessario assicurarsi che le chiavi precedenti e nuove siano valide (non scadute) fino alla rotazione successiva della chiave. Dopo la seconda rotazione della chiave, la chiave meno recente può essere rimossa/impostata come scaduta in modo sicuro

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-vault-network-access "Public" --azure-keyvault-kms-key-id $NEW_KEY_ID 

Usare il comando seguente per aggiornare tutti i segreti. Se non si esegue questo comando, i segreti creati in precedenza vengono comunque crittografati con la chiave precedente. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Attivare il Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi privato

Se si attiva il Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi privato, il servizio Azure Kubernetes crea automaticamente un endpoint privato e un collegamento privato nel gruppo di risorse del nodo. All'insieme di credenziali delle chiavi viene aggiunta una connessione endpoint privato con il cluster del servizio Azure Kubernetes.

Avviso

Il Server di gestione delle chiavi supporta solo l'Integrazione rete virtuale per il server API (anteprima) per l'insieme di credenziali delle chiavi private.

Creare un insieme di credenziali delle chiavi e una chiave privati

Avviso

L'eliminazione della chiave o dell'insieme di credenziali delle chiavi non è supportata e causa l'impossibilità di recuperare i segreti nel cluster.

Se è necessario ripristinare l'insieme di credenziali delle chiavi o la chiave, vedere Gestione del ripristino dell'insieme di credenziali delle chiavi di Azure con eliminazione morbida e protezione dalla cancellazione.

Usare az keyvault create per creare un insieme di credenziali delle chiavi privato:

az keyvault create --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Usare az keyvault key create per creare una chiave:

az keyvault key create --name MyKeyName --vault-name MyKeyVault

La creazione o l'aggiornamento di chiavi in un insieme di credenziali delle chiavi privato che non dispone di un endpoint privato non è supportato. Per informazioni su come gestire gli insiemi di credenziali delle chiavi private, vedere Integrare un insieme di credenziali delle chiavi usando il collegamento privato di Azure.

Creare un'identità gestita assegnata dall'utente per un insieme di credenziali delle chiavi privato

Creare un'identità gestita assegnata dall'utente usando az identity create:

az identity create --name MyIdentity --resource-group MyResourceGroup

Usare az identity show per ottenere l'ID oggetto Identity:

IDENTITY_OBJECT_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'principalId' -o tsv)
echo $IDENTITY_OBJECT_ID

Nell'esempio precedente viene archiviato il valore dell'ID oggetto Identity in IDENTITY_OBJECT_ID.

Usare az identity show per ottenere l'ID risorsa di identità:

IDENTITY_RESOURCE_ID=$(az identity show --name MyIdentity --resource-group MyResourceGroup --query 'id' -o tsv)
echo $IDENTITY_RESOURCE_ID

In questo esempio viene archiviato il valore dell'ID risorsa identity in IDENTITY_RESOURCE_ID.

Assegnare autorizzazioni per decrittografare e crittografare un insieme di credenziali delle chiavi privato

Le sezioni seguenti descrivono come assegnare le autorizzazioni di decrittografia e crittografia per un insieme di credenziali delle chiavi private.

Assegnare autorizzazioni per un insieme di credenziali delle chiavi private non RBAC

Nota

Quando si usa un insieme di credenziali delle chiavi privato, il servizio Azure Kubernetes non può convalidare le autorizzazioni dell'identità. Verificare che all'identità sia stata concessa l'autorizzazione per accedere all'insieme di credenziali delle chiavi prima di abilitare il Servizio di gestione delle chiavi.

Se l'insieme di credenziali delle chiavi non è impostato con --enable-rbac-authorization, è possibile usare az keyvault set-policy per creare criteri dell'insieme di credenziali delle chiavi in Azure:

az keyvault set-policy --name MyKeyVault --key-permissions decrypt encrypt --object-id $IDENTITY_OBJECT_ID

Assegnare autorizzazioni per un insieme di credenziali delle chiavi private del controllo degli accessi in base al ruolo

Se l'insieme di credenziali delle chiavi è impostato con --enable-rbac-authorization, assegnare un ruolo Controllo degli accessi in base al ruolo di Azure che includa le autorizzazioni di decrittografia e crittografia:

az role assignment create --role "Key Vault Crypto User" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Per gli insiemi di credenziali delle chiavi private, è necessario il ruolo Collaboratore dell’insieme di credenziali delle chiavi per creare un collegamento privato tra l'insieme di credenziali delle chiavi private e il cluster.

az role assignment create --role "Key Vault Contributor" --assignee-object-id $IDENTITY_OBJECT_ID --assignee-principal-type "ServicePrincipal" --scope $KEYVAULT_RESOURCE_ID

Creare un cluster del servizio Azure Kubernetes con un insieme di credenziali delle chiavi privato e attivare la crittografia etcd del Servizio di gestione delle chiavi

Per attivare la crittografia etcd del Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi privato, creare un cluster del servizio Azure Kubernetes usando il comando creare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-id, --azure-keyvault-kms-key-vault-network-access e --azure-keyvault-kms-key-vault-resource-id con az-aks-create.

az aks create \
    --name myAKSCluster \
    --resource-group MyResourceGroup \
    --assign-identity $IDENTITY_RESOURCE_ID \
    --enable-azure-keyvault-kms \
    --azure-keyvault-kms-key-id $KEY_ID \
    --azure-keyvault-kms-key-vault-network-access "Private" \
    --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID \
    --generate-ssh-keys

Aggiornare un cluster del servizio Azure Kubernetes esistente per attivare la crittografia etcd del Servizio di gestione delle chiavi per un insieme di credenziali delle chiavi privato

Per attivare la crittografia etcd del Servizio di gestione delle chiavi in un cluster esistente con un insieme di credenziali delle chiavi privato, usare il comando aggiornare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-id, --azure-keyvault-kms-key-vault-network-access e --azure-keyvault-kms-key-vault-resource-id con az-aks-update.

az aks update --name myAKSCluster --resource-group MyResourceGroup --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $KEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Usare il comando seguente per aggiornare tutti i segreti. Se non si esegue questo comando, i segreti creati in precedenza non vengono crittografati. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Ruotare le chiavi esistenti in un insieme di credenziali delle chiavi privato

Dopo aver modificato l'ID chiave (modificando il nome della chiave o la versione della chiave), è possibile usare il comando aggiornare az aks. È possibile usare i parametri --enable-azure-keyvault-kms, --azure-keyvault-kms-key-id, --azure-keyvault-kms-key-vault-network-access e --azure-keyvault-kms-key-vault-resource-id con az-aks-update per ruotare le chiavi esistenti del Servizio di gestione delle chiavi.

Avviso

Ricordarsi di aggiornare tutti i segreti dopo la rotazione delle chiavi. Se non si aggiornano tutti i segreti, i segreti sono inaccessibili se le chiavi create in precedenza non esistono o non funzionano più.

Dopo aver ruotato la chiave, la chiave precedente (key1) viene ancora memorizzata nella cache e non deve essere eliminata. Se si desidera eliminare immediatamente la chiave precedente (key1), è necessario ruotare la chiave due volte. Vengono quindi memorizzati nella cache key2 e key3 e key1 può essere eliminato senza influire sul cluster esistente.

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Usare il comando seguente per aggiornare tutti i segreti. Se non si aggiornano tutti i segreti, i segreti creati in precedenza vengono crittografati con la chiave precedente. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi, o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Aggiornare una modalità insieme di credenziali delle chiavi

Nota

Per modificare un insieme di credenziali delle chiavi diverso con una modalità diversa (pubblica o privata), è possibile eseguire az aks update direttamente. Per modificare la modalità di un insieme di credenziali delle chiavi collegato, è prima necessario disattivare il Servizio di gestione delle chiavi e quindi attivarlo di nuovo, usando i nuovi ID dell'insieme di credenziali delle chiavi.

Le sezioni seguenti descrivono come eseguire la migrazione di un insieme di credenziali delle chiavi pubbliche collegato, alla modalità privata. Questi passaggi possono essere usati anche per la migrazione da privato a pubblico.

Disattivare il Servizio di gestione delle chiavi nel cluster

Disattivare il Servizio di gestione delle chiavi in un cluster esistente e rilasciare l'insieme di credenziali delle chiavi:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Usare il comando seguente per aggiornare tutti i segreti. Se non si esegue questo comando, i segreti creati in precedenza vengono comunque crittografati con la chiave precedente. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Modificare la modalità dell'insieme di credenziali delle chiavi

Aggiornare l'insieme di credenziali delle chiavi da pubblico a privato:

az keyvault update --name MyKeyVault --resource-group MyResourceGroup --public-network-access Disabled

Per eseguire la migrazione da privato a pubblico impostare --public-network-access su Enabled nel comando precedente.

Attivare il Servizio di gestione delle chiavi per il cluster, usando l'insieme di credenziali delle chiavi aggiornato

Attivare il Servizio di gestione delle chiavi usando l'insieme di credenziali delle chiavi privato aggiornato:

az aks update --name myAKSCluster --resource-group MyResourceGroup  --enable-azure-keyvault-kms --azure-keyvault-kms-key-id $NewKEY_ID --azure-keyvault-kms-key-vault-network-access "Private" --azure-keyvault-kms-key-vault-resource-id $KEYVAULT_RESOURCE_ID

Dopo aver configurato il Servizio di gestione delle chiavi, è possibile attivare le impostazioni di diagnostica per l'insieme di credenziali delle chiavi per controllare i logdi crittografia.

Disattivare il Servizio di gestione delle chiavi

Prima di disattivare il Servizio di gestione delle chiavi, è possibile usare il comando seguente dell'interfaccia della riga di comando di Azure, per verificare se il Servizio di gestione delle chiavi è attivato:

az aks list --query "[].{Name:name, KmsEnabled:securityProfile.azureKeyVaultKms.enabled, KeyId:securityProfile.azureKeyVaultKms.keyId}" -o table

Se i risultati confermano che il Servizio di gestione delle chiavi è attivo, eseguire il comando seguente per disattivare il Servizio di gestione delle chiavi nel cluster:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Usare il comando seguente per aggiornare tutti i segreti. Se non si esegue questo comando, i segreti creati in precedenza vengono comunque crittografati con la chiave precedente e le autorizzazioni di crittografia e decrittografia per l'insieme di credenziali delle chiavi sono ancora necessarie. Per i cluster di dimensioni maggiori, è consigliabile suddividere i segreti in base allo spazio dei nomi, o creare uno script di aggiornamento.

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Supporto del Servizio di gestione delle chiavi v2

A partire dal servizio Azure Kubernetes versione 1.27, l'attivazione della funzionalità del Servizio di gestione delle chiavi configura il Servizio di gestione delle chiavi v2. Con il Servizio di gestione delle chiavi v2, non vi è il limite di 2.000 segreti supportati dalle versioni precedenti. Per altre informazioni, vedere Miglioramenti del Servizio di gestione delle chiavi V2.

Eseguire la migrazione al Servizio di gestione delle chiavi v2

Se la versione del cluster è precedente alla 1.27 e si è già attivato il Server di gestione delle chiavi, l'aggiornamento alla versione del cluster 1.27 o successive è bloccato. Per eseguire la migrazione al Servizio di gestione delle chiavi v2, seguire i seguenti passaggi:

  1. Disattivare il Servizio di gestione delle chiavi nel cluster.
  2. Eseguire la migrazione dell'archiviazione.
  3. Aggiornare il cluster alla versione 1.27 o successiva.
  4. Attivare il Servizio di gestione delle chiavi nel cluster.
  5. Eseguire la migrazione dell'archiviazione.

Disattivare il Servizio di gestione delle chiavi per eseguire la migrazione dell'archiviazione

Per disattivare il Servizio di gestione delle chiavi in un cluster esistente, usare il az aks update comando con l'argomento --disable-azure-keyvault-kms:

az aks update --name myAKSCluster --resource-group MyResourceGroup --disable-azure-keyvault-kms

Eseguire la migrazione dell'archiviazione

Per aggiornare tutti i segreti, usare il kubectl get secrets comando con l'argomento --all-namespaces:

kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Aggiornare il cluster del servizio Azure Kubernetes

Per aggiornare un cluster del servizio Azure Kubernetes, usare il az aks upgrade comando. Impostare la versione su 1.27.x o versione successiva usando l'argomento --kubernetes-version.

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version <AKS version>

Ecco un esempio:

az aks upgrade --resource-group myResourceGroup --name myAKSCluster --kubernetes-version 1.27.1

Attivare il Servizio di gestione delle chiavi dopo la migrazione dell'archiviazione

È possibile attivare nuovamente la funzionalità del Servizio di gestione delle chiavi nel cluster per crittografare i segreti. Successivamente, il cluster del servizio Azure Kubernetes usa il Servizio di gestione delle chiavi v2. Se non si vuole eseguire la migrazione al Servizio di gestione delle chiavi v2, è possibile creare un nuovo cluster versione 1.27 o successiva con il Servizio di gestione delle chiavi attivato.

Eseguire la migrazione dell'archiviazione per il Servizio di gestione delle chiavi v2

Per crittografare nuovamente tutti i segreti nel Servizio di gestione delle chiavi v2, usare il kubectl get secrets comando con l'argomento --all-namespaces:

kubectl get secrets --all-namespaces -o json | kubectl replace -f -