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.

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

Wenn für die Cloud SQL-Instanz, zu der Sie eine Verbindung herstellen, die gemeinsame Zertifizierungsstelle (CA) für die serverCaMode-Einstellung verwendet wird, müssen Sie auf der Clientseite Cloud SQL Auth Proxy Version 2.13.0 oder höher verwenden.

Der freigegebene CA-Modus befindet sich in der Vorabversion.

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.14.1/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.14.1/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.14.1/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.14.1/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.14.1/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.14.1/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.14.1

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.

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:

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.

Wenn Sie eine Instanz mit aktiviertem Private Service Connect verwenden, gibt es eine Einschränkung. Wenn für die Instanz die Connector-Erzwigung aktiviert ist, können Sie keine Lesereplikate für die Instanz erstellen. Wenn die Instanz Lesereplikate hat, können Sie die Connector-Erzwigung für die Instanz nicht aktivieren.

Weitere Informationen dazu, wie Sie erzwingen, dass nur der Cloud SQL Auth-Proxy oder Cloud SQL Language Connectors zum Herstellen einer Verbindung zu einer Instanz verwendet werden, finden Sie unter Verwendung des Cloud SQL Auth-Proxys erzwingen.

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