Mit SSL/TLS-Zertifikaten autorisieren

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 Sicherheitsebene, indem sie Daten während der Ü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 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 Server-Cloud SQL-Identität prüfen. Optional können Sie den Typ der Zertifizierungsstelle auswählen, die Cloud SQL zum Signieren des Serverzertifikats verwendet.

Hierarchien von Zertifizierungsstellen (CAs)

In diesem Abschnitt werden die drei Arten von Serverzertifizierungsstellen (CAs) beschrieben, die Sie für Ihre Cloud SQL-Instanzen auswählen können. Es gibt drei Optionen:

  • Instanzspezifische Zertifizierungsstelle: 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 instanzspezifische Zertifizierungsstelle 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 Standardwert für die Instanz. Sie können eine Instanz nicht so aktualisieren, dass die instanzspezifische Zertifizierungsstellenoption verwendet wird, wenn die Instanz für die Verwendung einer freigegebenen Zertifizierungsstelle oder einer vom Kunden verwalteten Zertifizierungsstelle konfiguriert ist.

  • Gemeinsame Zertifizierungsstelle: Bei dieser Option wird eine Zertifizierungsstellenhierarchie verwendet, die aus einer Stamm-Zertifizierungsstelle und untergeordneten Server-Zertifizierungsstellen besteht. Die untergeordneten Server-Zertifizierungsstellen in einer Region signieren die Serverzertifikate und werden von allen Instanzen in der Region gemeinsam genutzt. Die Verwendung einer freigegebenen 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 freigegebenen Zertifizierungsstelle (GOOGLE_MANAGED_CAS_CA) wechseln, können Sie ein einzelnes regionales Zertifizierungsstellen-Bundle für alle Ihre Instanzen in der Region verwenden. Das kann die clientseitige Konfiguration vereinfachen. Cloud SQL hostet und verwaltet die Stamm-CA und die untergeordneten Server-CAs im Google CloudCertificate Authority Service (CA Service). Cloud SQL übernimmt auch die Rotation der Stamm-CA und der untergeordneten Server-CAs und stellt öffentlich verfügbare Links zu den CA-Zertifikat-Bundles zum Download bereit. Wenn Sie eine freigegebene Zertifizierungsstelle auswählen möchten, wählen Sie in der Google Cloud Console Von Google verwaltete CAS-Zertifizierungsstelle aus oder geben Sie GOOGLE_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 aktualisieren, um eine freigegebene Zertifizierungsstellenhierarchie zu verwenden, wenn Sie entweder die instanzspezifische Zertifizierungsstelle oder die vom Kunden verwaltete Zertifizierungsstelle verwenden.

  • Kundenverwaltete Zertifizierungsstelle: Mit 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 vom Kunden verwaltete Zertifizierungsstelle (CUSTOMER_MANAGED_CAS_CA) verwenden, können Sie Ihre eigene Zertifizierungsstellenhierarchie und Rotationsrichtlinien mit dem CA-Dienst verwalten. Diese Konfiguration bietet Ihnen mehr Kontrolle und hilft Ihnen, Compliance-Anforderungen zu erfüllen. Wenn Sie eine vom Kunden verwaltete 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 die Vom 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 vom Kunden verwaltete Zertifizierungsstellenhierarchie verwendet, wenn Sie entweder die Option für die instanzspezifische Zertifizierungsstelle oder die Option für die freigegebene Zertifizierungsstelle verwenden.

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

In der folgenden Tabelle werden die drei CA-Hierarchieoptionen verglichen.

