Öffentlicher Zugriff in Azure Cosmos DB for PostgreSQL
GILT FÜR: Azure Cosmos DB for PostgreSQL (unterstützt von der Citus-Datenbankerweiterung auf PostgreSQL)
Azure Cosmos DB for PostgreSQL unterstützt drei Netzwerkoptionen:
- Kein Zugriff
- Dies ist die Standardeinstellung für einen neu erstellten Cluster, wenn der öffentliche oder private Zugriff nicht aktiviert ist. Keine Computer, weder innerhalb noch außerhalb von Azure, können eine Verbindung mit den Datenbankknoten herstellen.
- Öffentlicher Zugriff
- Dem Koordinatorknoten wird eine öffentliche IP-Adresse zugewiesen.
- Der Zugriff auf den Koordinatorknoten wird durch eine Firewall geschützt.
- Optional kann der Zugriff auf alle Workerknoten aktiviert werden. In diesem Fall werden den Workerknoten öffentliche IP-Adressen zugewiesen und sie werden durch dieselbe Firewall geschützt.
- Privater Zugriff
- Den Clusterknoten werden nur private IP-Adressen zugewiesen.
- Jeder Knoten erfordert einen privaten Endpunkt, damit Hosts im ausgewählten virtuellen Netzwerk auf die Knoten zugreifen können.
- Sicherheitsfeatures virtueller Azure-Netzwerke wie Netzwerksicherheitsgruppen können für die Zugriffssteuerung verwendet werden.
Wenn Sie einen Cluster erstellen, können Sie den öffentlichen oder privaten Zugriff aktivieren oder sich für die Standardeinstellung „Kein Zugriff“ entscheiden. Nachdem der Cluster erstellt wurde, können Sie zwischen öffentlichem oder privatem Zugriff wechseln oder beide Optionen gleichzeitig aktivieren.
Auf dieser Seite wird die Option des öffentlichen Zugriffs beschrieben. Informationen zum privaten Zugriff finden Sie unter Privater Zugriff in Azure Cosmos DB for PostgreSQL.
Firewallübersicht
Die Azure Cosmos DB for PostgreSQL-Serverfirewall verhindert jeglichen Zugriff auf Ihren Koordinatorknoten, bis Sie angeben, welche Computer zugriffsberechtigt sind. Die Firewall gewährt den Serverzugriff auf der Grundlage der Ursprungs-IP-Adresse der jeweiligen Anforderung. Zum Konfigurieren der Firewall erstellen Sie Firewallregeln, die Bereiche zulässiger IP-Adressen festlegen. Sie können Firewallregeln auf Serverebene erstellen.
Firewallregeln: Diese Regeln ermöglichen Clients, auf Ihren Koordinatorknoten zuzugreifen (also auf alle Datenbanken auf demselben logischen Server). Firewallregeln auf Serverebene können über das Azure-Portal konfiguriert werden. Zum Erstellen von Firewallregeln auf Serverebene müssen Sie der Besitzer oder ein Mitwirkender des Abonnements sein.
Jeglicher Datenbankzugriff auf den Koordinatorknoten wird standardmäßig durch die Firewall blockiert. Damit Sie Ihren Server über einen anderen Computer verwenden können, müssen Sie eine oder mehrere Firewallregeln auf Serverebene angeben, die Zugriff auf Ihren Server ermöglichen. Legen Sie mithilfe der Firewallregeln fest, welche IP-Adressbereiche aus dem Internet zugelassen werden sollen. Der Zugriff auf die Website des Azure-Portals selbst wird durch die Firewallregeln nicht beeinträchtigt. Verbindungsversuche über das Internet und über Azure müssen zunächst die Firewall passieren, bevor sie Ihre PostgreSQL-Datenbank erreichen (wie in der folgenden Abbildung dargestellt):
Herstellen einer Verbindung über das Internet und über Azure
Die Firewall eines Clusters steuert, wer eine Verbindung mit dem Koordinatorknoten herstellen darf. Die Firewall bestimmt den Zugriff anhand einer konfigurierbaren Regelliste. Jede Regel entspricht einer einzelnen oder einem Bereich von IP-Adressen, über die der Zugriff zulässig ist.
Wenn die Firewall Verbindungen blockiert, können Anwendungsfehler auftreten. Die Verwendung des PostgreSQL-JDBC-Treibers kann einen mit folgendem vergleichbaren Fehler auslösen:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL
Unter Erstellen und Verwalten von Firewallregeln erfahren Sie, wie die Regeln definiert werden.
Problembehandlung der Datenbankserverfirewall
Wenn der Zugriff auf den Microsoft Azure Cosmos DB for PostgreSQL-Dienst nicht das erwartete Verhalten aufweist, sollten Sie Folgendes beachten:
Änderungen an der Zulassungsliste sind noch nicht wirksam: Änderungen an der Firewallkonfiguration von Azure Cosmos DB for PostgreSQL werden möglicherweise erst nach fünf Minuten wirksam.
Die Benutzer*innen sind nicht autorisiert, oder ein falsches Kennwort wurde verwendet: Wenn Benutzer*innen nicht über Berechtigungen für den Server verfügen oder ein falsches Kennwort verwenden, wird die Verbindung mit dem Server verweigert. Durch das Erstellen einer Firewalleinstellung wird Clients lediglich die Möglichkeit gegeben, einen Verbindungsversuch zum Server zu unternehmen. Jeder Client muss weiterhin die erforderlichen Sicherheitsanmeldeinformationen bereitstellen.
Beispielsweise kann bei der Verwendung eines JDBC-Clients folgende Fehlermeldung angezeigt werden.
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"
Dynamische IP-Adresse: Wenn Sie über eine Internetverbindung mit dynamischer IP-Adressierung verfügen und Probleme beim Passieren der Firewall auftreten, können Sie eine der folgenden Lösungen ausprobieren:
Fragen Sie Ihren Internetdienstanbieter (ISP) nach dem IP-Adressbereich, der den Clientcomputern zugewiesen ist, mit denen auf den Koordinatorknoten zugegriffen wird, und fügen Sie dann den IP-Adressbereich als eine Firewallregel hinzu.
Verwenden Sie stattdessen die statische IP-Adressierung für die Clientcomputer, und fügen Sie dann die statische IP-Adresse als Firewallregel hinzu.
Nächste Schritte
Artikel zum Erstellen von Firewallregeln auf Serverebene und auf Datenbankebene finden Sie hier: