Über den Cloud SQL Auth Proxy

MySQL | PostgreSQL | SQL Server

Diese Seite bietet eine grundlegende Einführung in den Cloud SQL Auth Proxy und beschreibt die Proxy-Optionen.

Für eine Schritt-für-Schritt-Anleitung zur Verwendung des Cloud SQL Auth Proxy folgen Sie dem Link für Ihre Umgebung:

  • Schnellstart für die Verwendung des Cloud SQL Auth Proxy
  • So stellen Sie eine Verbindung mit dem Cloud SQL Auth Proxy her
  • So stellen Sie eine Verbindung mit dem Cloud SQL Auth Proxy von GKE her

Sie müssen den Cloud SQL Auth Proxy Motor flexible Umgebung.

Testen Sie es selbst

Wenn Sie Google Cloud noch nicht kennen, erstellen Sie ein Konto, um die Leistung von Cloud SQL in realen Szenarien zu bewerten. Neukunden erhalten außerdem 300 US-Dollar kostenloses Guthaben zum Ausführen, Testen und Bereitstellen von Workloads.

Cloud SQL kostenlos testen

Was der Cloud SQL Auth Proxy bietet

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

Der Zugriff auf Ihre Cloud SQL-Instanz über den Cloud SQL Auth Proxy bietet folgende Vorteile:

  • Sichere Verbindungen: Der Cloud SQL Auth Proxy verschlüsselt den Datenverkehr zur und von der Datenbank automatisch mit TLS 1.2 mit einer 128-Bit-AES-Verschlüsselung; SSL-Zertifikatewerden verwendet, um Client- und Server-Identitäten zu überprüfen.
  • Einfachere Verbindungsverwaltung: Der Cloud SQL Auth Proxy übernimmt die Authentifizierung mit Cloud SQL, sodass keine statischen IP-Adressen mehr angegeben werden müssen.

Der Cloud SQL Auth Proxy stellt keinen neuen Konnektivitätspfad bereit. Um eine Verbindung zu einer Cloud SQL-Instanz über eine private IP herzustellen, muss sich der Cloud SQL-Authentifizierungsproxy auf einer Ressource mit Zugriff auf dasselbe VPC-Netzwerk wie die Instanz befinden.

Funktionsweise des Cloud SQL Auth Proxy

Der Cloud SQL Auth Proxy funktioniert, indem ein lokaler Client in der lokalen Umgebung ausgeführt wird. Ihre Anwendung kommuniziert mit dem Cloud SQL Auth Proxymit dem von Ihrer Datenbank verwendeten Standarddatenbankprotokoll. Der Cloud SQL Auth Proxy verwendetein sicherer Tunnel zur Kommunikation mit dem Begleitprozess, der auf dem Server ausgeführt wird.

Während der Proxy jeden Port überwachen kann, erstellt er nur ausgehende Verbindungen zu Ihrer Cloud SQL-Instanz auf Port 3307. Wenn Sie über eine ausgehende Firewallrichtlinie verfügen, stellen Sie sicher, dass Verbindungen zu Port 3307 auf der IP-Adresse Ihrer Cloud SQLinstance zulässig sind.

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

 Diagramm des Cloud SQL Auth Proxy Herstellen einer Verbindung von der Clientsoftware zur SQL-Instanz

Anforderungen für die Verwendung des Cloud SQL Auth Proxy

Um den Cloud SQL Auth Proxy zu verwenden, müssen Sie die folgenden Anforderungen erfüllen:

  • Die Cloud SQL Admin API muss aktiviert sein.
  • Sie müssen dem Cloud SQL Auth Proxy Google Cloud-Authentifizierungsanmeldeinformationen zur Verfügung stellen.
  • Sie müssen dem Cloud SQL Auth Proxy ein gültiges Datenbankbenutzerkonto und ein gültiges Kennwort zur Verfügung stellen.
  • Die Instanz muss entweder eine öffentliche IPv4-Adresse haben oder für private IP konfiguriert sein.

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

Startoptionen für den Cloud SQL Auth-Proxy

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

  • Zu welchen Cloud SQL-Instanzen sollen Verbindungen hergestellt werden?
  • Hier wird nach Daten gesucht, die von Ihrer Anwendung an Cloud SQL gesendet werden sollen.
  • Hier finden Sie die Anmeldeinformationen, mit denen Sie Ihre Anwendung bei Cloud SQL authentifizieren.
  • Falls erforderlich, welcher IP-Adresstyp verwendet werden soll.

Die von Ihnen angegebenen Startoptionen für den Cloud SQL Auth-Proxy bestimmen, ob ein TCPport oder ein Unix-Socket überwacht wird. Wenn es auf einem Unix-Socket lauscht, erstellt es thesocket an dem von Ihnen gewählten Speicherort; normalerweise das Verzeichnis / cloudsql /.Für 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 anzuzeigen.

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

