Informationen zum Cloud SQL Auth-Proxy

Auf dieser Seite wird der Cloud SQL Auth-Proxy zusammengefasst und beschrieben, wie Sie damit autorisierte, verschlüsselte und gesicherte Verbindungen zu Ihren Instanzen herstellen können.

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.

Überzeugen Sie sich selbst

Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit von Cloud SQL in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.

Cloud SQL kostenlos testen

Vorteile des Cloud SQL Auth-Proxys

Der Cloud SQL Auth-Proxy ist ein Cloud SQL-Connector, der sicheren Zugriff auf Ihre Instanzen ermöglicht, ohne dass Sie autorisierte Netzwerke benötigen oder SSL konfigurieren müssen.

Der Cloud SQL Auth-Proxy und andere Cloud SQL-Connectors bieten folgende Vorteile:

  • Sichere Verbindungen: Der Cloud SQL Auth-Proxy verschlüsselt den ein- und ausgehenden Traffic der Datenbank automatisch durch TLS 1.3, wobei die Chiffreauswahl durch die Go-Regeln bestimmt wird. SSL-Zertifikate werden zum Prüfen von Client- und Serveridentitäten verwendet und sind unabhängig von Datenbankprotokollen. Sie müssen keine SSL-Zertifikate verwalten.
  • Vereinfachte Verbindungsautorisierung: Der Cloud SQL Auth-Proxy steuert über IAM-Berechtigungen, wer und was eine Verbindung zu Ihren Cloud SQL-Instanzen herstellen kann. Daher übernimmt der Cloud SQL Auth-Proxy die Authentifizierung mit Cloud SQL, sodass keine statischen IP-Adressen bereitgestellt werden müssen.
  • Authentifizierung der IAM-Datenbank: Optional unterstützt der Cloud SQL Auth-Proxy eine automatische Aktualisierung von OAuth 2.0-Zugriffstokens. Informationen zu diesen Funktionen finden Sie unter Cloud SQL-IAM-Datenbankauthentifizierung.

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. Jede Verbindung, die über den Cloud SQL Auth-Proxy hergestellt wird, erstellt eine Verbindung zur Cloud SQL-Instanz.

Wenn eine Anwendung eine Verbindung zum Cloud SQL Auth-Proxy herstellt, überprüft sie, ob eine vorhandene Verbindung zwischen ihr und der Cloud SQL-Zielinstanz verfügbar ist. Wenn keine Verbindung vorhanden ist, werden Cloud SQL Admin APIs aufgerufen, um ein sitzungsspezifisches SSL-Zertifikat abzurufen und damit eine Verbindung zu Cloud SQL herzustellen. Sitzungsspezifische SSL-Zertifikate laufen nach etwa einer Stunde ab. Der Cloud SQL Auth-Proxy aktualisiert diese Zertifikate, bevor sie ablaufen.

Der Cloud SQL Auth-Proxy kann zwar jeden Port überwachen, ausgehende oder ausgehende Verbindungen zu Ihrer Cloud SQL-Instanz jedoch nur an Port 3307 herstellen. Da der Cloud SQL Auth-Proxy APIs über den Domainnamen sqladmin.googleapis.com aufruft, der keine feste IP-Adresse hat, müssen alle ausgehenden TCP-Verbindungen an Port 443 zugelassen werden. 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 zulässt.

Der Cloud SQL Auth-Proxy bietet kein Verbindungs-Pooling, kann jedoch mit anderen Verbindungs-Poolings gekoppelt werden, um die Effizienz zu steigern.

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

Cloud SQL Auth-Proxy herunterladen und installieren

Linux 64-Bit

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.amd64
  2. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
    chmod +x cloud-sql-proxy

Linux 32-Bit

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.linux.386
  2. Wenn der Befehl curl nicht gefunden wird, führen Sie sudo apt install curl aus und wiederholen Sie den Downloadbefehl.
  3. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
    chmod +x cloud-sql-proxy

macOS 64-Bit

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.darwin.amd64
  2. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
    chmod +x cloud-sql-proxy

Mac M1

  1. Laden Sie den Cloud SQL Auth-Proxy herunter:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.darwin.arm64
      
  2. Machen Sie den Cloud SQL Auth-Proxy ausführbar:
      chmod +x cloud-sql-proxy
      

