Auf dieser Seite erhalten Sie einen Überblick über den AlloyDB Auth-Proxy, einen Connector, mit dem Sie autorisierte, verschlüsselte Verbindungen zu AlloyDB-Datenbanken herstellen können.
Eine detaillierte Anleitung zur Verwendung des Auth-Proxys finden Sie unter Verbindung mit dem AlloyDB Auth-Proxy herstellen.
Übersicht
Der Auth-Proxy bietet gegenüber der direkten Verbindung von Clients mit AlloyDB-Datenbanken folgende Vorteile:
IAM-basierte Verbindungsautorisierung (AuthZ): Der Auth-Proxy verwendet die Anmeldedaten und Berechtigungen eines IAM-Hauptkontos, um Verbindungen zu AlloyDB-Instanzen zu autorisieren.
Sichere, verschlüsselte Kommunikation: Der Auth-Proxy erstellt, verwendet und verwaltet automatisch eine TLS 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 Datenverkehr 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 hat einen lokalen Client, der in der lokalen Umgebung ausgeführt wird. Ihre Anwendung kommuniziert mit dem AlloyDB Auth-Proxy über das Standarddatenbankprotokoll, das von Ihrer Datenbank verwendet wird.
Der AlloyDB Auth-Proxy verwendet einen sicheren Tunnel (TLS 1.3, 256-Bit-AES-Chiffre), um mit dem Begleitprozess zu kommunizieren, der auf dem Server ausgeführt wird. Jede Verbindung, die über den AlloyDB Auth-Proxy hergestellt wird, erstellt eine Verbindung zur AlloyDB-Instanz.
Wenn eine Anwendung eine Verbindung zum AlloyDB Auth-Proxy herstellt, wird geprüft, ob eine vorhandene Verbindung zwischen ihr und der AlloyDB-Zielinstanz verfügbar ist. Wenn keine Verbindung vorhanden ist, werden AlloyDB Admin APIs aufgerufen, um ein sitzungsspezifisches SSL-Zertifikat abzurufen und damit eine Verbindung zu AlloyDB herzustellen. Sitzungsspezifische SSL-Zertifikate laufen nach 24 Stunden ab. Der AlloyDB Auth-Proxy aktualisiert diese Zertifikate, bevor sie ablaufen.
Der AlloyDB Auth-Proxy kann zwar jeden Port überwachen, ausgehende oder ausgehende Verbindungen zu Ihrer AlloyDB-Instanz jedoch nur an Port 5433 herstellen. Da der AlloyDB Auth-Proxy APIs über den Domainnamen alloydb.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 5433 für IP-Adresse Ihrer AlloyDB-Instanz zulässt.
So autorisiert der AlloyDB Auth-Proxy IAM-Principals
Um die Verbindung eines Clients zu einer AlloyDB-Instanz zu autorisieren, authentifiziert sich der Auth-Proxy-Client mithilfe von IAM-Anmeldedaten für das Hauptkonto auf dem Client bei Google Cloud und prüft dann, ob das IAM-Hauptkonto die IAM-Rollen „Cloud AlloyDB-Client“ (roles/alloydb.client
) und „Nutzer der Dienstnutzung“ (roles/serviceusage.serviceUsageConsumer
) hat.
Um die IAM-Anmeldedaten auf dem Client zu finden, prüft der Auth-Proxy-Client die folgenden Elemente und verwendet das erste, das er findet, für die Authentifizierung bei Google Cloud:
Über das Flag „–credentials-file“ bereitgestellte Anmeldedaten
Erstellen Sie mit einem Dienstkonto die zugehörige JSON-Schlüsseldatei, laden Sie sie herunter und setzen Sie das Flag--credentials-file
auf den Pfad der Datei, wenn Sie den Auth-Proxy-Client starten. Das Dienstkonto muss die IAM-Rollen „Cloud AlloyDB-Client“ (roles/alloydb.client
) und „Nutzer der Dienstnutzung“ (roles/serviceusage.serviceUsageConsumer
) für die AlloyDB-Instanz haben.Wenn Sie diese Option in der Befehlszeile verwenden möchten, rufen Sie den Befehl
alloydb-auth-proxy
auf, wobei das Flag--credentials-file
auf den Pfad und den Dateinamen einer JSON-Anmeldedatendatei festgelegt ist. Der Pfad kann absolut oder relativ zum aktuellen Arbeitsverzeichnis sein.Vom Flag „–token“ bereitgestellte Anmeldedaten
Erstellen Sie ein Zugriffstoken und rufen Sie den Befehl
alloydb-auth-proxy
mit dem auf ein OAuth 2.0-Zugriffstoken gesetzten Flag--token
auf.Von einer Umgebungsvariable bereitgestellte Anmeldedaten
Diese Option ähnelt der Verwendung des Flags
--credentials-file
, mit dem Unterschied, dass Sie die JSON-Anmeldedatendatei angeben, die Sie in der UmgebungsvariableGOOGLE_APPLICATION_CREDENTIALS
festgelegt haben, anstatt das Flag--credentials-file
zu verwenden.Anmeldedaten eines authentifizierten Google Cloud CLI-Clients
Wenn Sie die gcloud CLI installiert und sich mit Ihrem privaten Konto authentifiziert haben, kann der Auth-Proxy-Client dieselben Anmeldedaten verwenden. Diese Methode ist besonders hilfreich, um eine Entwicklungsumgebung einzurichten und auszuführen.
Wenn für
gcloud auth login
kein Konto ausgewählt wurde, sucht der Auth-Proxy-Client nach einem Konto, das fürgcloud auth application-default login
ausgewählt wurde.Zur Compute Engine-Instanz gehörende Anmeldedaten
Wenn Sie eine Verbindung zu AlloyDB von einer Compute Engine-Instanz herstellen, kann der Auth-Proxy-Client das Dienstkonto verwenden, das mit der Compute Engine-Instanz verknüpft ist. Wenn dem Dienstkonto die IAM-Rollen „Cloud AlloyDB-Client“ (
roles/alloydb.client
) und „Nutzer der Dienstnutzung“ (roles/serviceusage.serviceUsageConsumer
) für die AlloyDB-Instanz zugewiesen sind, wird der Auth-Proxy-Client erfolgreich authentifiziert.Wenn sich die Compute Engine-Instanz im selben Projekt wie die AlloyDB-Instanz befindet, hat das standardmäßige Dienstkonto die erforderlichen Berechtigungen zur Authentifizierung der AlloyDB. Wenn sich die beiden Instanzen in verschiedenen Projekten befinden, müssen Sie das Dienstkonto der Compute Engine-Instanz dem Projekt hinzufügen, das die AlloyDB-Instanz enthält.
Standarddienstkonto der Umgebung
Wenn der Auth-Proxy-Client keine Anmeldedaten an einem der zuvor erwähnten Orte finden kann, folgt er der Vorgehensweise, die unter Als Dienstkonto authentifizieren dokumentiert ist. Einige Umgebungen (z. B. Compute Engine, App Engine und andere) bieten ein Standarddienstkonto, mit dem sich Ihre Anwendung standardmäßig authentifizieren kann. Wenn Sie ein Standarddienstkonto verwenden, muss es die IAM-Rollen „Cloud AlloyDB Client“ (roles/alloydb.client
) und „Service Usage Consumer“ (roles/serviceusage.serviceUsageConsumer
) haben.Weitere Informationen zum Authentifizierungsansatz von Google Cloud finden Sie unter Authentifizierung.