Wenn Sie Ihre Anwendungen und Tools sicher mit AlloyDB for PostgreSQL-Datenbanken verbinden möchten, können Sie Netzwerk, Autorisierung, Authentifizierung und Verbindungs-Pooling konfigurieren:
Netzwerk: AlloyDB-Instanzen verwenden öffentliche oder private IP-Adressen in einem VPC-Netzwerk (Virtual Private Cloud). Es gibt mehrere Optionen, um sichere Verbindungen von Anwendungen zu ermöglichen, die außerhalb des VPC-Netzwerk ausgeführt werden.
Autorisierung: Mit dem AlloyDB Auth-Proxy und den AlloyDB Language Connectors können Sie die Identitäts- und Zugriffsverwaltung (Identity and Access Management, IAM) verwenden, um zu steuern, wer Zugriff auf Ihre Daten hat. Mit den Firewallregeln Ihres VPC-Netzwerk können Sie den Zugriff auf AlloyDB-Ressourcen weiter optimieren.
Authentifizierung: Verwenden Sie standardmäßige PostgreSQL-Nutzerauthentifizierungstechniken, um sich bei Ihren Instanzen anzumelden. AlloyDB unterstützt auch die IAM-basierte Authentifizierung mit Standard-PostgreSQL-Nutzerrollen.
Pooling: Verwenden Sie das clientseitige Standard-Verbindungs-Pooling von PostgreSQL und das serverseitige verwaltete Verbindungs-Pooling, um die Zuverlässigkeit, Leistung und Skalierbarkeit zu verbessern.
Informationen zur Auswahl der richtigen Verbindungseinrichtung für Ihre Arbeitslast finden Sie unter Verbindungsoption auswählen.
Netzwerk
Obwohl eine AlloyDB-Instanz viele Knoten enthält, stellen Ihre Anwendungen über eine einzige statische IP-Adresse eine Verbindung zu einer Instanz her. Diese Adresse kann entweder eine private IP-Adresse im VPC-Netzwerk sein, die Sie bei der Ersteinrichtung des Clusters einer Instanz angeben, oder eine öffentliche IP-Adresse, die direkte Verbindungen von außerhalb des VPC-Netzwerks ermöglicht.
Private IP-Adresse
Wenn Sie AlloyDB mit einer privaten IP-Adresse konfigurieren, erhält Ihre Instanz eine private IP-Adresse in Ihrem VPC-Netzwerk.
Private IP-Adressen wirken sich auf zwei Arten auf Verbindungen zu Ihrer Anwendung aus:
Anwendungen, die an anderer Stelle im VPC-Netzwerk Ihres Projekts ausgeführt werden, können ohne zusätzliche Schritte oder Ressourcen eine Verbindung zur Instanz oder zu einem Proxy herstellen, der die Instanz darstellt.
Unter Verbindung über Compute Engine herstellen wird beispielsweise gezeigt, wie Sie eine Verbindung zu Ihrer AlloyDB-Instanz herstellen, indem Sie das Befehlszeilenprogramm
psqlauf einer Compute Engine-VM in Ihrem VPC-Netzwerk ausführen.Anwendungen, die außerhalb des VPC-Netzwerk ausgeführt werden, benötigen einen Vermittlungsdienst, um eine Verbindung zur AlloyDB-Instanz herzustellen. Zu den Lösungen gehören das Ausführen von Proxy-Diensten auf einer VM im VPC-Netzwerk der Instanz oder die Verwendung andererGoogle Cloud -Produkte, um eine dauerhafte Verbindung zwischen Ihrer Anwendung und Ihrem VPC-Netzwerk herzustellen.
Weitere Informationen finden Sie unter Verbindung zu einem Cluster von außerhalb seiner VPC herstellen.
Verbindungen über private IP-Adressen bieten in der Regel eine geringere Latenz und weniger Angriffsvektoren, da sie nicht über das Internet geleitet werden müssen.
Weitere Informationen zu privaten IP-Adressen in AlloyDB finden Sie unter Private IP-Adressen – Übersicht.
Öffentliche IP-Adresse
Wenn Sie AlloyDB mit einer öffentlichen IP-Adresse konfigurieren, erhält Ihre Instanz eine öffentliche IP-Adresse für eingehende Verbindungen, die über das öffentliche Internet zugänglich ist. Optional können Sie autorisierte externe Netzwerke verwenden, um einen Bereich von IP-Adressen im CIDR-Format anzugeben, die auf Ihre Instanz zugreifen können.
Wir empfehlen, öffentliche IP-Adressen mit AlloyDB Language Connectors oder dem AlloyDB Auth-Proxy zu verwenden, um sichere Verbindungen zwischen dem Client und Ihrer Instanz zu gewährleisten.
Weitere Informationen zum Hinzufügen einer öffentlichen IP-Adresse und autorisierter externer Netzwerke zu Ihrer Instanz finden Sie unter Verbindung über öffentliche IP-Adresse herstellen.
AlloyDB unterstützt auch ausgehende Verbindungen von Ihrer Instanz zum öffentlichen Internet. Wenn Sie die ausgehende öffentliche IP-Adresse aktivieren, stellt AlloyDB eine konsistente und vorhersehbare Quell-IP-Adresse für Traffic bereit, der Ihre AlloyDB-Instanz in Richtung des öffentlichen Internets verlässt. Wenn Sie diese Funktion aktivieren, stellt AlloyDB ein Paar statischer öffentlicher IP-Adressen bereit, die ausschließlich für ausgehende Verbindungen von Ihrer Instanz verwendet werden.
Ausgehende Verbindungen sind in folgenden Szenarien besonders nützlich:
Datenbankmigration: Wenn Sie Ihre Daten mit dem Database Migration Service von einer externen Datenbank zu AlloyDB migrieren, können Sie die Firewall der externen Datenbank so konfigurieren, dass Verbindungen von den spezifischen ausgehenden IP-Adressen Ihrer AlloyDB-Instanz zugelassen werden. So wird ein sicherer Datenübertragungspfad gewährleistet.
Foreign Data Wrapper: Wenn Sie Daten aus einer externen Datenbank in AlloyDB mithilfe von Foreign Data Wrappern wie
postgres_fdwoderoracle_fdwabfragen müssen, können Sie die ausgehenden IP-Adressen Ihrer Instanz der Zulassungsliste der externen Datenbank hinzufügen. Mit dieser Konfiguration kann AlloyDB eine sichere Verbindung zur externen Datenquelle herstellen und diese abfragen.
Wenn Sie die öffentliche IP-Adresse für ausgehenden Traffic aktivieren, können Sie die zugewiesenen IP-Adressen in der Google Cloud Console oder über die gcloud CLI aufrufen. Anschließend können Sie diese IP-Adressen verwenden, um Firewallregeln oder Zugriffssteuerungslisten (ACLs) auf Ihren externen Systemen zu konfigurieren, damit Ihre AlloyDB-Instanz auf Ihre externen Systeme zugreifen kann.
Weitere Informationen zum Aktivieren einer öffentlichen IP-Adresse für ausgehende Verbindungen finden Sie unter Ausgehende Verbindung zu einer Instanz hinzufügen.
Autorisierung
Sie können den Zugriff auf einen AlloyDB-Cluster mithilfe von AlloyDB Language Connectors, dem AlloyDB Auth-Proxy oder VPC-Firewallregeln steuern.
AlloyDB Language Connectors
AlloyDB Language Connectors sind Clientbibliotheken, die für das Herstellen einer Verbindung zu einem AlloyDB-Cluster eine automatisierte mTLS mit TLS 1.3 und eine IAM-Autorisierung ermöglichen.
Sie können diese Bibliotheken direkt in ihrer jeweiligen Programmiersprache verwenden. Sie bieten die gleichen Funktionen wie der Auth-Proxy, ohne dass ein externer Prozess erforderlich ist. Dieser Ansatz bietet eine höhere Sicherheit und geringere Konfigurationsanforderungen für die Verbindung mit AlloyDB.
Weitere Informationen finden Sie unter AlloyDB Language Connectors – Übersicht.
Verbindung über gcloud herstellen
Für interaktive Datenbanksitzungen können Sie den Befehl gcloud beta alloydb connect verwenden. Dieser Befehl vereinfacht den Verbindungsprozess, da er automatisch eine lokale Instanz des AlloyDB Auth-Proxys verwaltet und eine psql-Clientsitzung für Sie startet.
Weitere Informationen finden Sie unter Verbindung über gcloud herstellen.
Zugriff mit IAM und dem AlloyDB Auth-Proxy steuern
Sie können zwar über die IP-Adresse direkt eine Verbindung zu einer Instanz herstellen, wir empfehlen jedoch, in Produktionsumgebungen den AlloyDB Auth-Proxy zu verwenden. Er bietet eine IAM-basierte Zugriffssteuerung und eine Ende-zu-Ende-Verschlüsselung zwischen dem Proxy und Ihrem Cluster.
Weitere Informationen finden Sie unter Informationen zum AlloyDB Auth-Proxy.
VPC-Zugriff mit Firewallregeln einschränken
Wie bei jedem cloudbasierten Projekt sollten Sie die Firewallregeln Ihres VPC-Netzwerk so anpassen, dass der Netzwerkzugriff nur auf die IP-Bereiche oder Subnetzwerke beschränkt ist, von denen aus Ihre Anwendungen eine Verbindung herstellen. Diese Vorgehensweise ist besonders bei externen Anwendungen wichtig, wie unter Verbindung zu einem Cluster von außerhalb seiner VPC herstellen beschrieben.
Weitere Informationen zum Konfigurieren der Firewall Ihres VPC-Netzwerk finden Sie unter VPC-Firewallregeln.
Authentifizierung
AlloyDB unterstützt zwei Arten von Datenbanknutzern, die sich jeweils auf ihre eigene Weise bei Ihren Datenbanken authentifizieren:
Standard-PostgreSQL-Nutzerrollen werden mit einem Nutzernamen und einem Passwort authentifiziert. Sie verwalten diese Konten mit herkömmlichen PostgreSQL-Nutzerverwaltungstechniken. Weitere Informationen finden Sie unter PostgreSQL-Nutzer mit integrierter Authentifizierung verwalten.
IAM-Nutzer- und -Dienstkonten authentifizieren sich als Datenbanknutzer mit OAuth 2.0-Tokens. Sie verwalten diese Konten mit demGoogle Cloud IAM-System. Weitere Informationen finden Sie unter IAM-Authentifizierung verwalten.
Nach der Authentifizierung bei einer AlloyDB-Instanz kann eine Anwendung die Instanz wie einen gewöhnlichen PostgreSQL-Server behandeln. Nachdem Sie Netzwerk- und Autorisierungsrouten zu einer Instanz eingerichtet haben, können Sie sich mit Standard-PostgreSQL-Techniken in einer Instanz anmelden und auf Ihre Daten zugreifen. Das gilt sowohl für die manuelle Anmeldung mit einem Tool wie psql als auch für die programmatische Verbindung zu Ihrer Datenbank über eine PostgreSQL-Codebibliothek.
In der Regel melden Sie sich bei der ersten Authentifizierung mit einem neuen AlloyDB-Cluster als postgres-Nutzer bei der primären Instanz an. Verwenden Sie dazu das Passwort, das Sie beim Erstellen des Clusters angegeben haben. Dort können Sie Datenbanknutzer ohne Administratorberechtigungen für Ihre Anwendung erstellen.
Wenn Sie beim Erstellen eines Clusters kein Passwort für postgres festlegen, können Sie sich nicht im Cluster anmelden. Legen Sie zum Anmelden entweder ein Passwort für postgres fest oder erstellen Sie einen zusätzlichen Nutzer. Weitere Informationen finden Sie unter PostgreSQL-Nutzer mit integrierter Authentifizierung verwalten.
Pooling
Verbindungspooling ist eine Technik, mit der Sie dafür sorgen können, dass Ihre Arbeitslast eine zuverlässige und leistungsstarke Verbindung zu Ihrer Datenbank hat. Sie ist sowohl auf der Client- als auch auf der Serverseite nützlich.
Client-Verbindungs-Pooling
Verwenden Sie einen Clientverbindungspool, wenn Sie eine Verbindung zu AlloyDB herstellen. Der Clientverbindungspool erstellt mehrere Verbindungen zu Ihrer Datenbank und sorgt dafür, dass diese Verbindungen während der gesamten Lebensdauer Ihrer Arbeitslast aktiv und fehlerfrei bleiben. Dieser Ansatz sorgt dafür, dass Ihre Arbeitslast eine zuverlässige Verbindung zu Ihrer Datenbank hat.
- Wenn Sie Abfragen manuell über die Befehlszeile ausführen.
- Wenn Sie eine Sprache verwenden, die kein Client-Verbindungspooling unterstützt.
- Wenn die Arbeitslast sitzungsspezifisch ist und keine langlebige Verbindung aufrechterhält.
Sie können einen beliebigen Standard-Client-Verbindungspool verwenden, der PostgreSQL unterstützt. Beachten Sie dabei Folgendes:
- Die Client-Verbindungspool-Bibliothek ist manchmal vom PostgreSQL-Treiber getrennt.
- Der PostgreSQL-Treiber enthält manchmal Client-Verbindungspooling-Funktionen in derselben Bibliothek.
Im Folgenden sind häufig verwendete Bibliotheken für Verbindungspools aufgeführt:
- HikariCP für Java
- SQLAlchemy für Python
- pgxpool für Go
- node-postgres für Node.js
- Npgsql für .NET
Wenn die Bibliothek PostgreSQL unterstützt, können Sie sie mit AlloyDB verwenden.
Clientverbindungspools konfigurieren
Damit Sie die bestmögliche Leistung aus Ihrem Clientverbindungspool herausholen, müssen Sie möglicherweise die Poolgröße konfigurieren. Verwenden Sie die folgende Formel als Ausgangspunkt:
connections = (vCPU count * 2) + 1
Weitere Informationen finden Sie unter Poolgröße. Je nach realer Last müssen Sie möglicherweise zusätzliche Optimierungen vornehmen.
Verwaltetes Verbindungs-Pooling verwenden
Zusätzlich zum Clientverbindungs-Pooling unterstützt AlloyDB auch serverseitiges Verbindungs-Pooling mit verwaltetem Verbindungs-Pooling.
Sie können verwaltetes Verbindungs-Pooling für jede transaktionale Arbeitslast verwenden. Es eignet sich jedoch am besten für Anwendungen mit vielen kurzlebigen Verbindungen oder für Anwendungen, bei denen es zu einem plötzlichen Anstieg der Verbindungen kommen kann. Weitere Informationen finden Sie unter Verwaltetes Verbindungs-Pooling konfigurieren.
Nächste Schritte
- Wählen Sie eine Konnektivitätsoption aus.
- Verbindung über die gcloud CLI herstellen
Verbindung zu einer AlloyDB-Instanz mit der
psql-Befehlszeile herstellen Diese Anleitung enthält Anweisungen zum Einrichten einer VM in Ihrem VPC-Netzwerk und zum Installieren vonpsqldarauf.AlloyDB Auth-Proxy installieren und verwenden, um sichere Verbindungen zu Ihrer AlloyDB-Instanz herzustellen
Informationen zum Herstellen einer Verbindung über AlloyDB Language Connectors
Hier erfahren Sie, wie Sie mit dem Google Cloud Data Agent Kit eine Verbindung über VS Code oder eine KI-gestützte Befehlszeile herstellen.