Windows 64-Bit

Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x64.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei in cloud-sql-proxy.exe um.

Windows 32-Bit

Klicken Sie mit der rechten Maustaste auf https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.13.0/cloud-sql-proxy.x86.exe und wählen Sie Link speichern unter aus, um den Cloud SQL Auth-Proxy herunterzuladen. Benennen Sie die Datei in cloud-sql-proxy.exe um.

Docker-Image des Cloud SQL Auth-Proxys

Der Cloud SQL Auth-Proxy hat verschiedene Container-Images, z. B. distroless, alpine und buster. Das standardmäßige Cloud SQL Auth-Proxy-Container-Image verwendet distroless, das keine Shell enthält. Wenn Sie eine Shell oder verwandte Tools benötigen, laden Sie ein auf alpine oder buster basierendes Image herunter. Weitere Informationen finden Sie unter Container-Images von Cloud SQL Auth-Proxy.

Sie können das neueste Image mithilfe von Docker mit dem folgenden Befehl auf Ihren lokalen Computer übertragen:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.13.0

Andere Betriebssysteme

Für andere Betriebssysteme, die hier nicht aufgeführt sind, können Sie den Cloud SQL Auth-Proxy aus der Quelle kompilieren.

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.

Weitere Informationen zum Starten des Cloud SQL Auth-Proxys finden Sie unter Cloud SQL Auth-Proxy starten.

Verwenden Sie ein Dienstkonto zur Authentifizierung.

Der Cloud SQL Auth-Proxy erfordert eine Authentifizierung als Cloud SQL-IAM-Identität, um Ihre Verbindungen zu einer Cloud SQL-Instanz zu autorisieren.

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.

Weitere Informationen zum Erstellen eines Dienstkontos

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.

Cloud SQL Auth-Proxy auf dem neuesten Stand halten

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. Während der Cloud SQL Auth-Proxy ausgeführt wird, werden 2 API-Aufrufe pro Stunde und verbundener Instanz ausgegeben.

Spezielles Nutzerkonto für den Cloud SQL Auth-Proxy erstellen

Wenn Sie über den Cloud SQL Auth-Proxy eine Verbindung zu Ihrer Instanz herstellen, geben Sie ein Nutzerkonto an, mit dem Sie sich in der Instanz anmelden. Für diesen Zweck können Sie ein beliebiges Datenbank-Nutzerkonto verwenden. Da der Cloud SQL Auth-Proxy eine Verbindung immer von einem Hostnamen aus herstellt, auf den nur mit dem Cloud SQL Auth-Proxy zugegriffen werden kann, haben Sie auch die Möglichkeit, ein Nutzerkonto zu erstellen, das nur vom Cloud SQL Auth-Proxy verwendet werden kann. Diese Vorgehensweise hat den Vorteil, dass Sie dieses Konto ohne Passwort angeben können, ohne die Sicherheit Ihrer Instanz und Ihrer Daten zu beeinträchtigen.

Geben Sie den Hostnamen als 'cloudsqlproxy~[IP_ADDRESS]' an, um ein Nutzerkonto für Cloud SQL Auth-Proxyverbindungen zu erstellen. Sie können auch den Platzhalter für die IP-Adresse verwenden, der zu 'cloudsqlproxy~%' führt. Der vollständige Nutzername wäre:

'[USER_NAME]'@'cloudsqlproxy~%'

oder

'[USER_NAME]'@'cloudsqlproxy~[IP_ADDRESS]'

Eine Anleitung zur Erstellung eines Nutzerkontos finden Sie unter Nutzerkonten erstellen und verwalten. Weitere Informationen über die Funktionsweise von Nutzerkonten in Cloud SQL finden Sie unter Nutzer. Weitere Informationen zu MySQL-Nutzerkonten finden Sie in der MySQL-Dokumentation unter Ursprüngliche MySQL-Konten schützen.

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-Proxy-Optionen finden Sie hier:

FUSE mit dem Cloud SQL Auth-Proxy verwenden

