Rotation von SQL Managed Instance mit durch vom Azure Arc-Dienst verwalteten Anmeldeinformationen (Vorschau)
In diesem Artikel wird beschrieben, wie die vom Dienst verwalteten Anmeldeinformationen für die von Azure Arc-aktivierte SQL Managed Instance rotiert werden können. Arc-Datendienste generieren verschiedene vom Dienst verwaltete Anmeldeinformationen wie Zertifikate und SQL-Logins, die für Überwachung, Sicherung/Wiederherstellung, Hochverfügbarkeit usw. verwendet werden. Diese Anmeldeinformationen gelten als benutzerdefinierte Ressourcenanmeldeinformationen, die von Azure Arc-Datendiensten verwaltet werden.
Die vom Dienst verwaltete Rotation von Anmeldeinformationen ist ein vom Benutzer ausgelöster Vorgang, den Sie bei einem Sicherheitsproblem oder wenn eine regelmäßige Rotation aus Compliance-Gründen erforderlich ist, initiieren.
Begrenzungen
Beachten Sie die folgenden Einschränkungen, wenn Sie Anmeldeinformationen für eine verwaltete Dienstinstanz rotieren:
- SQL Server-Failovergruppen werden nicht unterstützt.
- Automatisch geplante Rotation wird nicht unterstützt.
- Die vom Dienst verwalteten symmetrischen DPAPI-Schlüssel, Schlüsseltabellen, Active Directory-Konten und vom Dienst verwaltete TDE-Anmeldeinformationen werden nicht in diese Anmeldeinformationen einbezogen.
Universell
Während der Rotation der Anmeldeinformationen durch den universellen SQL Managed Instance-Dienst wird der Kubernetes-Pod der verwalteten Instanz beendet und mit den rotierten Anmeldeinformationen neu bereitgestellt. Dieser Vorgang verursacht eine kurze Ausfallzeit, da der neue verwaltete Instanz-Pod erstellt wird. Um diese Unterbrechung zu überwinden, müssen Sie Resilienz in Ihre Anwendung integrieren, z. B. Wiederholungslogik für Verbindungen, um eine minimale Unterbrechung zu gewährleisten. Lesen Sie Übersicht über die Zuverlässigkeitssäule für weitere Informationen zur Architektur der Ausfallsicherheit und die Wiederholungsanleitung für Azure-Dienste.
Tarif „Unternehmenskritisch“
Während der Rotation der vom Dienst für unternehmenskritische SQL Managed Instances verwalteten Anmeldeinformationen mit mehr als eineem Replikat:
- Die sekundären Replikat-Pods werden beendet und mit den rotierenden, vom Dienst verwalteten Anmeldeinformationen neu provisioniert
- Nachdem die Replikate wiederhergestellt sind, wird das primäre System auf ein wiederhergestelltes Replikat umgeschaltet
- Der vorherige primäre Pod wird beendet und mit den rotierenden, vom Dienst verwalteten Anmeldeinformationen neu bereitgestellt und wird zu einem sekundären Pod
Während des Failovers gibt es eine kurze Downtime.
Voraussetzungen:
Bevor Sie mit diesem Artikel fortfahren, müssen Sie über eine SQL Managed Instance-Ressource mit Azure Arc-Unterstützung verfügen.
Rotation von vom Dienst verwalteten Anmeldeinformationen in einer verwalteten Instanz
Vom Dienst verwaltete Anmeldeinformationen sind mit einer Generation innerhalb der verwalteten Instanz verbunden. Um alle vom Dienst verwalteten Anmeldeinformationen für eine verwaltete Instanz zu rotieren, muss die Generation um 1 erhöht werden.
Führen Sie die folgenden Befehle aus, um die aktuelle Generation von Anmeldeinformationen für den Dienst aus der Spezifikation abzurufen und die neue Generation von Anmeldeinformationen für den Dienst zu generieren. Diese Aktion löst eine vom Dienst verwaltete Rotation der Anmeldeinformationen aus.
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
kennzeichnet die Zielgeneration für dienstverwaltete Anmeldeinformationen. Die übrigen Funktionen wie die Konfiguration und die Kubernetestopologie bleiben unverändert.
Rollback von vom Dienst verwalteten Anmeldeinformationen in einer verwalteten Instanz ausführen
Hinweis
Ein Rollback ist erforderlich, wenn die Rotation der Anmeldeinformationen fehlschlägt. Das Rollback zu früheren Anmeldeinformationen wird nur einmal bis n-1 unterstützt, wobei n die aktuelle Generation ist.
Wenn das Rollback ausgelöst wird, während die Rotation der Anmeldeinformationen im Gange ist und nicht alle Replikate neu bereitgestellt wurden, kann es etwa 30 Minuten dauern, bis die verwaltete Instanz in den Zustand Bereit übergeht.
Führen Sie die folgenden beiden Befehle aus, um die aktuelle Generation der vom Dienst verwalteten Anmeldeinformationen aus der Spezifikation abzurufen und zur vorherigen Generation der vom Dienst verwalteten Anmeldeinformationen zurückzukehren:
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'} } }'
Das Auslösen eines Rollbacks ist dasselbe wie das Auslösen einer Rotation der vom Dienst verwalteten Anmeldeinformationen, mit dem Unterschied, dass die Zielgeneration die vorherige Generation ist und keine neue Generation oder Anmeldeinformationen erzeugt.