Informationen zum Cloud SQL Auth-Proxy

Auf dieser Seite finden Sie eine grundlegende Einführung in den Cloud SQL Auth-Proxy und eine Beschreibung der Proxyoptionen.

Um eine Schritt-für-Schritt-Anleitung zur Verwendung des Cloud SQL Auth-Proxys zu erhalten, klicken Sie auf den Link für Ihre Umgebung:

Sie müssen weder den Cloud SQL Auth-Proxy verwenden noch SSL für das Herstellen einer Verbindung zu Cloud SQL über die App Engine-Standardumgebung oder die flexible App Engine-Umgebung konfigurieren.

Was der Cloud SQL Auth-Proxy bietet

Der Cloud SQL Auth-Proxy bietet sicheren Zugriff auf Ihre Instanzen, ohne dass autorisierte Netzwerke vorhanden sein müssen oder SSL konfiguriert werden muss.

Vorteile des Zugriffs auf Cloud SQL-Instanzen mit dem Cloud SQL Auth-Proxy:

  • Sichere Verbindungen: Der Cloud SQL Auth-Proxy verschlüsselt automatisch den Traffic zur und von der Datenbank unter Verwendung von TLS 1.2 mit einer 128-Bit-AES-Chiffre. Zur Überprüfung der Client- und Serveridentität werden SSL-Zertifikate verwendet.
  • Vereinfachte Verbindungsverwaltung: Der Cloud SQL Auth-Proxy übernimmt die Authentifizierung mit Cloud SQL. Daher ist es nicht erforderlich, statische IP-Adressen bereitzustellen.

Der Cloud SQL Auth-Proxy bietet keinen neuen Verbindungspfad. Er ist auf eine vorhandene IP-Verbindung angewiesen. Wenn Sie eine Verbindung zu einer Cloud SQL-Instanz mithilfe einer privaten IP-Adresse herstellen möchten, muss sich der Cloud SQL Auth-Proxy auf einer Ressource befinden, die Zugriff auf dasselbe VPC-Netzwerk wie die Instanz hat.

Funktionsweise des Cloud SQL Auth-Proxys

Der Cloud SQL Auth-Proxy hat einen lokalen Client, der in der lokalen Umgebung ausgeführt wird. Ihre Anwendung kommuniziert mit dem Cloud SQL Auth-Proxy über das Standarddatenbankprotokoll, das von Ihrer Datenbank verwendet wird. Der Cloud SQL Auth-Proxy kommuniziert über einen sicheren Tunnel mit dem Begleitprozess, der auf dem Server ausgeführt wird.

Der Cloud SQL Auth-Proxy kann jeden Port überwachen, erstellt jedoch ausgehende Verbindungen zu Ihrer Cloud SQL-Instanz nur über Port 3307. Wenn der Clientcomputer eine Firewallrichtlinie für ausgehende Verbindungen hat, müssen Sie dafür sorgen, dass sie Verbindungen zu Port 3307 für IP-Adresse Ihrer Cloud SQL-Instanz die zulässt.

Das folgende Diagramm zeigt, wie der Cloud SQL Auth-Proxy eine Verbindung zu Cloud SQL herstellt:

Diagramm, in dem der Cloud SQL Auth-Proxy eine Verbindung von der Clientsoftware zur SQL-Instanz herstellt

Voraussetzungen für die Verwendung des Cloud SQL Auth-Proxys

Für die Verwendung des Cloud SQL Auth-Proxys müssen die folgenden Anforderungen erfüllt sein:

  • Die Cloud SQL Admin API muss aktiviert sein.
  • Sie müssen dem Cloud SQL Auth-Proxy Google Cloud-Authentifizierungsdaten bereitstellen.
  • Sie müssen dem Cloud SQL Auth-Proxy ein gültiges Datenbank-Nutzerkonto und ein gültiges Passwort angeben.
  • Die Instanz muss entweder eine öffentliche IPv4-Adresse haben oder für die Verwendung privater IP-Adressen konfiguriert sein.

    Die öffentliche IP-Adresse muss nicht für externe Adressen zugänglich sein (sie muss also nicht als autorisierte Netzwerkadresse hinzugefügt werden).