Verwenden eines Dienstkontos zur Authentifizierung

Der Cloud SQL Auth Proxy erfordert eine Authentifizierung. Der Vorteil der Verwendung eines Dienstkontos für diesen Zweck besteht darin, dass Sie eine Anmeldeinformationsdatei speziell für den Cloud SQL Auth Proxy erstellen können, die explizit und dauerhaft mit dem Cloud SQL Auth Proxy verknüpft ist, solange sie ausgeführt wird. Aus diesem Grund ist die Verwendung eines Dienstkontos die empfohlene Methode für productioninstances, die nicht auf einer Compute Engine-Instanz ausgeführt werden.

Die Anmeldeinformationsdatei kann in einem Systemabbild dupliziert werden, wenn Sie den Cloud SQL Auth Proxy von mehreren Computern aus aufrufen müssen.

Um diese Methode zu verwenden, müssen Sie die Anmeldeinformationsdatei erstellen und verwalten. Nur Benutzer mit der Berechtigung resourcemanager.projects.setIamPolicy (z. B. Projekteigentümer) können das Dienstkonto erstellen. Wenn Ihr Google Cloud-Benutzer nicht über diese Berechtigung verfügt, muss jemand anderes das Dienstkonto für Sie erstellen oder eine andere Methode verwenden, um den Cloud SQL Auth Proxy zu authentifizieren.

Hilfe zum Erstellen einer Anmeldeinformationsdatei finden Sie unter Erstellen eines Dienstkontos.

Erforderliche Berechtigungen für Dienstkonten

Wenn Sie ein Dienstkonto verwenden, um die Anmeldeinformationen für den Cloud SQL Auth Proxy bereitzustellen, müssen Sie es mit ausreichenden Berechtigungen erstellen. Wenn Sie die feineren IAM-Rollen (Identity Access and Management) zum Verwalten Ihrer Cloud SQL-Berechtigungen verwenden, müssen Sie dem Dienstkonto eine Rolle zuweisen, die die Berechtigung cloudsql.instances.connect enthält. Die vordefinierten Cloud SQL-Rollen, die diese Berechtigung enthalten, sind:

  • Cloud SQL Client
  • Cloud SQL Editor
  • Cloud SQL Admin

Wenn Sie die Legacy-Projektrollen (Viewer, Editor, Owner) verwenden, muss das serviceaccount mindestens über die Rolle Editor verfügen.

Optionen zum Angeben von Cloud SQL-Instanzen

Es gibt verschiedene Möglichkeiten, dem Cloud SQL-Authentifizierungsproxy mitzuteilen, mit welchen Instanzen Sie eine Verbindung herstellen möchten. Einige sind explizit und andere implizit. In einigen Konfigurationen müssen Sie dem Cloud SQL Auth Proxy nicht im Voraus mitteilen, zu welchen Instanzen Sie eine Verbindung herstellen möchten, da der Cloud SQL Auth Proxy eine Verbindung basierend auf Verbindungsanforderungen herstellt.

Ihre Optionen für die Beispielspezifikation hängen von Ihrem Betriebssystem und Ihrer Umgebung ab:

Option Vorteile Vorbehalte und Anforderungen Linux/macOS
(Unix-Sockets)
Java Windows Anmerkungen
SICHERUNG
(Dateisystem im Benutzerbereich)
Dynamische Socket-Erstellung basierend auf Verbindungsanforderungen; Kein Proxy-Neustart erforderlich, wenn sich Instanzen ändern. SICHERUNG muss installiert sein. Unterstützt Nein Nein Flag -fuse verwenden.
Automatische Instanzerkennung Keine Notwendigkeit, Instanzen anzugeben; sockets, die für alle Instanzen im Standardprojekt erstellt wurden. Die Nutzung der Cloud SQL Auth Proxy API wurde erhöht. Cloud SDK muss mit einem Standardprojektsatz installiert und authentifiziert sein. Cloud SQL Auth Proxy muss neu gestartet werden, um eine neue Instanz hinzuzufügen. Unterstützt Nein Nein Nicht empfohlen für Produktionsinstanzen.
Project discovery Es müssen keine Instanzen angegeben werden; Sockets werden für alle Instanzen in angegebenen Projekten erstellt. Die Nutzung der Cloud SQL Auth Proxy API wurde 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 Parameter -projects verwenden. Nicht für Produktionsinstanzen empfohlen.
Instanzen, die im Cloud SQL Auth Proxy-Aufruf angegeben sind 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 kommagetrennte Liste ohne Leerzeichen. Erfahren Sie mehr.
Instanzen, die mit Compute Engine-Metadaten angegeben wurden, können aktualisiert werden, indem der Metadatenwert geändert wird, 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. Erfahren Sie mehr.