Feature Zertifizierungsstelle pro Instanz Gemeinsame Zertifizierungsstelle Kundenverwaltete Zertifizierungsstelle
CA-Struktur Separate Zertifizierungsstelle für jede Instanz Stamm-CA und untergeordnete Zertifizierungsstellen, die von 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 mit SHA384-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 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
CA-Trust-Anchor für TLS-Verbindungen Die eindeutige Zertifizierungsstelle pro Instanz ist der Trust-Anchor für die entsprechende Instanz. Root-Zertifizierungsstelle und untergeordnete Zertifizierungsstellen sind die Trust-Anchors für alle Instanzen in einer bestimmten Region. Die von Ihnen erstellten und verwalteten Zertifizierungsstellen sind die Trust-Anchors.
Serveridentitätsüberprüfung Durch die Überprüfung der Zertifizierungsstelle wird die Serveridentität bestätigt, 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 von mehreren Instanzen gemeinsam genutzt werden. Auch wenn die Zertifizierungsstelle möglicherweise nicht instanzübergreifend freigegeben ist, sollten Sie den Hostnamen zusammen mit der Zertifizierungsstelle überprüfen.
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 für die Überprüfung der Serveridentität verwendet werden. Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz herstellen und 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 für die Identitätsüberprüfung des Servers verwendet werden. Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz herstellen und 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 für die Identitätsüberprüfung des Servers verwendet werden.
Unterstützung für Cloud SQL Auth-Proxy-Versionen Unterstützt alle Versionen des Cloud SQL Auth-Proxys, v1 und höher. Erfordert den Cloud SQL Auth-Proxy in Version 2.13.0 oder höher. Erfordert den Cloud SQL Auth-Proxy in 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 für kundenverwaltete Zertifizierungsstellen beträgt die Standardgültigkeitsdauer eines CA-Zertifikats im CA-Dienst 10 Jahre. Sie haben die Möglichkeit, für Ihre CA-Zertifikate eine andere Gültigkeitsdauer zu konfigurieren. Eine kürzere Gültigkeitsdauer für die Zertifizierungsstelle kann häufigere Rotationen der Zertifizierungsstelle erfordern. Eine Gültigkeitsdauer von weniger als einem Jahr kann sich auf die Gültigkeitsdauer Ihrer Serverzertifikate auswirken. Weitere Informationen finden Sie unter CA-Rotation verwalten.

** Bei der Option für kundenverwaltete Zertifizierungsstellen beträgt die Standardgültigkeitsdauer eines Serverzertifikats ein Jahr. Wenn Sie jedoch für Ihr CA-Zertifikat eine Gültigkeitsdauer von weniger als einem Jahr 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 Einstellungen für CA-Zertifikate und Root-Zertifizierungsstelle erstellen.

Instanzspezifische Zertifizierungsstelle, die von Cloud SQL gehostet wird

Die instanzspezifische CA-Hierarchie 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 für jede Instanz eine neue selbst signierte Server-CA, 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 Konfigurationseinstellung serverCaMode entweder mit der Cloud SQL Admin API oder der gcloud CLI nicht angeben oder in der Google Cloud Console die Option Google-interne Zertifizierungsstelle auswählen.

Sie können die serverCaMode einer Instanz, die eine freigegebene Zertifizierungsstelle oder eine vom Kunden verwaltete Zertifizierungsstellenhierarchie verwendet, nicht so aktualisieren, dass die instanzspezifische Zertifizierungsstellenhierarchie verwendet wird.

Das folgende Diagramm zeigt die CA-Hierarchie pro Instanz.

Diagramm der internen 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 von allen Instanzen in der Region gemeinsam genutzt. Cloud SQL übernimmt die Rotation der freigegebenen regionalen Server-CAs und stellt öffentlich verfügbare Links zum Herunterladen der CA-Zertifikat-Bundles bereit.

Wenn Sie den Modus für freigegebene Zertifizierungsstellen 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 Stamm-CA als auch der untergeordneten Zertifizierungsstelle 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 ihren untergeordneten CAs zu vertrauen.
  • Laden Sie das regionale Bundle für den regionalen Standort Ihrer Instanz herunter, um der Root-CA und den untergeordneten CAs für diese Region zu vertrauen. Wenn sich Ihre Instanz beispielsweise in der Region asia-east1 befindet, laden Sie das Bundle asia-east1.pem herunter.
  • Laden Sie die 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, bei der die ausstellenden CAs von den 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 Console auch Von Google verwaltete CAS-Zertifizierungsstelle auswählen.