Startoptionen des Cloud SQL Auth-Proxys

Wenn Sie den Cloud SQL Auth-Proxy starten, geben Sie die folgenden Informationen an:

  • Cloud SQL-Instanzen, mit denen der Proxy eine Verbindung herstellen soll
  • Ports/Sockets zur Überwachung der Daten, die von der Anwendung an Cloud SQL gesendet werden
  • Speicherort der Anmeldedaten zum Authentifizieren der Anwendung bei Cloud SQL
  • Bei Bedarf den IP-Adresstyp, der verwendet werden soll.

Mit den angegebenen Cloud SQL Auth-Proxy-Startoptionen wird ermittelt, ob der Proxy einen TCP-Port oder einen Unix-Socket überwachen soll. Wenn ein Unix-Socket überwacht werden soll, wird der Socket an der gewählten Position erstellt (in der Regel im Verzeichnis "/cloudsql/"). Bei TCP überwacht der Cloud SQL Auth-Proxy standardmäßig localhost.

Führen Sie die ausführbare Datei cloud_sql_proxy mit dem Argument --help aus, um die vollständige Liste der Startoptionen anzeigen zu lassen.

Sie können den Cloud SQL Auth-Proxy überall in Ihrer lokalen Umgebung installieren. Der Speicherort der Binärdateien für den Cloud SQL Auth-Proxy hat keinen Einfluss darauf, wo Daten von der Anwendung überwacht werden.

Dienstkonto zur Authentifizierung verwenden

Der Cloud SQL Auth-Proxy erfordert eine Authentifizierung. Vorteil eines Dienstkontos hierbei ist, dass Sie eine Anmeldedatei speziell für den Cloud SQL Auth-Proxy erstellen können und diese explizit und dauerhaft mit dem Cloud SQL Auth-Proxy verknüpft ist, solange er läuft. Daher wird die Verwendung eines Dienstkontos für Instanzen in der Produktionsumgebung empfohlen, die nicht auf einer Compute Engine-Instanz ausgeführt werden.

Die Datei mit den Anmeldedaten kann zur Einbindung in ein Systemimage dupliziert werden, wenn der Cloud SQL Auth-Proxy von mehreren Computern aus aufgerufen werden soll.

Für diese Methode muss die Datei mit den Anmeldedaten erstellt und verwaltet werden. Nur Nutzer mit der Berechtigung resourcemanager.projects.setIamPolicy (z. B. Projektinhaber) können das Dienstkonto erstellen. Wenn der Google Cloud-Nutzer nicht über diese Berechtigung verfügt, muss eine andere Person das Dienstkonto für Sie erstellen. Er kann auch eine andere Methode zur Authentifizierung des Cloud SQL Auth-Proxys verwenden.

Informationen zum Erstellen einer Datei mit Anmeldedaten finden Sie unter Dienstkonto erstellen.

Erforderliche Berechtigungen für Dienstkonten

Wenn Sie ein Dienstkonto verwenden, um die Anmeldedaten für den Cloud SQL Auth-Proxy bereitzustellen, müssen Sie es mit den erforderlichen Berechtigungen ausstatten. Wenn Sie die feiner abgestuften IAM-Rollen (Identity Access and Management) zum Verwalten Ihrer Cloud SQL-Berechtigungen verwenden, ist es erforderlich, dass Sie dem Dienstkonto eine Rolle mit der Berechtigung cloudsql.instances.connect zuweisen. Diese Berechtigung ist in folgenden vordefinierten Cloud SQL-Rollen enthalten:

  • Cloud SQL-Client
  • Cloud SQL-Bearbeiter
  • Cloud SQL-Administrator

Wenn Sie die alten Rollen ("Betrachter", "Bearbeiter", "Inhaber") verwenden, muss das Dienstkonto mindestens die Rolle "Bearbeiter" haben.

Spezifikationsoptionen für Cloud SQL-Instanzen