Siehe Beispielaufrufe und Verbindungszeichenfolgen.

Cloud SQL Auth Proxy auf dem neuesten Stand halten

Google veröffentlicht gelegentlich neue Versionen des Cloud SQL Auth Proxy. Sie können sehen, was die aktuelle Version ist, indem Sie die überprüfencloud SQL Auth Proxy GitHub Releases Seite.Zukünftige Proxy-Releases werden auch im Google Groups Cloud SQL Announce Forum bekannt gegeben.

API-Nutzung

Der Cloud SQL Auth Proxy stellt Anforderungen an die Cloud SQL Admin API aus. Diese Anforderungen zählen zum API-Kontingent für Ihr Projekt.

Die höchste API-Nutzung tritt auf, wenn Sie den Cloud SQL Auth Proxy starten; dies gilt insbesondere, wenn Sie die automatische Instanzerkennung oder den Parameter -projects verwenden. Während der Cloud SQL Auth Proxy ausgeführt wird, werden pro Stunde 2 API-Aufrufe pro verbundener Instanz ausgegeben.

Informationen zum Erstellen eines speziellen Benutzerkontos für den Cloud SQL Auth Proxy

Wenn Sie über den Cloud SQL Auth Proxy eine Verbindung zu Ihrer Instanz herstellen, geben Sie ein Benutzerkonto an, mit dem Sie sich bei der Instanz anmelden. Sie können jedes Datenbankbenutzerkonto verwendenzu diesem Zweck. Da der Cloud SQL Auth Proxy jedoch immer eine Verbindung über einen Hostnamen herstellt, auf den nur der Cloud SQL Auth Proxy zugreifen kann, können Sie ein Benutzerkonto erstellen, das nur vom Cloud SQL Auth Proxy verwendet werden kann. Dies hat den Vorteil, dass Sie dieses Konto ohne Kennwort angeben können, ohne die Sicherheit Ihrer Instanz oder Ihrer Daten zu beeinträchtigen.

Um ein Benutzerkonto für Cloud SQL Auth Proxy-Verbindungen zu erstellen, geben Sie den Hostnamen als'cloudsqlproxy~' an. Sie können auch die IP addresswildcard verwenden, was zu 'cloudsqlproxy~%' führen würde. Der vollständige Name des Benutzerkontos wäre:

''@'cloudsqlproxy~%'

oder

''@'cloudsqlproxy~'

Hilfe zum Erstellen eines Benutzers finden Sie unter Erstellen und Verwalten von Benutzern.Informationen zur Funktionsweise von Cloud SQL mit Benutzerkonten finden Sie unter Benutzer. Informationen zu MySQL-Benutzerkonten finden Sie unter Sichern der ersten MySQL-Konten in derMySQL-Dokumentation.

Cloud SQL Auth Proxy Parameter und Flags

Der Cloud SQL Auth Proxy akzeptiert beim Start mehrere Flags und Parameter. Diese Optionen bestimmen, wo und wie der Cloud SQL Auth Proxy die Sockets erstellt, die er für die Kommunikation mit Cloud SQL verwendet, und wie er sich authentifiziert.

Hilfe zu Cloud SQL Auth Proxy-Optionen finden Sie in den folgenden Informationen:

  • Optionen zum Authentifizieren des Cloud SQL Auth Proxy
  • Optionen zum Angeben von Cloud SQL-Instanzen
  • Beispiel für Cloud SQL Auth Proxy-Aufrufe
  • Cloud SQL Auth Proxy GitHub-Seite
  • Die Cloud SQL Auth Proxy-Hilfe, die mit ./cloud_sql_proxy -help

Wie FUSE mit Cloud SQL Auth Proxy verwendet wird

FUSE steht für“Filesystem in User Space“.Abhängig davon, wie der Cloud SQL Auth Proxy aufgerufen wird, kann er optional FUSE verwenden, um die Sockets zu erstellen, die er für die Verbindung mit Cloud SQL verwendet.

Beim Herstellen einer Verbindung von Compute Engine oder lokalen Entwicklungsumgebungen verwendet der Cloud SQL Auth Proxy FUSE, um wie folgt auf Cloud SQL-Instanzen zuzugreifen:

  • Das Verzeichnis „/ cloudsql“ wird als Dateisystem im Userspace, orFUSE, von Cloud SQL Auth Proxy bereitgestellt.

  • Ein Prozess (z. B. mysql) versucht, eine Datei mit dem Namen $INSTANCE .

  • Der Cloud SQL Auth Proxy fängt die Anforderung ab und gibt zurück, dass /cloudsql/$INSTANCE ein asymbolischer Link ist, der auf einen Unix-Socket verweist, der sich an einer anderen Stelle im Dateisystem befindet.

  • Der Prozess (z. B. mysql) folgt dem Link und öffnet den Unix-Sockel, zu dem er führt, und stellt eine Verbindung her.

