Ruotare le Istanza gestita di SQL abilitate dalle credenziali gestite dal servizio Azure Arc (anteprima)

Questo articolo descrive come ruotare le credenziali gestite dal servizio per Istanza gestita di SQL abilitate 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 la 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 preprogrammata automaticamente non è supportata.
  • Le chiavi simmetriche DPAPI gestite dal servizio, il keytab, gli account active directory e le credenziali TDE gestite dal servizio non sono incluse in questa rotazione delle credenziali.

Livello Utilizzo generico

Durante l'utilizzo generico Istanza gestita di SQL rotazione delle credenziali gestite dal servizio, il pod Kubernetes dell'istanza gestita viene terminato e sottoposto a nuovo provisioning 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 la logica di ripetizione dei tentativi di connessione, per garantire un'interruzione minima. Per altre informazioni su come progettare resilienza e indicazioni sui nuovi tentativi per i servizi di Azure, vedere Panoramica del pilastro affidabilità.

Livello Business Critical

Durante il business critical Istanza gestita di SQL rotazione delle credenziali gestite dal servizio con più repliche:

  • I pod di replica secondaria vengono terminati e sottoposto a nuovo provisioning con le credenziali gestite dal servizio ruotate
  • Dopo il reprovisioning delle repliche, il failover primario verrà eseguito in una replica di cui è stato eseguito il provisioning
  • Il pod primario precedente viene terminato e sottoposto nuovamente a provisioning con le credenziali gestite dal servizio ruotate e diventa un database secondario

Si verifica un breve momento di inattività quando si verifica il failover.

Prerequisiti:

Prima di procedere con questo articolo, è necessario avere un Istanza gestita di SQL abilitato dalla risorsa di Azure Arc creata.

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 generare 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 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 precedenti è supportato una sola volta a n-1, dove n è la generazione corrente.

Se il rollback viene attivato mentre è in corso la rotazione delle credenziali e tutte le repliche non sono state riprovisionate, il rollback potrebbe richiedere circa 30 minuti per il completamento dell'istanza gestita in uno stato Pronto .

Eseguire i due comandi seguenti per ottenere la generazione corrente di credenziali gestite dal servizio da specifiche e 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 genera una nuova generazione o credenziali.