Es gibt verschiedene Möglichkeiten, dem Cloud SQL Auth-Proxy mitzuteilen, zu welchen Instanzen eine Verbindung hergestellt werden soll. Einige sind explizit und manche sind implizit. Bei einigen Konfigurationen müssen Sie dem Cloud SQL Auth-Proxy nicht vorab mitteilen, zu welchen Instanzen eine Verbindung hergestellt werden soll, da der Cloud SQL Auth-Proxy basierend auf Verbindungsanfragen verbunden wird.

Die für die Instanz verfügbaren Spezifikationsoptionen hängen vom Betriebssystem und von der Umgebung ab:

Option Vorteile Einschränkungen und Anforderungen Linux/macOS
(Unix-Sockets)
Java Windows Hinweise
Automatische Instanzerkennung Instanzspezifikation nicht erforderlich; Sockets für alle Instanzen im Standardprojekt erstellt Die Verwendung der Cloud SQL Auth Proxy API wird erhöht. Cloud SDK muss installiert und für ein Standardprojekt authentifiziert sein. Cloud SQL Auth-Proxy muss neu gestartet werden, um eine neue Instanz hinzuzufügen. Unterstützt Nein Nein Nicht für Instanzen in der Produktionsumgebung empfohlen
Projekterkennung Instanzspezifikation nicht erforderlich; Sockets für alle Instanzen in bestimmten Projekten erstellt Die Verwendung der Cloud SQL Auth Proxy API wird erhöht. Cloud SDK muss installiert und authentifiziert sein. Cloud SQL Auth-Proxy muss neu gestartet werden, um eine neue Instanz hinzuzufügen. Unterstützt Nein Nein Verwenden Sie den Parameter -projects. Nicht empfohlen für Instanzen in der Produktionsumgebung
Im Cloud SQL Auth-Proxy-Aufruf angegebene Instanzen Instanzliste bekannt und statisch Cloud SQL Auth-Proxy muss neu gestartet werden, um eine neue Instanz hinzuzufügen. Unterstützt Unterstützt mit TCP-Sockets Unterstützt mit TCP-Sockets Verwenden Sie den Parameter -instances. Verwenden Sie für mehrere Instanzen eine durch Kommas getrennte Liste ohne Leerzeichen. Weitere Informationen
Mit Compute Engine-Metadaten angegebene Instanzen Instanzliste kann durch Ändern des Metadatenwerts aktualisiert werden, ohne den Cloud SQL Auth-Proxy neu zu starten. Nur auf Compute Engine verfügbar Unterstützt Unterstützt mit TCP-Sockets Unterstützt mit TCP-Sockets Verwenden Sie das Flag -instances_metadata. Weitere Informationen

Aktuelle Version des Cloud SQL Auth-Proxys

Google veröffentlicht gelegentlich neue Versionen des Cloud SQL Auth-Proxys. Sie finden die aktuelle Version auf der GitHub-Seite mit den Releases des Cloud SQL Auth-Proxys. Zukünftige Proxyreleases werden auch im Google Groups Cloud SQL-Ankündigungsforum vermerkt.

API-Nutzung

Der Cloud SQL Auth-Proxy gibt Anfragen an die Cloud SQL Admin API aus. Diese Anfragen werden auf das API-Kontingent für Ihr Projekt angerechnet.

Die höchste API-Nutzung erfolgt beim Start des Cloud SQL Auth-Proxys. Dies gilt insbesondere, wenn Sie die automatische Instanzerkennung oder den Parameter -projects verwenden. Während der Cloud SQL Auth-Proxy ausgeführt wird, werden 2 API-Aufrufe pro Stunde und verbundener Instanz ausgegeben.

Cloud SQL Auth-Proxy-Parameter und -Flags

Wenn der Cloud SQL Auth-Proxy gestartet wird, akzeptiert er mehrere Flags und Parameter. Diese Optionen bestimmen, wo und wie der Cloud SQL Auth-Proxy die Sockets erstellt, die für die Kommunikation mit Cloud SQL verwendet werden, und wie die Authentifizierung erfolgt.

Weitere Informationen zu Cloud SQL Auth-Proxyoptionen finden Sie in den folgenden Informationen:

Cloud SQL Auth-Proxy in einer Produktionsumgebung verwenden

