Auf dieser Seite wird beschrieben, wie Sie Secure Socket Layer (SSL, jetzt Transport Layer Security, TLS) in Ihrer Anwendung verwenden, um Verbindungen zu Cloud SQL-Instanzen zu verschlüsseln.
Übersicht
Cloud SQL unterstützt den Verbindungsaufbau zu einer Instanz mit dem SSL/TLS-Protokoll. SSL/TLS-Verbindungen bieten eine Sicherheitsebene, da die Daten während der Übertragung zwischen Ihrem Client und der Datenbank in Ihrer Cloud SQL-Instanz verschlüsselt werden. Optional kann Ihre SSL/TLS-Verbindung die Serveridentität prüfen, indem das auf der Cloud SQL-Instanz installierte Serverzertifikat validiert wird, und die Clientidentität, indem das auf dem Client installierte Clientzertifikat validiert wird.
Serverzertifikate
Wenn Sie eine Instanz erstellen, wird in Cloud SQL automatisch ein Serverzertifikat erstellt und installiert, das von einer Zertifizierungsstelle signiert ist. Sie können das CA-Zertifikat auf den Clienthostcomputer herunterladen und damit die CA- und Server-Cloud SQL-Identität überprüfen. Optional können Sie die Art der Zertifizierungsstelle auswählen, die Cloud SQL zum Signieren des Serverzertifikats verwendet.
Hierarchien von Zertifizierungsstellen
In diesem Abschnitt werden die beiden Arten von Server-Zertifizierungsstellen beschrieben, die Sie für Ihre Cloud SQL-Instanzen auswählen können. Es stehen zwei Optionen zur Verfügung:
- Zertifizierungsstelle pro Instanz: Bei dieser Option signiert eine interne Zertifizierungsstelle, die jeder Cloud SQL-Instanz zugewiesen ist, das Serverzertifikat für diese Instanz.
Diese Zertifizierungsstellen werden von Cloud SQL erstellt und verwaltet. Wenn Sie eine pro Instanz gültige Zertifizierungsstelle auswählen möchten, geben Sie beim Erstellen der Instanz
GOOGLE_MANAGED_INTERNAL_CA
für die EinstellungserverCaMode
(Cloud SQL Admin API) oder das Flag--server-ca-mode
(gcloud CLI) an. Wenn Sie die Einstellung oder das Flag nicht angeben, ist dies der Standardwert für die Instanz. Gemeinsam genutzte Zertifizierungsstelle: Bei dieser Option wird eine Zertifizierungsstellenhierarchie mit einer Stamm-CA und untergeordneten Server-CAs verwendet. Die untergeordneten Server-CAs in einer Region signieren die Serverzertifikate und werden für alle Instanzen in der Region freigegeben. Cloud SQL hostet und verwaltet die Stamm-CA und die untergeordneten Server-CAs im Google Cloud Certificate Authority Service (CA Service). Cloud SQL kümmert sich auch um die Rotation der Stamm-CA und der untergeordneten Server-CAs und stellt öffentlich verfügbare Links zu den CA-Zertifikatsbundles zum Download bereit. Wenn Sie eine freigegebene Zertifizierungsstelle auswählen möchten, geben Sie beim Erstellen der Instanz
GOOGLE_MANAGED_CAS_CA
für die EinstellungserverCaMode
(Cloud SQL Admin API) oder das Flag--server-ca-mode
(gcloud CLI) an.
Nachdem Sie eine Instanz erstellt haben, können Sie mit dem Befehl gcloud sql instances describe
sehen, welche Zertifizierungshierarchie für eine Cloud SQL-Instanz konfiguriert ist.
Weitere Informationen finden Sie unter Instanzinformationen aufrufen.
In der folgenden Tabelle werden die beiden CA-Hierarchieoptionen verglichen.
Feature | Instanzspezifische Zertifizierungsstelle | Gemeinsam genutzte Zertifizierungsstelle |
---|---|---|
CA-Struktur | Separate Stammzertifizierungsstelle für jede Instanz | Stamm-CA und untergeordnete CAs, die für Instanzen in derselben Region freigegeben sind |
Kryptografische Attribute | RSA-2048-Bit-Schlüssel mit SHA256-Algorithmus | Elliptic Curve Digital Signature Algorithm (ECDSA) mit 256-Bit-Schlüssel mit SHA384-Algorithmus |
Gültigkeitsdauer der Zertifizierungsstelle | 10 Jahre | 25 Jahre für Stamm-CAs und 10 Jahre für untergeordnete CAs |
Gültigkeitsdauer des Serverzertifikats | 10 Jahre | 1 Jahr |
Vom Nutzer initiierte Rotation der Zertifizierungsstelle? | Ja | Nein. Die CA-Rotation wird von Cloud SQL verwaltet. |
Wird die Rotation des Serverzertifikats vom Nutzer initiiert? | Ja | Ja |
CA-Trust-Anchor für TLS-Verbindungen | Die eindeutige Zertifizierungsstelle pro Instanz ist der Trust Anchor für die entsprechende Instanz. | Die Stamm- und untergeordneten Zertifizierungsstellen sind die Trust Anchors für alle Instanzen in einer bestimmten Region. |
Serveridentitätsbestätigung | Durch die Überprüfung der Zertifizierungsstelle wird die Serveridentität überprüft, da jede Instanz eine eindeutige Zertifizierungsstelle hat. | Die Überprüfung des Hostnamens und der Zertifizierungsstelle ist für die Überprüfung der Serveridentität erforderlich, da Server-Zertifizierungsstellen für alle Instanzen gemeinsam genutzt werden. |
Feld „Subject Alternative Name“ (SAN) in Serverzertifikaten | Das SAN-Feld enthält den Hostnamen (DNS-Namen der Instanz) nur für Instanzen, für die Private Service Connect aktiviert ist. Der Hostname kann zur Überprüfung der Serveridentität verwendet werden. Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz herstellen und dabei den DNS-Namen als Hostnamen verwenden, müssen Sie die DNS-Auflösung einrichten. | Das SAN-Feld enthält den Hostnamen (DNS-Namen der Instanz) für alle Arten von Instanzen. Der Hostname kann zur Überprüfung der Serveridentität verwendet werden. Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz herstellen und dabei den DNS-Namen als Hostnamen verwenden, müssen Sie die DNS-Auflösung einrichten. |
Von Cloud SQL gehosteter per-Instanz-Zertifikatsaussteller
Diese CA-Hierarchie ist die Standardkonfiguration für den CA-Modus des Servers.
Cloud SQL erstellt beim Erstellen einer Instanz eine neue selbst signierte Server-Zertifizierungsstelle für jede Instanz.
Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode
auf GOOGLE_MANAGED_INTERNAL_CA
oder lassen Sie die Konfigurationseinstellung beim Erstellen der Instanz leer.
Das folgende Diagramm zeigt die CA-Hierarchie pro Instanz.
Von CA Service gehostete freigegebene Zertifizierungsstellen
Dieser Server-CA-Modus besteht aus einer Stamm-CA und untergeordneten Server-CAs in jeder Region. Die untergeordneten Server-CAs stellen Serverzertifikate aus und werden für alle Instanzen in der Region freigegeben. Cloud SQL kümmert sich um die Rotation der freigegebenen regionalen Server-CAs und stellt öffentlich zugängliche Links zum Herunterladen der CA-Zertifikatsbundles bereit.
Sie können eine Instanz so konfigurieren, dass sie eine Server-Zertifizierungsstellehierarchie verwendet, bei der die ausstellenden Zertifizierungsstellen für alle Instanzen in derselben Region freigegeben werden. Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode
beim Erstellen der Instanz auf GOOGLE_MANAGED_CAS_CA
.
Das folgende Diagramm zeigt die Hierarchie der freigegebenen Zertifizierungsstelle.
Rotation des Serverzertifikats
Cloud SQL bietet Möglichkeiten, das Serverzertifikat zu rotieren. So kann das neue Zertifikat nahtlos vor Ablauf des alten Zertifikats ersetzt werden.
Welcher Befehl zum Rotieren verwendet wird, hängt davon ab, ob Sie ein von einer Zertifizierungsstelle pro Instanz oder ein von der freigegebenen Zertifizierungsstelle ausgestelltes Serverzertifikat verwenden.
Etwa drei Monate vor Ablauf des Serverzertifikats für eine Cloud SQL-Instanz erhalten die Projektinhaber eine E-Mail von Cloud SQL, in der sie darüber informiert werden, dass die Zertifikatsrotation für diese Instanz begonnen hat. Die E-Mail enthält den Namen der Instanz und besagt, dass dem Projekt ein neues Serverzertifikat hinzugefügt wurde. Das vorhandene Serverzertifikat funktioniert weiterhin normal. Tatsächlich hat die Instanz während dieses Zeitraums zwei Serverzertifikate.
Laden Sie vor Ablauf des aktuellen Zertifikats die neue server-ca.pem
-Datei herunter, die die Zertifikatsinformationen für das aktuelle und das neue Serverzertifikat enthält. Aktualisieren Sie Ihre SQL Server-Clients so, dass die neue Datei verwendet wird. Dafür kopieren Sie sie auf alle SQL Server-Client-Hostcomputer und ersetzen die vorhandene Datei.
Nachdem alle SQL Server-Clients aktualisiert wurden, senden Sie einen Rotationsbefehl (für eine Instanz-CA) oder einen Rotationsbefehl (für eine freigegebene CA) an die Cloud SQL-Instanz, um zum neuen Serverzertifikat zu rotieren. Danach wird das alte Serverzertifikat nicht mehr erkannt und nur das neue Serverzertifikat kann verwendet werden.
Ablauf des SSL-Zertifikats
Standardmäßig verwenden Cloud SQL-Instanzen die Standardeinstellung GOOGLE_MANAGED_INTERNAL_CA
als serverCaMode
. Die SSL-Zertifikate haben eine Gültigkeitsdauer von zehn Jahren. Führen Sie vor Ablauf dieser Zertifikate eine CA-Rotation durch.
Bei Instanzen, die gemeinsame Zertifizierungsstellen verwenden (serverCaMode
ist auf GOOGLE_MANAGED_CAS_CA
festgelegt), beträgt die Gültigkeitsdauer der Serverzertifikate ein Jahr.
Führen Sie vor Ablauf die SSL-Zertifikatsrotation durch. Das Zertifikat der Stammzertifizierungsstelle hat eine Gültigkeitsdauer von 25 Jahren und das untergeordnete gemeinsame CA-Zertifikat eine Gültigkeitsdauer von 10 Jahren.
Die Rotation wird von Cloud SQL verwaltet.
Wenn ein Client so konfiguriert ist, dass die Zertifizierungsstelle oder der Hostname im Serverzertifikat überprüft wird, schlägt die Verbindung dieses Clients zu Cloud SQL-Instanzen mit abgelaufenen Serverzertifikaten fehl. Um Unterbrechungen von Clientverbindungen zu vermeiden, sollten Sie das Serverzertifikat vor Ablauf rotieren.
Unabhängig davon, ob Sie den CA-Servermodus pro Instanz oder den geteilten CA-Servermodus verwenden, können Sie die SSL-Konfiguration Ihrer Cloud SQL-Instanz jederzeit zurücksetzen.
Nächste Schritte
- Mehr über die Verwendung von verschlüsselten Verbindungen durch SQL Server erfahren