Mit SSL/TLS-Zertifikaten autorisieren

Auf dieser Seite wird beschrieben, wie Sie Secure Socket Layer (SSL), jetzt Transport Layer Security (TLS), in Ihrer Anwendung 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 bei Ihrer SSL/TLS-Verbindung die Serveridentität überprüft werden, indem das auf der Cloud SQL-Instanz installierte Serverzertifikat validiert wird. Außerdem kann die Clientidentität überprüft werden, indem das auf dem Client installierte Clientzertifikat validiert wird.

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 CA- und Serveridentität von Cloud SQL überprüfen. Optional können Sie den Typ der CA auswählen, die Cloud SQL zum Signieren des Serverzertifikats verwendet.

Clientzertifikate

Optional können Sie Clientzertifikate zusammen mit Schlüsseln auf den Hostcomputer des Clients herunterladen, um eine gegenseitige Authentifizierung (Überprüfung der Server- und Clientidentität) durchzuführen. Sie können den Typ der CA nicht auswählen, die Cloud SQL zum Signieren des Clientzertifikats verwendet.

SSL/TLS-Verbindung herstellen

Wenn Sie von Clients aus eine Verbindung zu einer Cloud SQL-Instanz herstellen, können Sie SSL/TLS sowohl für direkte Verbindungen als auch für Verbindungen verwenden, die den Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors nutzen.

  • Bei direkten Verbindungen empfiehlt Google dringend, die SSL/TLS-Verschlüsselung mit der Einstellung für den SSL-Modus in Cloud SQL zu erzwingen. Optional können Sie auch die Überprüfung des Clientzertifikats erzwingen. Weitere Informationen finden Sie unter SSL/TLS-Verschlüsselung erzwingen.

  • Bei Verbindungen, die den Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors verwenden, werden die Verbindungen automatisch mit SSL/TLS verschlüsselt und die Client- und Serveridentität überprüft. Sie müssen kein CA-Serverzertifikat und kein Clientzertifikat herunterladen.

Weitere Informationen zu den Cloud SQL-Verbindungsoptionen finden Sie unter Informationen zu Cloud SQL-Verbindungen.

Weitere Informationen zur clientseitigen SSL/TLS-Konfiguration finden Sie in der Dokumentation für Ihre Datenbank-Engine.

Hierarchien von Zertifizierungsstellen