FUSE steht für "Filesystem in User Space". Abhängig davon, wie der Cloud SQL Auth-Proxy aufgerufen wurde, kann er FUSE dazu nutzen, die Sockets für die Verbindung mit Cloud SQL zu erstellen.

Wenn Sie eine Verbindung von Compute Engine oder einer lokalen Entwicklungsumgebung herstellen, verwendet der Cloud SQL Auth-Proxy FUSE, um auf die Cloud SQL-Instanzen zuzugreifen:

  • Das Verzeichnis "/cloudsql" wird als Dateisystem im Speicherplatz des Nutzers (Filesystem in Userspace oder kurz FUSE) durch den Cloud SQL Auth-Proxy bereitgestellt.

  • Ein Prozess (etwa mysql) versucht, eine Datei mit dem Namen $INSTANCE zu finden.

  • Der Cloud SQL Auth-Proxy fängt die Anfrage ab und gibt zurück, dass /cloudsql/$INSTANCE ein symbolischer Link zu einem Unix-Socket ist, der sich an anderer Stelle im Dateisystem befindet.

  • Der Prozess (z. B. mysql) folgt dem Link, öffnet den verknüpften Unix-Socket und stellt die Verbindung her.

FUSE installieren

Für Linux:

Damit FUSE funktioniert, ist das Programm fusermount und ein Kernelmodul erforderlich. Sie können prüfen, ob das Programm installiert ist, wenn Sie nach der Datei /dev/fuse/ suchen. Wenn fusermount nicht in Ihrem System vorhanden ist, können Sie es mit Ihrem Paketmanager installieren oder aus der Quelle kompilieren.

Für macOS:

Installieren Sie FUSE für macOS.

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-Proxy-Prozess 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-Client-Prozess 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 --quiet beim Start des Cloud SQL Auth-Proxys fest. Bedenken Sie jedoch, dass dadurch die Effizienz der Cloud SQL Auth-Proxy-Ausgabe bei der Diagnose von Verbindungsproblemen herabgesetzt wird.

So beeinflusst Failover den Cloud SQL Auth-Proxy

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 auf dem neuesten Stand halten

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.

Verwendung des Cloud SQL Auth-Proxys erzwingen

Sie können die Verwendung des Cloud SQL Auth-Proxys für Cloud SQL-Instanzverbindungen mit ConnectorEnforcement erzwingen. Bei der Connector-Erzwingung wird eine direkte Datenbankverbindung abgelehnt.

Zur Verwendung der Connector-Erzwingung nutzen Sie das ConnectorEnforcement-Feld in der instances API.

Weitere Informationen finden Sie unter Instanzen bearbeiten.

Informationen zum Cloud SQL-Proxy-Operator

Der Cloud SQL-Proxy-Operator ist ein Open-Source-Kubernetes-Operator, der die Verbindung von Arbeitslasten in einem GKE-Cluster mit Cloud SQL-Datenbanken automatisiert. Der Cloud SQL Auth-Proxy-Operator verwendet eine benutzerdefinierte AuthProxyWorkload-Ressource, die die Cloud SQL Auth-Proxy-Konfiguration für eine bestimmte Arbeitslast angibt. Der Cloud SQL Auth-Proxy-Operator liest diese Ressource und fügt den entsprechenden Arbeitslasten einen Cloud SQL Auth-Proxy-Container mit der erforderlichen Konfiguration hinzu.

Wenn Sie den Operator in Ihrem GKE-Cluster installieren und Ihre Arbeitslasten und Cloud SQL-Instanzen konfigurieren, konfiguriert der Cloud SQL Auth-Proxy-Operator automatisch den Cloud SQL Auth-Proxy und verbindet die GKE-Arbeitslasten mit Ihren Cloud SQL-Instanzen.

Der Status des Cloud SQL Auth-Proxys wird auch geprüft. Wenn der Cloud SQL Auth-Proxy keine Verbindung herstellen kann, gibt der Cloud SQL Auth-Proxy-Operator Debugging-Informationen aus und unterstützt Sie bei der Behebung von häufigen Konfigurationsproblemen.

Weitere Informationen finden Sie unter Verbindung mit dem Cloud SQL Proxy-Operator herstellen.

Nächste Schritte