FUSE installieren

Für Linux:

FUSE erfordert das Programm fusermount und ein Kernelmodul. Sie können überprüfen, ob dieses Programm installiert ist, indem Sie nach dem suchendatei, /dev/fuse/. Wenn fusermount nicht auf Ihrem System ist, können Sie es installierenverwenden Sie Ihren Paketmanager oder kompilieren Sie ihn aus dem Quellcode.

Für macOS:

Installieren Sie FUSE für macOS.

Verwenden des Cloud SQL Auth Proxy in einer Produktionsumgebung

Wenn Sie den Cloud SQL Auth Proxy in einer Produktionsumgebung verwenden, können Sie einige Schritte ausführen, um sicherzustellen, dass der Cloud SQL Auth Proxy die erforderliche Verfügbarkeit für Ihre Anwendung bereitstellt.

Stellen Sie sicher, dass der Cloud SQL Auth Proxy als persistenter Dienst ausgeführt wird

Wenn der Cloud SQL Auth Proxy-Prozess gestoppt wird, werden alle vorhandenen Verbindungen über ihn unterbrochen, und Ihre Anwendung kann mit dem Cloud SQL Auth Proxy keine Verbindungen mehr zur Cloud SQL-Instanz herstellen. Um dieses Szenario zu verhindern, führen Sie den Cloud SQL Auth Proxy unbedingt als persistenten Dienst aus, sodass er automatisch neu gestartet wird, wenn der Cloud SQL Auth Proxy aus irgendeinem Grund beendet wird. Dies kann durch Verwendung von aservice wie systemd, upstart oder supervisor erreicht werden. Führen Sie für das Windows-Betriebssystem den Cloud SQL Auth Proxy als Windows-Dienst aus. Stellen Sie im Allgemeinen sicher, dass der Cloud SQL Auth Proxy die gleichen Verfügbarkeitsanforderungen hat wie Ihr Bewerbungsprozess.

Wie viele Kopien des Cloud SQL Auth Proxy Ihre Anwendung benötigt

Es ist nicht erforderlich, für jeden Anwendungsprozess einen Proxy-Prozess zu erstellen. 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, stellen Sie sicher, dass der Cloud SQL-Authentifizierungsproxy in der Konfiguration Ihrer virtuellen Maschine enthalten ist, sodass bei jedem Start einer neuen virtuellen Maschine ein eigener Cloud SQL-Authentifizierungsproxyprozess ausgeführt wird.

Es liegt an Ihnen, die Anzahl der Verbindungen zu verwalten, die Ihre Anwendung benötigt, indem Sie die Verbindungen einschränken oder bündeln. Der Cloud SQL Auth Proxy legt keine Einschränkungen für neue Verbindungsraten oder die Anzahl der persistenten Verbindungen fest.

Reduzieren der Cloud SQL Auth Proxy-Ausgabe

Wenn Sie die Größe des Cloud SQL Auth Proxy-Protokolls reduzieren müssen, können Sie dies tun, indem Sie beim Starten des Cloud SQL Auth Proxy-verbose=false festlegen. Beachten Sie jedoch, dass dies die Effektivität der Cloud SQL Auth Proxy-Ausgabe bei der Diagnose von Verbindungsproblemen verringert.

Auswirkungen des Failovers auf den Cloud SQL Auth Proxy

Wenn Sie den Cloud SQL Auth Proxy auf einer Instanz ausführen, die für hohe Verfügbarkeit konfiguriert ist, und ein Failover auftritt, sind Verbindungen über den Cloud SQL Auth Proxy genauso betroffen wie Verbindungen über IP: Alle vorhandenen Verbindungen gehen verloren, und die Anwendung muss neue Verbindungen herstellen. Es ist jedoch kein manueller Eingriff erforderlich. Die Anwendung kann weiterhin dieselben Verbindungszeichenfolgen verwenden wie zuvor.

Das Cloud SQL Auth Proxy-Docker-Image auf dem neuesten Stand halten

Das Cloud SQL Auth Proxy-Docker-Image basiert auf einer bestimmten Version des Cloud SQL Auth Proxy.Wenn eine neue Version des Cloud SQL Auth Proxy verfügbar ist, rufen Sie die neue Version des Cloud SQL Auth Proxy-Docker-Images ab, um Ihre Umgebung auf dem neuesten Stand zu halten. Sie können die aktuelle Version des Cloud SQL Auth Proxy anzeigen, indem Sie die Seite GitHub Releases des Cloud SQL Auth Proxy überprüfen.

  • Erfahren Sie mehr über den Cloud SQL Auth Proxy.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.