In diesem Abschnitt werden die drei Arten von Serverzertifizierungsstellen 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 für jede Cloud SQL-Instanz dediziert 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 Console) aus oder geben Sie GOOGLE_MANAGED_INTERNAL_CA für die Einstellung serverCaMode (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 Zertifizierungsstellenhierarchie 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 Zertifizierungsstellenhierarchie 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 Zertifizierungsstellenbundle 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-Zertifikatsbundles bereit. Wenn Sie eine gemeinsame Zertifizierungsstelle auswählen möchten, wählen Sie in der Google Cloud Console Von Google verwaltete CAS-Zertifizierungsstelle aus oder geben Sie beim Erstellen oder Bearbeiten der Instanz GOOGLE_MANAGED_CAS_CA für die Einstellung serverCaMode (Cloud SQL Admin API) oder das Flag --server-ca-mode (gcloud CLI) an. Sie können eine vorhandene Instanz so aktualisieren, dass sie eine gemeinsame Zertifizierungsstellenhierarchie verwendet , wenn Sie entweder die Option „Zertifizierungsstelle pro Instanz“ oder „Kundenverwaltete Zertifizierungsstelle“ verwenden.

  • Kundenverwaltete Zertifizierungsstelle: Bei dieser Option erstellen und verwalten Sie Ihre eigene Zertifizierungsstellenhierarchie. Wählen Sie diese Option aus, wenn Sie Ihre eigenen Zertifizierungsstellen und Zertifikate verwalten möchten. Wenn Sie eine kundenverwaltete Zertifizierungsstelle (CUSTOMER_MANAGED_CAS_CA) verwenden, können Sie Ihre eigene Zertifizierungsstellenhierarchie und Rotationsrichtlinien mit CA Service verwalten. Diese Konfiguration bietet Ihnen mehr Kontrolle und hilft Ihnen, Compliance-Anforderungen 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 und Von Kunden verwaltete CAS-Zertifizierungsstelle (Google Cloud Console), CUSTOMER_MANAGED_CAS_CA für die Einstellung serverCaMode (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 Zertifizierungsstellenhierarchie verwendet , wenn Sie entweder die Option „Zertifizierungsstelle pro Instanz“ oder „Gemeinsame Zertifizierungsstelle“ verwenden.

Nachdem Sie eine Instanz erstellt oder aktualisiert haben, können Sie mit dem gcloud sql instances describe Befehl oder in der Google Cloud Console sehen, welche Zertifizierungsstellenhierarchie für eine Cloud SQL-Instanz konfiguriert ist. Weitere Informationen finden Sie unter Instanzinformationen ansehen.

In der folgenden Tabelle werden die drei Optionen für die Zertifizierungsstellenhierarchie verglichen.

Feature Zertifizierungsstelle pro Instanz Gemeinsame Zertifizierungsstelle Kundenverwaltete Zertifizierungsstelle
Zertifizierungsstellenstruktur 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 384-Bit-Schlüssel und SHA384-Algorithmus Elliptic Curve Digital Signature Algorithm (ECDSA) mit 384-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 Rotation der Zertifizierungsstelle wird von Cloud SQL verwaltet. Ja
Vom Nutzer initiierte Rotation des Serverzertifikats? Ja Ja Ja
Automatische Rotation des Serverzertifikats? Nein Ja Ja
Trust-Anchor der Zertifizierungsstelle 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. Obwohl die Zertifizierungsstelle möglicherweise 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 über den DNS-Namen als Hostnamen eine Verbindung zu einer Cloud SQL-Instanz 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 über den DNS-Namen als Hostnamen eine Verbindung zu einer Cloud SQL-Instanz 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 bei der Dienstverbindung Keine Unterstützt keine Verbindungen von den folgenden Google Cloud Diensten: Unterstützt 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

* 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 Rotationen der Zertifizierungsstelle. Eine Gültigkeitsdauer von weniger als einem Jahr kann sich auf die Gültigkeitsdauer Ihrer Serverzertifikate auswirken. Weitere Informationen finden Sie unter Rotation von Zertifizierungsstellen 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 Einstellungen für CA-Zertifikate und Stammzertifizierungsstelle erstellen.

Von Cloud SQL gehostete Zertifizierungsstelle pro Instanz

Die Zertifizierungsstellenhierarchie 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 beim Erstellen der Instanz für jede Instanz eine neue selbstsignierte Serverzertifizierungsstelle. Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode beim Erstellen der Instanz auf GOOGLE_MANAGED_INTERNAL_CA. Sie können die serverCaMode Konfigurationseinstellung entweder mit der Cloud SQL Admin API oder der gcloud CLI nicht angeben oder in der Google Cloud Console die Option Von Google verwaltete interne Zertifizierungsstelle auswählen.

Sie können serverCaMode einer Instanz, die eine gemeinsame oder kundenverwaltete Zertifizierungsstellenhierarchie verwendet, nicht so aktualisieren, dass die Zertifizierungsstellenhierarchie pro Instanz verwendet wird.

Das folgende Diagramm zeigt die Zertifizierungsstellenhierarchie pro Instanz.

Diagramm der internen 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-Zertifikatsbundles bereit.

Sie können eine Instanz so konfigurieren, dass sie eine Serverzertifizierungsstellenhierarchie verwendet, bei der die ausstellenden Zertifizierungsstellen von allen Instanzen in derselben Region gemeinsam genutzt werden. Wenn Sie diese Einstellung verwenden möchten, konfigurieren Sie serverCaMode beim Erstellen oder Bearbeiten der Instanz auf GOOGLE_MANAGED_CAS_CA. Sie können in der Google Cloud Console auch Von Google verwaltete CAS-Zertifizierungsstelle auswählen.

Das folgende Diagramm zeigt die gemeinsame Zertifizierungsstellenhierarchie.

Diagramm einer gemeinsamen Zertifizierungsstellenhierarchie

Kundenverwaltete Zertifizierungsstellen

Mit diesem Serverzertifizierungsstellenmodus können Sie Ihre eigene Zertifizierungsstellenhierarchie 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. Geben Sie beim Erstellen der Cloud SQL-Instanz 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 Zertifizierungsstellenhierarchie verwenden, kann die automatische Rotation des Serverzertifikats während der Wartungsupdates bis zu 180 Tage vor Ablauf aktiviert werden.

Bei Instanzen, die die Zertifizierungsstellenhierarchie pro Instanz, die gemeinsame Zertifizierungsstellenhierarchie oder die kundenverwaltete Zertifizierungsstellenhierarchie 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 MySQL-Clients so, dass die neue Datei verwendet wird. Dafür kopieren Sie sie auf alle MySQL-Client-Hostcomputer und ersetzen die vorhandene Datei.

Nachdem alle MySQL-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.

Clientzertifikate sind von der Rotation des Serverzertifikats nicht betroffen.

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 oder aktivieren Sie die automatische Rotation des Serverzertifikats durch. Das Zertifikat der Root-Zertifizierungsstelle hat eine Gültigkeitsdauer von 25 Jahren und das Zertifikat der untergeordneten gemeinsamen Zertifizierungsstelle hat 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 zum Rotieren der Zertifizierungsstellen den CA-Rotationsprozess in CA Service. Weitere Informationen finden Sie unter Rotation von Zertifizierungsstellen 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 bei 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 bei der Dienstverbindung

Nächste Schritte

  • SSL/TLS auf Ihrer Cloud SQL-Instanz verwalten