AlloyDB Auth-Proxy

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 Schritt-für-Schritt-Anleitung zur Verwendung des Auth-Proxys finden Sie unter Verbindung mit dem AlloyDB Auth-Proxy herstellen.

Vorteile der Verwendung des AlloyDB Auth-Proxys

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-Principals (Identity and Access Management), 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 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 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 kommuniziert über einen sicheren Tunnel (TLS 1.3, 256-Bit-AES-Chiffre) mit dem Begleitprozess, 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 ruft APIs über den Domainnamen alloydb.googleapis.com mit HTTPS auf. Daher müssen alle ausgehenden TCP-Verbindungen an Port 443 (HTTPS) vom Clientcomputer durch Ihre Firewall zugelassen werden.

Der AlloyDB Auth-Proxy kann zwar jeden Port überwachen, ausgehende oder ausgehende Verbindungen zu Ihrer AlloyDB-Instanz jedoch nur an Port 5433 herstellen. Wenn Ihr Clienthost eine Firewall für ausgehende Verbindungen hat, muss er Verbindungen zu Port 5433 auf der IP-Adresse Ihrer AlloyDB-Instanz zulassen. Der Clienthost muss außerdem Verbindungen zu Port 443, dem Standard-HTTPS-Port, zu allen IP-Adressen zulassen.

So autorisiert der AlloyDB Auth-Proxy IAM-Identitäten

Um die Verbindung eines Clients zu einer AlloyDB-Instanz zu autorisieren, authentifiziert sich der Auth Proxy-Client bei Google Cloud mit IAM-Hauptkontoanmeldedaten auf dem Client und prüft dann, ob das IAM-Hauptkonto die IAM-Rollen „Cloud AlloyDB Client“ (roles/alloydb.client) und „Service Usage Consumer“ (roles/serviceusage.serviceUsageConsumer) hat.

Um die IAM-Anmeldedaten auf dem Client zu finden, prüft der Auth-Proxy-Client das Vorhandensein der folgenden Elemente und verwendet das erste Element, das er findet, für die Authentifizierung bei Google Cloud:

  1. Vom 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 „Service Usage Consumer“ (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.

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

  3. 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 Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festgelegt haben, anstatt das Flag --credentials-file zu verwenden.

  4. Anmeldedaten eines authentifizierten Google Cloud CLI-Clients

    Wenn Sie die gcloud CLI installiert und sich mit Ihrem persönlichen Konto authentifiziert haben, kann der Auth-Proxy-Client dieselben Kontoanmeldedaten verwenden, wenn Sie das Flag --gcloud-auth aktivieren. 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ür gcloud auth application-default login ausgewählt wurde. Dies ist das Standardverhalten, wenn Sie das Flag --gcloud-auth nicht aktivieren.

  5. 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 das Dienstkonto die IAM-Rollen (Identity and Access Management) „Cloud AlloyDB Client“ (roles/alloydb.client) und „Service Usage Consumer“ (roles/serviceusage.serviceUsageConsumer) für die AlloyDB-Instanz hat, 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-Instanz. 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.

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

Nächste Schritte