Wenn der Cloud SQL Auth-Proxy in einer Produktionsumgebung verwendet wird, können Sie mit entsprechenden Maßnahmen dafür sorgen, dass der Cloud SQL Auth-Proxy die erforderliche Verfügbarkeit für Ihre Anwendung bereitstellt.

Cloud SQL Auth-Proxy muss als persistenter Dienst ausgeführt werden

Wenn der Cloud SQL Auth-Proxyprozess beendet wird, werden alle darüber hergestellten Verbindungen ebenfalls beendet. Außerdem kann die Anwendung dann keine weiteren Verbindungen mit der Cloud SQL Auth-Instanz über den Cloud SQL Auth-Proxy herstellen. Achten Sie darauf, dass der Cloud SQL Auth-Proxy als persistenter Dienst ausgeführt wird, um dieses Szenario zu vermeiden. Wenn der Cloud SQL Auth-Proxy dann aus irgendeinem Grund beendet wird, erfolgt automatisch ein Neustart. Dies kann mithilfe eines Dienstes wie systemd, upstart oder supervisor erfolgen. Führen Sie für das Windows-Betriebssystem den Cloud SQL Auth-Proxy als Windows-Dienst aus. Achten Sie darauf, dass der Cloud SQL Auth-Proxy dieselben Verfügbarkeitsanforderungen wie Ihr Anwendungsprozess hat.

Anzahl der erforderlichen Kopien des Cloud SQL Auth-Proxys

Nicht für jeden Anwendungsprozess muss ein eigener Proxyprozess erstellt werden. Viele Anwendungsprozesse können einen einzigen Cloud SQL Auth-Proxyprozess gemeinsam nutzen. Führen Sie einen Cloud SQL Auth-Proxy-Clientprozess pro Workstation oder virtueller Maschine aus.

Wenn Sie die automatische Skalierung für virtuelle Maschinen verwenden, achten Sie darauf, dass der Cloud SQL Auth-Proxy in der Konfiguration der virtuellen Maschine enthalten ist. Damit wird beim Starten einer neuen virtuellen Maschine ein eigener Cloud SQL Auth-Proxy-Prozess angelegt.

Sie müssen die Anzahl der erforderlichen Verbindungen der Anwendung selbst verwalten, indem Sie die Verbindungen entweder einschränken oder zusammenführen. Der Cloud SQL Auth-Proxy legt keine Beschränkungen für die Rate neuer Verbindungen oder die Anzahl persistenter Verbindungen fest.

Ausgabe des Cloud SQL Auth-Proxys reduzieren

Wenn Sie die Größe des Cloud SQL Auth-Proxylogs reduzieren möchten, legen Sie -verbose=false beim Start des Cloud SQL Auth-Proxys fest. Bedenken Sie jedoch, dass dadurch die Effizienz der Cloud SQL Auth-Proxyausgabe bei der Diagnose von Verbindungsproblemen herabgesetzt wird.

Wie Failover den Cloud SQL Auth-Proxy beeinflusst

Wenn Sie den Cloud SQL Auth-Proxy auf einer Instanz für hohe Verfügbarkeit ausführen und ein Failover auftritt, sind Verbindungen über den Cloud SQL Auth-Proxy dadurch auf die gleiche Weise betroffen wie IP-Verbindungen: Alle vorhandenen Verbindungen werden getrennt und es müssen über die Anwendung neue Verbindungen hergestellt werden. Es ist jedoch kein manueller Eingriff erforderlich. Die Anwendung kann weiterhin die gleichen Verbindungsstrings verwenden wie bisher.

Docker-Image des Cloud SQL Auth-Proxys aktualisieren

Das Docker-Image des Cloud SQL Auth-Proxys basiert auf einer bestimmten Version des Cloud SQL Auth-Proxys. Wenn eine neue Version des Cloud SQL Auth-Proxys verfügbar ist, rufen Sie die neue Version des zugehörigen Docker-Image ab, damit Ihre Umgebung auf dem neuesten Stand ist. Die aktuelle Version des Cloud SQL Auth-Proxys finden Sie auf der GitHub-Seite mit Cloud SQL Auth-Proxyversionen.

Nächste Schritte