Ruotare Istanza gestita di SQL abilitata dalle credenziali gestite dal servizio Azure Arc (anteprima)
Questo articolo descrive come ruotare le credenziali gestite dal servizio per Istanza gestita di SQL abilitata da Azure Arc. I servizi dati Arc generano diverse credenziali gestite dal servizio, ad esempio certificati e account di accesso SQL usati per il monitoraggio, il backup/ripristino, la disponibilità elevata e così via. Queste credenziali sono considerate credenziali di risorse personalizzate gestite dai servizi dati di Azure Arc.
La rotazione delle credenziali gestite dal servizio è un'operazione attivata dall'utente avviata durante un problema di sicurezza o quando è necessaria una rotazione periodica per ragioni di conformità.
Limiti
Quando si ruotano le credenziali gestite dal servizio di istanza gestita, tenere presenti le limitazioni seguenti:
- I gruppi di failover di SQL Server non sono supportati.
- La rotazione pre-programmata automaticamente non è supportata.
- Le chiavi simmetriche DPAPI gestite dal servizio, keytab, gli account Active Directory e le credenziali TDE gestite dal servizio non sono inclusi in questa rotazione delle credenziali.
Livello Utilizzo generico
Durante la rotazione delle credenziali gestite dal servizio Istanza gestita di SQL per utilizzo generico, il pod Kubernetes dell'istanza gestita viene terminato e sottoposto a reprovisioning con credenziali ruotate. Questo processo causa un breve tempo di inattività durante la creazione del nuovo pod dell'istanza gestita. Per gestire l'interruzione, creare resilienza nell'applicazione, ad esempio una logica di ripetizione dei tentativi di connessione, per garantire un'interruzione minima. Per altre informazioni su come progettare la resilienza ed eseguire nuovi tentativi per i servizi di Azure, vedere Panoramica del pilastro dell'affidabilità.
Livello Business Critical
Durante la rotazione delle credenziali gestite dal servizio Istanza gestita di SQL business critical con più di una replica:
- I pod di replica secondaria vengono terminati e sottoposti a reprovisioning con le credenziali gestite dal servizio ruotate
- Dopo il reprovisioning delle repliche, l'elemento primario eseguire il failover in una replica di cui è stato eseguito il reprovisioning
- Il pod primario precedente viene terminato e sottoposto nuovamente a provisioning con le credenziali ruotate gestite dal servizio e diventa un elemento secondario
Si verifica un breve periodo di inattività al momento del failover.
Prerequisiti:
Prima di procedere con questo articolo, è necessario avere creato una risorsa di Istanza gestita di SQL abilitata da Azure Arc.
Come ruotare le credenziali gestite dal servizio in un'istanza gestita
Le credenziali gestite dal servizio sono associate a una generazione all'interno dell'istanza gestita. Per ruotare tutte le credenziali gestite dal servizio per un'istanza gestita, la generazione deve essere aumentata di 1.
Eseguire i comandi seguenti per ottenere la generazione corrente di credenziali gestite dal servizio da specifiche e creare la nuova generazione di credenziali gestite dal servizio. Questa azione attiva la rotazione delle credenziali gestite dal servizio.
rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) + 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'
managedCredentialsGeneration
identifica la generazione di destinazione per le credenziali gestite dal servizio. Le altre funzionalità, ad esempio la configurazione e la topologia di Kubernetes, rimangono invariate.
Come eseguire il rollback delle credenziali gestite dal servizio in un'istanza gestita
Nota
Il rollback è necessario quando la rotazione delle credenziali ha esito negativo. Il rollback alla generazione di credenziali precedente è supportato una sola volta a n-1, dove n indica la generazione corrente.
Se il rollback viene attivato mentre è in corso la rotazione delle credenziali e non è stato eseguito il reprovisioning di tutte le repliche, il completamento del rollback potrebbe richiedere circa 30 minuti per l'istanza gestita in uno stato Pronto.
Eseguire i due comandi seguenti per ottenere la generazione corrente di credenziali gestite dal servizio da specifiche e il rollback alla generazione precedente di credenziali gestite dal servizio:
rotateCredentialGeneration=$(($(kubectl get sqlmi <sqlmi-name> -o jsonpath='{.spec.update.managedCredentialsGeneration}' -n <namespace>) - 1))
kubectl patch sqlmi <sqlmi-name> --namespace <namespace> --type merge --patch '{ "spec": { "update": { "managedCredentialsGeneration": '$rotateCredentialGeneration'} } }'
L'attivazione del rollback equivale all'attivazione di una rotazione delle credenziali gestite dal servizio, ad eccezione del fatto che la generazione di destinazione è la generazione precedente e non crea una nuova generazione o credenziali.