SQL Managed Instance roteren met door azure Arc beheerde referenties (preview)
In dit artikel wordt beschreven hoe u door de service beheerde referenties roteert voor SQL Managed Instance die is ingeschakeld door Azure Arc. Arc-gegevensservices genereren verschillende door de service beheerde referenties, zoals certificaten en SQL-aanmeldingen die worden gebruikt voor bewaking, back-up/herstel, hoge beschikbaarheid, enzovoort. Deze referenties worden beschouwd als aangepaste resourcereferenties die worden beheerd door Azure Arc-gegevensservices.
Door de service beheerde referentierotatie is een door de gebruiker geactiveerde bewerking die u start tijdens een beveiligingsprobleem of wanneer periodieke rotatie vereist is voor naleving.
Beperkingen
Houd rekening met de volgende beperkingen wanneer u een door de service beheerde referenties van een beheerd exemplaar roteert:
- SQL Server-failovergroepen worden niet ondersteund.
- Automatisch vooraf geplande rotatie wordt niet ondersteund.
- De door de service beheerde DPAPI-symmetrische sleutels, keytab, Active Directory-accounts en door de service beheerde TDE-referenties worden niet opgenomen in deze referentierotatie.
De categorie Algemeen gebruik
Tijdens het rouleren van door de service beheerde sql Managed Instance-referenties wordt de Kubernetes-pod van het beheerde exemplaar beëindigd en opnieuw ingericht met gerouleerde referenties. Dit proces veroorzaakt een korte hoeveelheid downtime wanneer de nieuwe pod van het beheerde exemplaar wordt gemaakt. Als u de onderbreking wilt afhandelen, moet u tolerantie inbouwen in uw toepassing, zoals verbindingslogica voor opnieuw proberen, om minimale onderbrekingen te garanderen. Lees overzicht van de betrouwbaarheidspijler voor meer informatie over het ontwerpen van tolerantie en richtlijnen voor opnieuw proberen voor Azure Services.
Bedrijfskritiek-laag
Tijdens Bedrijfskritiek door de sql Managed Instance-service beheerde referentierotatie met meer dan één replica:
- De secundaire replicapods worden beëindigd en opnieuw ingericht met de gerouleerde door de service beheerde referenties
- Nadat de replica's opnieuw zijn ingericht, voert de primaire failover uit naar een gereprovisioneerde replica
- De vorige primaire pod wordt beëindigd en opnieuw ingericht met de gerouleerde door de service beheerde referenties en wordt een secundaire
Er is een kort moment van downtime wanneer de failover plaatsvindt.
Vereisten:
Voordat u verdergaat met dit artikel, moet u een met SQL beheerd exemplaar hebben ingeschakeld door azure Arc-resource.
Door de service beheerde referenties roteren in een beheerd exemplaar
Door de service beheerde referenties worden gekoppeld aan een generatie binnen het beheerde exemplaar. Als u alle door de service beheerde referenties voor een beheerd exemplaar wilt roteren, moet de generatie met 1 worden verhoogd.
Voer de volgende opdrachten uit om de huidige door de service beheerde referenties op te halen op basis van specificaties en de nieuwe generatie door de service beheerde referenties te genereren. Met deze actie wordt door de service beheerde referentierotatie geactiveerd.
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'} } }'
Hiermee managedCredentialsGeneration
wordt de doelgeneratie geïdentificeerd voor door de service beheerde referenties. De rest van de functies, zoals configuratie en kubernetes-topologie, blijven hetzelfde.
Door de service beheerde referenties terugdraaien in een beheerd exemplaar
Notitie
Terugdraaien is vereist wanneer het rouleren van referenties mislukt. Terugdraaien naar vorige generatie van referenties wordt slechts één keer ondersteund voor n-1, waarbij n de huidige generatie is.
Als terugdraaien wordt geactiveerd terwijl de referentierotatie wordt uitgevoerd en alle replica's niet opnieuw zijn ingericht, kan het terugdraaien ongeveer 30 minuten duren voordat het beheerde exemplaar de status Gereed heeft.
Voer de volgende twee opdrachten uit om de huidige door de service beheerde referenties op te halen van specificatie en terug te draaien naar de vorige generatie door de service beheerde referenties:
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'} } }'
Het activeren van terugdraaien is hetzelfde als het activeren van een rotatie van door de service beheerde referenties, behalve dat de doelgeneratie vorige generatie is en geen nieuwe generatie of referenties genereert.