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 Verbindungen 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.

Hierarchien von Zertifizierungsstellen

In diesem Abschnitt werden die drei Typen 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_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 CA-Hierarchie verwendet, die aus einer Stamm-CA und untergeordneten Server-CAs besteht. Die untergeordneten Server-CAs 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 CAs 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- CA und die untergeordneten Server-CAs im Google Cloud Certificate Authority Service (CA Service). Cloud SQL übernimmt auch die Rotation der Stamm-CA und der untergeordneten Server-CAs und stellt öffentlich verfügbare Links zum Herunterladen der CA-Zertifikatspakete bereit. Wenn Sie eine gemeinsame Zertifizierungsstelle auswählen möchten, geben Sie GOOGLE_MANAGED_CAS_CA für die serverCaMode Einstellung (Cloud SQL Admin API) oder das --server-ca-mode Flag (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 CAs und Zertifikate verwalten möchten. Wenn Sie eine kundenverwaltete Zertifizierungsstelle (CUSTOMER_MANAGED_CAS_CA) verwenden, 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 CA in CA Service erstellen. Geben Sie in Cloud SQL den CA-Pool und 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 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 CA für jede Instanz Stamm-CA und untergeordnete CAs, 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 Stamm-CA und 10 Jahre für untergeordnete CAs 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 CA pro Instanz ist der Trust-Anchor für die entsprechende Instanz. Stamm-CA und untergeordnete CAs sind die Trust-Anchors für alle Instanzen in einer bestimmten Region. Die von Ihnen erstellten und verwalteten CAs sind die Trust-Anchors.
Überprüfung der Serveridentität Durch die Überprüfung der CA wird die Serveridentität überprüft, da jede Instanz hat eine eindeutige CA. Für die Überprüfung der Serveridentität ist die Überprüfung des Hostnamens zusammen mit der Überprüfung der CA erforderlich, da Server-CAs von allen Instanzen gemeinsam genutzt werden. Obwohl die CA möglicherweise nicht von allen Instanzen gemeinsam genutzt wird, sollten Sie den Hostnamen zusammen mit der CA überprüfen.
Feld „Alternativer Antragstellername“ (Subject Alternative Name, SAN) in Serverzertifikaten Das SAN-Feld 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 SAN-Feld 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 SAN-Feld 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:
  • 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 CA erfordert möglicherweise häufigere CA-Rotationen und 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 bei der Erstellung finden Sie unter CA-Zertifikateinstellungen und Stamm-CA erstellen.

Von Cloud SQL gehostete Zertifizierungsstelle pro Instanz

Die CA-Hierarchie pro Instanz ist die Standardkonfiguration für den Server-CA-Modus, wenn Sie eine Instanz mit der gcloud CLI, der Cloud SQL Admin API oder Terraform erstellen.

Cloud SQL erstellt bei der Erstellung der Instanz für jede Instanz eine neue selbstsignierte Server-CA. 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 Konsole die Option Von Google verwaltete interne Zertifizierungsstelle auswählen. Google Cloud

Sie können serverCaMode für eine Instanz, die eine gemeinsame oder kundenverwaltete Zertifizierungsstellen-Hierarchie verwendet, nicht so aktualisieren, dass die Zertifizierungsstellen-Hierarchie pro Instanz verwendet wird.

Das folgende Diagramm zeigt die CA-Hierarchie pro Instanz.

Diagramm der internen Zertifizierungsstellen-Hierarchie pro Instanz.

Von CA Service gehostete gemeinsame Zertifizierungsstellen

Dieser Server-Zertifizierungsstellenmodus besteht aus einer Stamm-Zertifizierungsstelle und untergeordneten Server-Zertifizierungsstellen in jeder Region. Die untergeordneten Server-CAs stellen Serverzertifikate aus und werden von allen Instanzen in der Region gemeinsam genutzt. Cloud SQL übernimmt die Rotation der gemeinsamen regionalen Server-CAs 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 Stamm-CA als auch der untergeordneten CA vertrauen, die die Serverzertifikate für Ihre Instanz ausstellt.

Wenn Sie sowohl der Stamm-CA als auch der untergeordneten CA für Ihre Instanz vertrauen möchten, haben Sie folgende Möglichkeiten:

  • Laden Sie das global.pem Bundle herunter, um der Stamm-CA und allen untergeordneten CAs zu vertrauen.
  • Laden Sie das regionale Bundle für den regionalen Standort Ihrer Instanz herunter, um der Stamm-CA und den untergeordneten Zertifizierungsstellen für diese Region zu vertrauen. Wenn sich Ihre Instanz beispielsweise in der Region asia-east1 befindet, laden Sie das asia-east1.pem Paket herunter.
  • Laden Sie server-ca.pem für Ihre Instanz herunter, um der Stamm-CA und der untergeordneten CA zu vertrauen, die das Serverzertifikat für Ihre Instanz ausstellt.

Sie können eine Instanz so konfigurieren, dass sie eine Server-CA-Hierarchie verwendet, in der die ausstellenden CAs 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 Konsole auch Von Google verwaltete CAS-Zertifizierungsstelle auswählen.

Das folgende Diagramm zeigt die gemeinsame CA-Hierarchie.

Diagramm einer gemeinsamen Zertifizierungsstellenhierarchie

Kundenverwaltete Zertifizierungsstellen

Mit diesem Server-CA-Modus 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 CA. 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 CA aus dem CA-Pool bereit und verwendet diese CA, um das Serverzertifikat für die Instanz auszustellen.

Wenn Sie CAs in CA Service erstellen, können Sie je nach Anwendungsfall entweder eine Stamm-CA oder eine untergeordnete CA erstellen. Sie können beispielsweise eine untergeordnete CA erstellen, wenn Sie eine Stamm-CA-Hierarchie einrichten oder eine Verbindung zu einer externen CA herstellen möchten.

Wählen Sie die Option „Kundenverwaltete Zertifizierungsstelle“ nur aus, wenn Sie Ihre eigenen CAs 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 Zertifizierungsstelle-Hierarchie verwenden, kann die automatische Rotation des Serverzertifikats bis zu 180 Tage vor Ablauf im Rahmen von Wartungsupdates ausgeführt 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 CA pro Instanz ausgestellt wurde, oder ein Serverzertifikat, das von der gemeinsamen oder kundenverwalteten CA 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-Client-Hostcomputer und ersetzen Sie die vorhandene Datei.

Nachdem alle SQL Server-Clients aktualisiert wurden, senden Sie einen Rotationsbefehl (für die CA pro Instanz) oder Rotationsbefehl (für die gemeinsame oder kundenverwaltete 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

Bei Cloud SQL-Instanzen, die CAs 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 CAs 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 CAs im erstellten CA-Pool rotieren. Die Gültigkeitsdauer einer CA beträgt in der Regel 10 Jahre. Sie können jedoch eine kürzere Gültigkeitsdauer für Ihre CA in CA Service konfigurieren.

Verwenden Sie den CA-Rotationsprozess in CA Service, um die CAs zu rotieren. Weitere Informationen finden Sie unter Zertifizierungsstellen-Rotation verwalten.

Wenn ein Client so konfiguriert ist, dass er die CA 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 vor Ablauf des Zertifikats.

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

Nächste Schritte

  • Weitere Informationen zur Verwendung verschlüsselter Verbindungen durch SQL Server .
  • SSL/TLS auf Ihrer Cloud SQL-Instanz verwalten