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 den Typ der Zertifizierungsstelle auswählen, die von Cloud SQL zum Signieren des Serverzertifikats verwendet wird.
Hierarchien von Zertifizierungsstellen
In diesem Abschnitt werden die drei Arten von Zertifizierungsstellen 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 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 beim Erstellen einer Instanz nicht angeben, ist diese Option 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-Zertifizierungsstellen 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 einen freigegebenen Zertifizierungsstellenanbieter 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.Die Option „Gemeinsam genutzte Zertifizierungsstelle“ befindet sich in der Vorabversion.
Vom Kunden verwaltete Zertifizierungsstelle: Mit dieser Option können Sie Ihre eigene Zertifizierungsstellenhierarchie erstellen und verwalten. Wählen Sie diese Option aus, wenn Sie Ihre eigenen Zertifizierungsstellen und Zertifikate verwalten möchten. Wenn Sie eine freigegebene Zertifizierungsstelle auswählen möchten, müssen Sie einen CA-Pool und eine CA im CA-Dienst erstellen. Geben Sie in Cloud SQL den CA-Pool und
CUSTOMER_MANAGED_CAS_CA
für dieserverCaMode
-Einstellung (Cloud SQL Admin API) oder das--server-ca-mode
-Flag (gcloud CLI) an, wenn Sie die Instanz erstellen.Die Option für die vom Kunden verwaltete Zertifizierungsstelle befindet sich in der Vorabversion.
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 drei CA-Hierarchieoptionen verglichen.
Feature | Instanzspezifische Zertifizierungsstelle | Gemeinsam genutzte Zertifizierungsstelle | Vom Kunden verwaltete Zertifizierungsstelle |
---|---|---|---|
CA-Struktur | Separate Stammzertifizierungsstelle für jede Instanz | Stamm-CA und untergeordnete CAs, die von Instanzen in derselben Region gemeinsam genutzt werden | CA-Hierarchie, 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 Stamm-CAs 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 |
Wird die Rotation des Serverzertifikats vom Nutzer initiiert? | Ja | Ja | Ja |
CA-Trust-Anchor für TLS-Verbindungen | Die eindeutige Zertifizierungsstelle pro Instanz ist der Trust-Anchor für die entsprechende Instanz. | Die 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 Vertrauensanker. |
Serveridentitätsbestätigung | 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 für alle Instanzen gemeinsam genutzt werden. | Auch wenn die Zertifizierungsstelle möglicherweise nicht für alle Instanzen verwendet wird, sollten Sie den Hostnamen zusammen mit der Zertifizierungsstelle bestätigen. |
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. | 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. |
* Bei der vom Kunden verwalteten Zertifizierungsstelle beträgt die Standardgültigkeitsdauer eines CA-Zertifikats im CA Service 10 Jahre. Sie haben die Möglichkeit, eine andere Gültigkeitsdauer für Ihre CA-Zertifikate 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 Zertifizierungsstelle wechseln.
** Bei der Option „Kundenverwaltete Zertifizierungsstelle“ 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 des CA-Zertifikats beim Erstellen finden Sie unter CA-Zertifikatseinstellungen und Stammzertifizierungsstelle erstellen.
Von Cloud SQL gehosteter per-Instanz-Zertifizierungsstelle
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 beim Erstellen einer Instanz eine neue selbst signierte Server-Zertifizierungsstelle für jede Instanz.
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 Interne Zertifizierungsstelle von Google auswählen.
Das folgende Diagramm zeigt die CA-Hierarchie pro Instanz.
Von CA Service gehostete freigegebene Zertifizierungsstellen
Die freigegebene Zertifizierungsstellenhierarchie ist die Standardkonfiguration für den Server-CA-Modus, wenn Sie eine Instanz über die Google Cloud Console erstellen.
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.
Vom Kunden verwaltete Zertifizierungsstellen
In diesem Server-CA-Modus können Sie Ihre eigene CA-Hierarchie in CA Service einrichten.
Wenn Sie die Option „Vom Kunden verwaltete Zertifizierungsstelle“ 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-CA oder eine untergeordnete CA erstellen. Sie können beispielsweise eine untergeordnete Zertifizierungsstelle erstellen, wenn Sie eine Stamm-CA-Hierarchie einrichten oder eine Kette zu einer externen Zertifizierungsstelle herstellen möchten.
Wählen Sie die Option „Vom Kunden verwaltete Zertifizierungsstelle“ nur aus, wenn Sie Ihre eigenen Zertifizierungsstellen und Zertifikate verwalten möchten. Weitere Informationen finden Sie unter Vom Kunden verwaltete Zertifizierungsstelle verwenden. Die Option für die vom Kunden verwaltete Zertifizierungsstelle befindet sich in der Vorabversion.
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.
Bei Instanzen, für die die Zertifizierungsstelle pro Instanz, die gemeinsam genutzte Zertifizierungsstelle oder die vom Kunden verwaltete Zertifizierungsstelle verwendet wird, 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 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 zum Rotieren des Serverzertifikats verwendet werden muss, hängt davon ab, ob Sie ein von einer pro Instanz verwendeten Zertifizierungsstelle ausgestelltes Serverzertifikat oder ein von der freigegebenen Zertifizierungsstelle oder der vom Kunden verwalteten Zertifizierungsstelle ausgestelltes Serverzertifikat verwenden.
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 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-spezifische Zertifizierungsstelle) oder einen Rotationsbefehl (für eine freigegebene Zertifizierungsstelle oder eine 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, für die CAs pro Instanz verwendet werden (serverCaMode
ist auf GOOGLE_MANAGED_INTERNAL_CA
festgelegt), haben die SSL-Zertifikate eine Gültigkeitsdauer von zehn Jahren. Führen Sie vor Ablauf dieser Zertifikate die Rotation von Server-CA-Zertifikaten durch.
Bei Instanzen, die freigegebene Zertifizierungsstellen verwenden (serverCaMode
ist auf GOOGLE_MANAGED_CAS_CA
festgelegt) (Vorabversion), beträgt die Gültigkeitsdauer der Serverzertifikate ein Jahr.
Führen Sie vor Ablauf eine Rotation des Serverzertifikats 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 Sie eine vom Kunden verwaltete Zertifizierungsstelle verwenden (serverCaMode
ist auf CUSTOMER_MANAGED_CAS_CA
gesetzt)(Vorabversion), können Sie die Zertifizierungsstellen im von Ihnen erstellten CA-Pool rotieren, um das CA-Zertifikat zu rotieren. Die Gültigkeitsdauer 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 den CA-Rotationsprozess in CA Service, um die Zertifizierungsstellen zu rotieren. Weitere Informationen finden Sie unter Zertifizierungsstelle wechseln.
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 bei Clientverbindungen zu vermeiden, sollten Sie das Serverzertifikat vor Ablauf rotieren.
Unabhängig davon, ob Sie die Instanz-CA, die freigegebene CA oder den Servermodus der kundenverwalteten CA 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