Auf dieser Seite wird beschrieben, wie Sie Secure Socket Layer (SSL), jetzt Transport Layer Security (TLS), von Ihrer Anwendung aus verwenden können, um Verbindungen zu Cloud SQL-Instanzen zu verschlüsseln.
Übersicht
Cloud SQL unterstützt die Verbindung zu einer Instanz über das SSL/TLS-Protokoll. SSL/TLS-Verbindungen bieten eine zusätzliche Sicherheitsebene, indem sie die Datenübertragung zwischen Ihrem Client und der Datenbank in Ihrer Cloud SQL-Instanz verschlüsseln. Optional kann Ihre SSL/TLS-Verbindung die Serveridentität überprüfen, indem sie das auf der Cloud SQL-Instanz installierte Serverzertifikat validiert, und die Clientidentität überprüfen, indem sie das auf dem Client installierte Clientzertifikat validiert.
Serverzertifikate
Wenn Sie eine Instanz erstellen, erstellt und installiert Cloud SQL automatisch ein Serverzertifikat, das von einer Zertifizierungsstelle (Certificate Authority, CA) signiert ist. Sie können das CA-Zertifikat auf den Clienthostcomputer herunterladen und damit die Zertifizierungsstelle und Server-Cloud SQL-Identität überprüfen. Optional können Sie den Typ der CA auswählen, die Cloud SQL zum Signieren des Serverzertifikats verwendet.
Hierarchien von Zertifizierungsstellen
In diesem Abschnitt werden die drei Arten von Serverzertifizierungsstellen (CA) beschrieben, die Sie für Ihre Cloud SQL-Instanzen auswählen können. Es gibt drei Optionen:
Zertifizierungsstelle pro Instanz: Bei dieser Option signiert eine interne Zertifizierungsstelle, die jeder Cloud SQL-Instanz zugeordnet ist, das Serverzertifikat für diese Instanz. Cloud SQL erstellt und verwaltet diese Zertifizierungsstellen. Wenn Sie eine Zertifizierungsstelle pro Instanz auswählen möchten, wählen Sie Von Google verwaltete interne Zertifizierungsstelle (Google Cloud Konsole) aus oder geben Sie
GOOGLE_MANAGED_INTERNAL_CAfür die EinstellungserverCaMode(Cloud SQL Admin API) oder das Flag--server-ca-mode(gcloud CLI) an, wenn Sie die Instanz erstellen. Wenn Sie die Einstellung oder das Flag beim Erstellen einer Instanz nicht angeben, ist diese Option der Standard wert für die Instanz. Sie können eine Instanz nicht so aktualisieren, dass sie die Option „Zertifizierungsstelle pro Instanz“ verwendet, wenn die Instanz für die Verwendung einer gemeinsamen oder kundenverwalteten Zertifizierungsstelle konfiguriert ist.Gemeinsame Zertifizierungsstelle: Bei dieser Option wird eine CA-Hierarchie verwendet, die aus einer Stammzertifizierungsstelle und untergeordneten Serverzertifizierungsstellen besteht. Die untergeordneten Serverzertifizierungsstellen in einer Region signieren die Serverzertifikate und werden von allen Instanzen in der Region gemeinsam genutzt. Die Verwendung einer gemeinsamen CA-Hierarchie ist hilfreich, wenn Sie die Anzahl der Instanzen in einer Region erhöhen, da Sie keine eindeutigen Zertifizierungsstellen für einzelne Instanzen verwalten müssen. Wenn Sie zu einer gemeinsamen Zertifizierungsstelle (
GOOGLE_MANAGED_CAS_CA) wechseln , können Sie ein einzelnes regionales CA-Bundle für alle Ihre Instanzen in der Region verwenden, was die clientseitige Konfiguration vereinfachen kann. Cloud SQL hostet und verwaltet die Stamm Zertifizierungsstelle und die untergeordneten Serverzertifizierungsstellen im Google Cloud Certificate Authority Service (CA Service). Cloud SQL übernimmt auch die Rotation der Stammzertifizierungsstelle und der untergeordneten Serverzertifizierungsstellen und stellt öffentlich verfügbare Links zum Herunterladen der CA-Zertifikatspakete bereit. Wenn Sie eine gemeinsame Zertifizierungsstelle auswählen möchten, geben SieGOOGLE_MANAGED_CAS_CAfür dieserverCaModeEinstellung (Cloud SQL Admin API) oder das--server-ca-modeFlag (gcloud CLI) an, wenn Sie die Instanz erstellen oder bearbeiten. Sie können eine vorhandene Instanz so aktualisieren, dass sie eine gemeinsame CA-Hierarchie verwendet wenn Sie entweder die Option „Zertifizierungsstelle pro Instanz“ oder „Kundenverwaltete Zertifizierungsstelle“ verwenden.Kundenverwaltete Zertifizierungsstelle: Bei dieser Option erstellen und verwalten Sie Ihre eigene CA-Hierarchie. Wählen Sie diese Option aus, wenn Sie Ihre eigenen Zertifizierungsstellen und Zertifikate verwalten möchten. Mit einer kundenverwalteten Zertifizierungsstelle (
CUSTOMER_MANAGED_CAS_CA) können Sie Ihre eigene CA-Hierarchie und Rotationsrichtlinien mit CA Service verwalten. Diese Konfiguration bietet Ihnen mehr Kontrolle und hilft Ihnen, Complianceanforderungen zu erfüllen. Wenn Sie eine kundenverwaltete Zertifizierungsstelle auswählen möchten, müssen Sie einen CA-Pool und eine Zertifizierungsstelle in CA Service erstellen. Geben Sie in Cloud SQL den CA-Pool undCUSTOMER_MANAGED_CAS_CAfür die EinstellungserverCaMode(Cloud SQL Admin API) oder das Flag--server-ca-mode(gcloud CLI) an, wenn Sie die Instanz erstellen oder bearbeiten. Sie können eine vorhandene Instanz so aktualisieren, dass sie eine kundenverwaltete CA-Hierarchie verwendet wenn Sie entweder die Option „Zertifizierungsstelle pro Instanz“ oder „Gemeinsame Zertifizierungsstelle“ verwenden.
Nachdem Sie eine Instanz erstellt oder aktualisiert haben, können Sie sehen, welche CA-Hierarchie für eine Cloud SQL-Instanz konfiguriert ist, indem Sie den gcloud sql instances describe Befehl oder in der Google Cloud Konsole verwenden.
Weitere Informationen finden Sie unter Instanzinformationen ansehen.
In der folgenden Tabelle werden die drei Optionen für die CA-Hierarchie verglichen.
| Feature | Zertifizierungsstelle pro Instanz | Gemeinsame Zertifizierungsstelle | Kundenverwaltete Zertifizierungsstelle |
|---|---|---|---|
| CA-Struktur | Separate Zertifizierungsstelle für jede Instanz | Stammzertifizierungsstelle und untergeordnete Zertifizierungsstellen, die von allen Instanzen in derselben Region gemeinsam genutzt werden | Zertifizierungsstellenhierarchie, die Sie erstellen und verwalten |
| Kryptografische Attribute | RSA-2048-Bit-Schlüssel mit SHA256-Algorithmus | Elliptic Curve Digital Signature Algorithm (ECDSA) mit 256-Bit-Schlüssel und SHA384-Algorithmus | Elliptic Curve Digital Signature Algorithm (ECDSA) mit 256-Bit-Schlüssel und SHA384-Algorithmus |
| Gültigkeitsdauer der Zertifizierungsstelle | 10 Jahre | 25 Jahre für die Stammzertifizierungsstelle und 10 Jahre für untergeordnete Zertifizierungsstellen | Konfigurierbar * |
| Gültigkeitsdauer des Serverzertifikats | 10 Jahre | 1 Jahr | 1 Jahr** |
| Vom Nutzer initiierte Rotation der Zertifizierungsstelle? | Ja | Nein. Die CA-Rotation wird von Cloud SQL verwaltet. | Ja |
| Vom Nutzer initiierte Rotation des Serverzertifikats? | Ja | Ja | Ja |
| Automatische Rotation des Serverzertifikats? | Nein | Ja | Ja |
| Zertifizierungsstellen-Trust-Anchor für TLS-Verbindungen | Die eindeutige Zertifizierungsstelle pro Instanz ist der Trust-Anchor für die entsprechende Instanz. | Die Stammzertifizierungsstelle und die untergeordneten Zertifizierungsstellen sind die Trust-Anchors für alle Instanzen in einer bestimmten Region. | Die von Ihnen erstellten und verwalteten Zertifizierungsstellen sind die Trust-Anchors. |
| Überprüfung der Serveridentität | Durch die Überprüfung der Zertifizierungsstelle wird die Serveridentität überprüft, da jede Instanz hat eine eindeutige Zertifizierungsstelle. | Für die Überprüfung der Serveridentität ist die Überprüfung des Hostnamens zusammen mit der Überprüfung der Zertifizierungsstelle erforderlich, da Serverzertifizierungsstellen von allen Instanzen gemeinsam genutzt werden. | Auch wenn die Zertifizierungsstelle nicht von allen Instanzen gemeinsam genutzt wird, sollten Sie den Hostnamen zusammen mit der Zertifizierungsstelle überprüfen. |
| Feld „Alternativer Antragstellername“ (Subject Alternative Name, SAN) in Serverzertifikaten | Das Feld „Alternativer Antragstellername“ enthält den Hostnamen (DNS-Name 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 mit dem DNS-Namen als Hostnamen herstellen, müssen Sie die DNS-Auflösung einrichten. | Das Feld „Alternativer Antragstellername“ enthält den Hostnamen (DNS-Name 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 mit dem DNS-Namen als Hostnamen herstellen, müssen Sie die DNS-Auflösung einrichten. | Das Feld „Alternativer Antragstellername“ enthält den Hostnamen (DNS-Name der Instanz) für alle Arten von Instanzen. Der Hostname kann zur Überprüfung der Serveridentität verwendet werden. |
| Unterstützung für die Cloud SQL Auth-Proxy-Version | Unterstützt alle Versionen des Cloud SQL Auth-Proxys, Version 1 und höher. | Erfordert Cloud SQL Auth-Proxy Version 2.13.0 oder höher. | Erfordert Cloud SQL Auth-Proxy Version 2.14.3 oder höher. |
| Einschränkungen für Dienstverbindungen | Keine |
Unterstützt keine Verbindungen von den folgenden Google Cloud
Diensten:
|
Unterstützt keine Verbindungen von den folgenden Google Cloud
Diensten:
|
* Bei der Option „Kundenverwaltete Zertifizierungsstelle“ beträgt die Standardgültigkeitsdauer eines CA-Zertifikats in CA Service 10 Jahre. Sie können eine andere Gültigkeitsdauer für Ihre CA-Zertifikate konfigurieren. Eine kürzere Gültigkeitsdauer für die Zertifizierungsstelle erfordert möglicherweise häufigere CA-Rotationen. Eine Gültigkeitsdauer von weniger als einem Jahr kann sich auf die Gültigkeitsdauer Ihrer Serverzertifikate auswirken. Weitere Informationen finden Sie unter Zertifizierungsstellen-Rotation verwalten.
** Bei der Option „Kundenverwaltete Zertifizierungsstelle“ beträgt die Standardgültigkeitsdauer eines Serverzertifikats ein Jahr. Wenn Sie jedoch eine Gültigkeitsdauer von weniger als einem Jahr für Ihr CA-Zertifikat konfigurieren, hat Ihr Serverzertifikat eine kürzere Gültigkeitsdauer. Weitere Informationen zum Konfigurieren der Gültigkeitsdauer Ihres CA-Zertifikats beim Erstellen finden Sie unter CA-Zertifikateinstellungen und Stammzertifizierungsstelle erstellen.
Von Cloud SQL gehostete Zertifizierungsstelle pro Instanz
Die CA-Hierarchie pro Instanz ist die Standardkonfiguration für den Serverzertifizierungsstellenmodus, wenn Sie eine Instanz mit der gcloud CLI, der Cloud SQL Admin API oder Terraform erstellen.
Cloud SQL erstellt für jede Instanz eine neue selbstsignierte Serverzertifizierungsstelle, wenn Sie die Instanz erstellen.
Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode auf GOOGLE_MANAGED_INTERNAL_CA, wenn Sie die Instanz erstellen.
Sie können die serverCaMode
Konfigurationseinstellung entweder mit der Cloud SQL Admin API oder der gcloud CLI nicht angeben
oder in der Konsole die Option Von Google verwaltete interne Zertifizierungsstelle auswählen. Google Cloud
Sie können serverCaMode einer Instanz, die eine gemeinsame oder kundenverwaltete CA-Hierarchie verwendet, nicht so aktualisieren, dass sie die CA-Hierarchie pro Instanz verwendet.
Das folgende Diagramm zeigt die CA-Hierarchie pro Instanz.
Von CA Service gehostete gemeinsame Zertifizierungsstellen
Dieser Serverzertifizierungsstellenmodus besteht aus einer Stammzertifizierungsstelle und untergeordneten Serverzertifizierungsstellen in jeder Region. Die untergeordneten Serverzertifizierungsstellen stellen Serverzertifikate aus und werden von allen Instanzen in der Region gemeinsam genutzt. Cloud SQL übernimmt die Rotation der gemeinsamen regionalen Serverzertifizierungsstellen und stellt öffentlich verfügbare Links zum Herunterladen der CA-Zertifikatspakete bereit.
Wenn Sie den Modus „Gemeinsame Zertifizierungsstelle“ verwenden, müssen Ihre Datenbankclients sowohl der Stammzertifizierungsstelle als auch der untergeordneten Zertifizierungsstelle vertrauen, die die Serverzertifikate für Ihre Instanz ausstellt.Wenn Sie sowohl der Stammzertifizierungsstelle als auch der untergeordneten Zertifizierungsstelle für Ihre Instanz vertrauen möchten, haben Sie folgende Möglichkeiten:
- Laden Sie das
global.pemBundle herunter, um der Stammzertifizierungsstelle und allen untergeordneten Zertifizierungsstellen zu vertrauen. - Laden Sie das regionale Bundle
für den regionalen Standort Ihrer Instanz herunter, um der Stammzertifizierungsstelle und den untergeordneten Zertifizierungsstellen
für diese Region zu vertrauen.
Wenn sich Ihre Instanz beispielsweise in der Region
asia-east1befindet, laden Sie dasasia-east1.pemBundle herunter. - Laden Sie
server-ca.pemfür Ihre Instanz herunter, um der Stammzertifizierungsstelle und der untergeordneten Zertifizierungsstelle zu vertrauen, die das Serverzertifikat für Ihre Instanz ausstellt.
Sie können eine Instanz so konfigurieren, dass sie eine Serverzertifizierungsstellenhierarchie verwendet, in der die ausstellenden Zertifizierungsstellen von allen Instanzen in derselben Region gemeinsam genutzt werden. Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode auf GOOGLE_MANAGED_CAS_CA, wenn Sie die Instanz erstellen oder bearbeiten.
Sie können in der Google Cloud Konsole auch
Von Google verwaltete CAS-Zertifizierungsstelle auswählen.
Das folgende Diagramm zeigt die gemeinsame CA-Hierarchie.
Kundenverwaltete Zertifizierungsstellen
Mit diesem Serverzertifizierungsstellenmodus können Sie Ihre eigene CA-Hierarchie in CA Service einrichten.
Wenn Sie die Option „Kundenverwaltete Zertifizierungsstelle“ in Cloud SQL verwenden möchten, erstellen Sie einen CA-Pool in derselben Region wie Ihre Cloud SQL-Instanzen. Erstellen Sie dann mindestens eine Zertifizierungsstelle.
Wenn Sie die Cloud SQL-Instanz erstellen, geben Sie die ID des CA-Pools im Feld serverCaPool an und konfigurieren Sie das Feld serverCaMode mit dem Wert CUSTOMER_MANAGED_CAS_CA.
CA Service stellt eine Zertifizierungsstelle aus dem CA-Pool bereit und verwendet diese Zertifizierungsstelle, um das Serverzertifikat für die Instanz auszustellen.
Wenn Sie Zertifizierungsstellen in CA Service erstellen, können Sie je nach Anwendungsfall entweder eine Stammzertifizierungsstelle oder eine untergeordnete Zertifizierungsstelle erstellen. Sie können beispielsweise eine untergeordnete Zertifizierungsstelle erstellen, wenn Sie eine Stammzertifizierungsstellenhierarchie einrichten oder eine Verbindung zu einer externen Zertifizierungsstelle herstellen möchten.
Wählen Sie die Option „Kundenverwaltete Zertifizierungsstelle“ nur aus, wenn Sie Ihre eigenen Zertifizierungsstellen und Zertifikate verwalten möchten. Weitere Informationen finden Sie unter Kundenverwaltete Zertifizierungsstelle verwenden.
Rotation des Serverzertifikats
Cloud SQL bietet Möglichkeiten, das Serverzertifikat zu rotieren. Damit wird das alte Zertifikat vor seinem Ablauf nahtlos durch ein neues ersetzt.
Bei Instanzen, die die gemeinsame oder kundenverwaltete CA-Hierarchie verwenden, kann die automatische Rotation des Serverzertifikats während der Wartungsupdates bis zu 180 Tage vor Ablauf aktiviert werden.
Bei Instanzen, die die CA-Hierarchie pro Instanz, die gemeinsame CA-Hierarchie oder die kundenverwaltete CA-Hierarchie verwenden, erhalten die Projektinhaber etwa drei Monate vor Ablauf des Serverzertifikats für eine Cloud SQL-Instanz 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 Cloud SQL dem Projekt ein neues Serverzertifikat hinzugefügt hat. Das vorhandene Serverzertifikat funktioniert weiterhin normal. Tatsächlich hat die Instanz während dieses Zeitraums zwei Serverzertifikate.
Der zu verwendende Befehl für die Rotation des Serverzertifikats hängt davon ab, ob Sie ein Serverzertifikat verwenden, das von einer Zertifizierungsstelle pro Instanz ausgestellt wurde, oder ein Serverzertifikat, das von der gemeinsamen oder kundenverwalteten Zertifizierungsstelle ausgestellt wurde.
Laden Sie vor Ablauf des aktuellen Serverzertifikats die neue Datei server-ca.pem 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. Kopieren Sie sie dazu auf alle SQL Server-Clienthostcomputer und ersetzen Sie die vorhandene Datei.
Nachdem alle SQL Server-Clients aktualisiert wurden, senden Sie einen Rotationsbefehl (für die Zertifizierungsstelle pro Instanz) oder Rotationsbefehl (für die gemeinsame oder kundenverwaltete Zertifizierungsstelle) 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
Bei Cloud SQL-Instanzen, die Zertifizierungsstellen pro Instanz verwenden (serverCaMode ist auf GOOGLE_MANAGED_INTERNAL_CA festgelegt), haben die SSL-Zertifikate eine Gültigkeitsdauer von 10 Jahren. Führen Sie vor Ablauf dieser Zertifikate eine Rotation des Server-CA-Zertifikats durch.
Bei Instanzen, die gemeinsame Zertifizierungsstellen verwenden (serverCaMode ist auf GOOGLE_MANAGED_CAS_CA festgelegt), beträgt die Gültigkeitsdauer der Serverzertifikate 1 Jahr.
Führen Sie vor Ablauf eine Rotation des Serverzertifikats durch oder aktivieren Sie die automatische Rotation des Serverzertifikats.
Das Zertifikat der Root-Zertifizierungsstelle hat eine Gültigkeitsdauer von 25 Jahren und das Zertifikat der untergeordneten gemeinsamen Zertifizierungsstelle eine Gültigkeitsdauer von 10 Jahren.
Cloud SQL übernimmt die Rotation.
Wenn Sie eine kundenverwaltete Zertifizierungsstelle verwenden (serverCaMode ist auf CUSTOMER_MANAGED_CAS_CA festgelegt), können Sie die Rotation des CA-Zertifikats durchführen, indem Sie die Zertifizierungsstellen im von Ihnen erstellten CA-Pool rotieren. Die Gültigkeitsdauer einer Zertifizierungsstelle beträgt in der Regel 10 Jahre. Sie können jedoch in CA Service eine kürzere Gültigkeitsdauer für Ihre Zertifizierungsstelle konfigurieren.
Verwenden Sie den CA-Rotationsprozess in CA Service, um die Zertifizierungsstellen zu rotieren. Weitere Informationen finden Sie unter Zertifizierungsstellen-Rotation verwalten.
Wenn ein Client so konfiguriert ist, dass er die Zertifizierungsstelle oder den Hostnamen im Serverzertifikat überprüft, schlagen die Verbindungen dieses Clients zu Cloud SQL-Instanzen mit abgelaufenen Serverzertifikaten fehl. Um Unterbrechungen der Clientverbindungen zu vermeiden, rotieren Sie das Serverzertifikat, bevor es abläuft.
Unabhängig davon, ob Sie den Servermodus „Zertifizierungsstelle pro Instanz“, „Gemeinsame Zertifizierungsstelle“ oder „Kundenverwaltete Zertifizierungsstelle“ verwenden, können Sie die SSL Konfiguration Ihrer Cloud SQL-Instanz jederzeit zurücksetzen.
Beschränkungen
In diesem Abschnitt werden die Einschränkungen bei der Konfiguration von SSL/TLS-Zertifikaten und Cloud SQL behandelt.
Einschränkungen für Dienstverbindungen
- Wenn Ihre Instanz die Option „Gemeinsame Zertifizierungsstelle“ (
GOOGLE_MANAGED_CAS_CA) oder „Kundenverwaltete Zertifizierungsstelle“ (CUSTOMER_MANAGED_CAS_CA) für die Konfiguration vonserverCaModeverwendet, unterstützt die Instanz keine Verbindungen von den folgenden Google Cloud Diensten:- App Engine-Standardumgebung
- Flexible App Engine-Umgebung
- Cloud Run-Dienste, die in einer Ausführungsumgebung der ersten Generation ausgeführt werden
Nächste Schritte
Weitere Informationen zur Verschlüsselung in Google Cloud.
- SSL/TLS auf Ihrer Cloud SQL-Instanz verwalten