Das folgende Diagramm zeigt die freigegebene CA-Hierarchie.

Diagramm einer Hierarchie einer freigegebenen Zertifizierungsstelle

Kundenverwaltete Zertifizierungsstellen

Mit diesem Server-CA-Modus können Sie Ihre eigene CA-Hierarchie in CA Service einrichten.

Wenn Sie die Option für vom Kunden verwaltete Zertifizierungsstellen in Cloud SQL verwenden möchten, erstellen Sie einen CA-Pool in derselben Region wie Ihre Cloud SQL-Instanzen. Anschließend erstellen Sie 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 Stamm-Zertifizierungsstelle oder eine untergeordnete Zertifizierungsstelle erstellen. Sie können beispielsweise eine untergeordnete Zertifizierungsstelle erstellen, wenn Sie eine Root-Zertifizierungsstellenhierarchie einrichten oder eine Kette zu einer externen Zertifizierungsstelle erstellen möchten.

Wählen Sie die Option für eine vom Kunden verwaltete 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 die Möglichkeit, das Serverzertifikat zu rotieren. Damit wird das alte Zertifikat vor seinem Ablauf nahtlos durch ein neues ersetzt.

Instanzen, die die freigegebene Zertifizierungsstelle oder die vom Kunden verwaltete Zertifizierungsstellenhierarchie verwenden, können die automatische Rotation von Serverzertifikaten aktivieren, die während Wartungsupdates bis zu 180 Tage vor Ablauf ausgeführt wird.

Bei Instanzen, die die instanzspezifische Zertifizierungsstelle, die freigegebene Zertifizierungsstelle oder die vom Kunden verwaltete Zertifizierungsstelle verwenden, erhalten die Project Owner 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 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.

Welcher Befehl für die Rotation des Serverzertifikats verwendet werden muss, hängt davon ab, ob Sie ein Serverzertifikat verwenden, das von einer instanzspezifischen Zertifizierungsstelle ausgestellt wurde, oder ein Serverzertifikat, das von der freigegebenen Zertifizierungsstelle oder einer vom Kunden verwalteten Zertifizierungsstelle ausgestellt wurde.

Laden Sie vor Ablauf des aktuellen Serverzertifikats 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, sodass die neue Datei verwendet wird. Kopieren Sie sie dazu auf alle Ihre SQL Server-Client-Hostcomputer und ersetzen Sie die vorhandene Datei.

Nachdem alle SQL Server-Clients aktualisiert wurden, senden Sie einen Rotationsbefehl (für instanzspezifische Zertifizierungsstelle) oder einen Rotationsbefehl (für freigegebene Zertifizierungsstelle oder vom Kunden verwaltete 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 instanzspezifische Zertifizierungsstellen 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 der Server-CA-Zertifikate durch.

Bei Instanzen, die freigegebene Zertifizierungsstellen verwenden (serverCaMode ist auf GOOGLE_MANAGED_CAS_CA festgelegt), beträgt die Gültigkeitsdauer der Serverzertifikate ein Jahr. Führen Sie vor Ablauf eine Serverzertifikatsrotation durch oder aktivieren Sie die automatische Serverzertifikatsrotation. Das Zertifikat der Root-Zertifizierungsstelle (Root-CA) hat eine Gültigkeitsdauer von 25 Jahren und das Zertifikat der untergeordneten freigegebenen 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 CA-Zertifikatsrotation durchführen, indem Sie die Zertifizierungsstellen im von Ihnen erstellten CA-Pool rotieren. Die Ablaufdauer einer Zertifizierungsstelle beträgt in der Regel 10 Jahre. Sie können jedoch im 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 CA-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. Rotieren Sie das Serverzertifikat vor dem Ablauf des Zertifikats, um Unterbrechungen der Clientverbindungen zu vermeiden.

Unabhängig davon, ob Sie den Servermodus mit instanzspezifischer Zertifizierungsstelle, freigegebener Zertifizierungsstelle oder vom Kunden verwalteter 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 beschrieben.

Einschränkungen für Dienstverbindungen

Nächste Schritte