Der AlloyDB Auth-Proxy ist ein Connector, mit dem Sie autorisierte, verschlüsselte Verbindungen zu Ihren AlloyDB for PostgreSQL-Datenbanken herstellen können, ohne SSL-Zertifikate verwalten oder Firewallregeln konfigurieren zu müssen. Eine detaillierte Anleitung zur Verwendung des Auth-Proxys finden Sie unter Verbindung mit dem AlloyDB Auth-Proxy herstellen.
Vorteile des AlloyDB Auth-Proxys
Der Auth-Proxy bietet gegenüber der direkten Verbindung von Clients mit AlloyDB-Datenbanken die folgenden Vorteile:
IAM-basierte Verbindungsautorisierung. Der Auth-Proxy verwendet die Anmeldedaten und Berechtigungen eines IAM-Hauptkontos, um Verbindungen zu AlloyDB-Instanzen zu autorisieren.
Automatisierte IAM-Authentifizierung Der Auth-Proxy kann Datenbanknutzer automatisch anhand des IAM-Hauptkontos authentifizieren, das den Proxy ausführt.
Sichere, verschlüsselte Kommunikation: Der Auth-Proxy erstellt, verwendet und verwaltet automatisch eine gegenseitige TLS (mTLS) 1.3-Verbindung mit einer 256-Bit-AES-Chiffre zwischen Ihrem Client und einer AlloyDB-Instanz, um Client- und Serveridentitäten zu überprüfen und den Datentraffic zu verschlüsseln.
Weitere Informationen zum Herstellen einer Verbindung zu AlloyDB-Instanzen finden Sie unter Verbindungsübersicht.
Funktionsweise des AlloyDB Auth-Proxys
Der AlloyDB Auth-Proxy wird als lokaler Clientprozess (alloydb-auth-proxy) in Ihrer Anwendungsumgebung ausgeführt und wartet auf Verbindungen zu localhost (standardmäßig über TCP-Port 5432) oder zu einem lokalen Unix-Domain-Socket. Ihre Anwendung stellt eine Verbindung zu diesem lokalen Listener her, indem sie Standard-PostgreSQL-Treiber und -Wire-Protokolle verwendet. Der Auth-Proxy-Client leitet den Traffic über einen verschlüsselten Tunnel (mTLS 1.3 mit einer 256-Bit-AES-Chiffre) an den zugehörigen Auth-Proxy-Serverprozess weiter, der auf der AlloyDB-Instanz ausgeführt wird. Jede Verbindung, die über den Auth-Proxy hergestellt wird, erstellt eine Verbindung zur AlloyDB-Instanz.
Wenn eine Anwendung eine Verbindung zum Auth-Proxy herstellt, prüft der Proxy, ob eine vorhandene Verbindung zur AlloyDB-Zielinstanz verfügbar ist. Wenn keine Verbindung vorhanden ist, ruft der Proxy die AlloyDB API auf, um ein sitzungsspezifisches SSL-Zertifikat abzurufen und damit den mTLS-Tunnel zur Instanz herzustellen. Sitzungsspezifische SSL-Zertifikate laufen nach 24 Stunden ab und werden vom Auth-Proxy automatisch aktualisiert, bevor sie ablaufen.
Der Auth-Proxy ruft die AlloyDB API über den Domainnamen alloydb.googleapis.com über HTTPS auf. Daher muss Ihre Firewall ausgehende TCP-Verbindungen über Port 443 (HTTPS) vom Clientcomputer zulassen.
Der Auth-Proxy kann zwar lokal jeden Port überwachen, ausgehende Verbindungen zu Ihrer AlloyDB-Instanz werden jedoch nur über den TCP-Port 5433 hergestellt. Wenn Ihr Clienthost eine Firewall für ausgehende Verbindungen hat, muss er Verbindungen zu Port 5433 für die IP-Adresse Ihrer AlloyDB-Instanz und zu Port 443 für alle IP-Adressen zulassen.
Sie können den Auth-Proxy für alle AlloyDB-Netzwerkverbindungspfade verwenden:
- Zugriff auf private Dienste (Standard): Stellt eine Verbindung zur internen IP-Adresse der Instanz in einem Peering-VPC-Netzwerk (Virtual Private Cloud) her.
- Private Service Connect: Stellt eine Verbindung über einen Private Service Connect-Endpunkt und einen privaten DNS-Eintrag her, wenn Sie das Flag
--pscübergeben. - Öffentliche IP-Adresse: Stellt eine Verbindung zur öffentlichen IP-Adresse der Instanz her, wenn Sie das Flag
--public-ipübergeben. Da der Auth-Proxy Verbindungen mithilfe von IAM und mTLS über Port5433authentifiziert und verschlüsselt, müssen Sie die IP-Adresse Ihres Clients nicht zu Autorisierte externe Netzwerke hinzufügen, wenn Sie eine Verbindung über den Auth-Proxy herstellen.
So authentifiziert und autorisiert der AlloyDB Auth-Proxy Verbindungen
Um die Verbindung eines Clients zu einer AlloyDB-Instanz zu autorisieren, authentifiziert sich der Auth-Proxy-Client bei Google Cloud mit den Anmeldedaten des IAM-Hauptkontos auf dem Client und prüft dann, ob das IAM-Hauptkonto die IAM-Rollen „AlloyDB-Client“ (roles/alloydb.client) und „Service Usage Consumer“ (roles/serviceusage.serviceUsageConsumer) hat.
Standardmäßig verwendet der Auth-Proxy-Client Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC), um Clientanmeldedaten zu finden. So können sich Anwendungen automatisch authentifizieren, ohne dass Konfigurationswerte bearbeitet oder hartcodiert werden müssen.
Standardauthentifizierung
Für Standardentwicklungs- und Produktionskonfigurationen müssen Sie keine benutzerdefinierten Anmeldedaten oder Flags konfigurieren. Der Auth-Proxy-Client löst Anmeldedaten automatisch über Standardumgebungspfade auf. Je nach der Umgebung, in der Sie den Auth-Proxy-Client ausführen, werden Anmeldedaten aus den folgenden Quellen abgerufen:
Lokale Entwicklung: Wenn Sie lokal entwickeln, können Sie sich mit Ihrem privaten oder geschäftlichen Google-Nutzerkonto authentifizieren. Der Auth-Proxy-Client erkennt diese Anmeldedaten automatisch und verwendet sie. Dies ist der empfohlene Ansatz für die lokale Entwicklung, da Sie so keine Dienstkontoschlüsseldateien lokal herunterladen müssen. Eine vollständige Anleitung zum Einrichten einer lokalen Entwicklungsumgebung finden Sie unter Verbindung von Ihrem Laptop herstellen und
psql-Befehlszeilentool installieren.Von Google verwaltete Umgebungen Wenn Sie Ihre Anwendung in einemGoogle Cloud -Dienst ausführen, z. B. Compute Engine-Instanzen, Google Kubernetes Engine, Cloud Run, Cloud Run Functions oder App Engine, werden die Anmeldedaten des angehängten Dienstkontos automatisch vom Metadatenserver der Umgebung bereitgestellt. Der Auth-Proxy-Client erkennt und verwendet diese Anmeldedaten automatisch ohne zusätzliche Konfiguration.
- Wenn sich die Compute-Ressource im selben Projekt wie die AlloyDB-Instanz befindet, hat das Standarddienstkonto in der Regel die erforderlichen Berechtigungen zur Authentifizierung.
- Wenn sich die Compute-Ressource und die AlloyDB-Instanz in verschiedenen Projekten befinden, müssen Sie das Dienstkonto der Compute-Ressource dem Projekt hinzufügen, das die AlloyDB-Instanz enthält, und ihm die erforderlichen Rollen zuweisen.
Anmeldedaten überschreiben
In bestimmten Szenarien, z. B. beim Testen, beim Ausführen außerhalb vonGoogle Cloudoder wenn Sie die Standardanmeldedaten der Umgebung umgehen möchten, können Sie die Anmeldedaten mit einer der folgenden Methoden überschreiben:
Ein Dienstkontoschlüssel Geben Sie den Schlüssel entweder über die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALSoder das Flag--credentials-filean. Dienstkontoschlüssel stellen ein Sicherheitsrisiko dar, wenn sie nicht richtig verwaltet werden. Verwenden Sie daher nach Möglichkeit eine der Standardquellen.Ein vorhandenes OAuth 2.0-Zugriffstoken. Geben Sie das Token über das Flag
--tokenan.Anmeldedaten der gcloud CLI. Geben Sie diese Anmeldedaten über das Flag
--gcloud-authan. Wir empfehlen dieses Flag nicht. Führen Sie stattdessengcloud auth application-default loginaus.
Weitere Informationen zum Konfigurieren dieser Anmeldedaten auf dem Client finden Sie unter Verbindung über den AlloyDB Auth-Proxy herstellen. Allgemeine Informationen zum Authentifizierungsansatz von Google Cloud finden Sie unter Authentifizierung – Übersicht.
Nächste Schritte
- Verbindung mit dem AlloyDB Auth-Proxy herstellen
- Über den Laptop verbinden
- Installieren Sie das
psql-Befehlszeilentool. - Google Cloud GitHub-Repository für den AlloyDB Auth-Proxy ansehen