Firewallregeln bei Azure Database for PostgreSQL – Flexibler Server
GILT FÜR: Azure Database for PostgreSQL – Flexibler Server
Wenn Sie einen flexiblen Azure Database for PostgreSQL-Server ausführen, haben Sie zwei Hauptoptionen für das Netzwerk. Die Optionen sind der private Zugriff (Integration in ein virtuelles Netzwerk) und der öffentliche Zugriff (zugelassene IP-Adressen).
Bei öffentlichem Zugriff erfolgt der Zugriff auf die Instanz des flexiblen Azure Database for PostgreSQL-Servers über einen öffentlichen Endpunkt. Standardmäßig blockiert die Firewall den gesamten Zugriff auf den Server. Um festzulegen, welche IP-Hosts auf den Server zugreifen können, erstellen Sie Firewallregeln auf Serverebene. Firewallregeln geben die zulässigen Bereiche für öffentliche IP-Adressen an. Die Firewall gewährt den Serverzugriff auf der Grundlage der Ursprungs-IP-Adresse der jeweiligen Anforderung. Mit privatem Zugriff ist kein öffentlicher Endpunkt verfügbar, und nur Hosts, die sich im selben Netzwerk befinden, können auf den flexiblen Azure Database for PostgreSQL-Server zugreifen.
Sie können Firewallregeln über das Azure-Portal oder mithilfe von Azure CLI-Befehlen erstellen. Sie müssen der Besitzer oder ein Mitwirkender des Abonnements sein.
Firewallregeln auf Serverebene wirken sich auf alle Datenbanken in der gleichen Instanz des flexiblen Azure Database for PostgreSQL-Servers aus. Die Regeln wirken sich nicht auf den Zugriff auf die Website des Microsoft Azure-Portals aus.
Im folgenden Diagramm wird veranschaulicht, wie Verbindungsversuche über das Internet und über Azure zunächst die Firewall passieren müssen, bevor sie Datenbanken auf flexiblen Azure Database for PostgreSQL-Servern erreichen:
Verbindung aus dem Internet
Liegt die IP-Quelladresse der Anforderung innerhalb eines der in den Firewallregeln auf Serverebene angegebenen Bereiche, wird die Verbindung gewährt. Andernfalls wird sie abgelehnt.
Wenn Ihre Anwendung beispielsweise eine Verbindung mit dem Java Database Connectivity-Treiber (JDBC) für den flexiblen Azure Database for PostgreSQL-Server herstellt, kann folgender Fehler auftreten, weil die Verbindung durch die Firewall blockiert wird:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: Kein pg_hba.conf-Eintrag für Host „123.45.67.890“, Benutzer „adminuser“, Datenbank „postgresql“, SSL
Hinweis
Wenn Sie von Ihrem lokalen Computer aus auf einen flexiblen Azure Database for PostgreSQL-Server zugreifen möchten, stellen Sie sicher, dass die Firewall in Ihrem Netzwerk und auf Ihrem lokalen Computer ausgehende Kommunikation am TCP-Port 5432 zulässt.
Herstellen einer Verbindung von Azure
Es wird empfohlen, die IP-Adresse für ausgehenden Datenverkehr einer beliebigen Anwendung oder eines Diensts zu ermitteln und den Zugriff auf die einzelnen IP-Adressen oder -Bereiche explizit zuzulassen. Sie können zum Beispiel die IP-Adresse für ausgehenden Datenverkehr einer Azure App Service-App suchen oder eine öffentliche IP-Adresse verwenden, die an einen virtuellen Computer gebunden ist.
Wenn eine feste IP-Adresse für ausgehenden Datenverkehr für Ihren Azure-Dienst nicht verfügbar ist, ziehen Sie die Aktivierung von Verbindungen von allen IP-Adressen in Azure-Rechenzentren in Erwägung:
- Aktivieren Sie im Azure-Portal im Bereich Netzwerk das Kontrollkästchen Öffentlichen Zugriff auf diesen Server über beliebigen Azure-Dienst in Azure gestatten.
- Wählen Sie Speichern aus.
Wichtig
Die Option Öffentlichen Zugriff auf diesen Server über beliebigen Azure-Dienst in Azure gestatten konfiguriert die Firewall so, dass alle von Azure ausgehenden Verbindungen zugelassen werden, einschließlich der Verbindungen aus Abonnements anderer Kunden. Stellen Sie bei Verwendung dieser Option sicher, dass Ihre Anmelde- und Benutzerberechtigungen den Zugriff auf autorisierte Benutzer beschränken.
Programmgesteuertes Verwalten von Firewallregeln
Neben der Verwendung des Microsoft Azure-Portals können Sie Firewall-Regeln auch programmseitig über die Azure-Befehlszeilenschnittstelle verwalten.
In der Azure-Befehlszeilenschnittstelle entspricht eine Firewallregeleinstellung mit der Start- und Endadresse „0.0.0.0“ der Option Öffentlichen Zugriff auf diesen Server über beliebigen Azure-Dienst in Azure gestatten im Portal. Wenn die Firewallregeln den Verbindungsversuch ablehnen, kann die App die Instanz des flexiblen Azure Database for PostgreSQL-Servers nicht erreichen.
Behandeln von Firewallproblemen
Wenn der Zugriff auf die Instanz des flexiblen Azure Database for PostgreSQL-Servers nicht das erwartete Verhalten aufweist, ziehen Sie folgende Möglichkeiten in Betracht:
Änderungen an der Zulassungsliste sind noch nicht wirksam: Änderungen an der Firewallkonfiguration der Instanz des flexiblen Azure Database for PostgreSQL-Servers können bis zu fünf Minuten dauern.
Die Anmeldung ist nicht autorisiert, oder ein falsches Kennwort wurde verwendet: Wenn eine Anmeldung nicht über Berechtigungen für die Instanz des flexiblen Azure Database for PostgreSQL-Servers verfügt oder das Kennwort falsch ist, wird die Verbindung zum 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.
Der folgende Fehler kann beispielsweise auftreten, wenn die Authentifizierung für einen JDBC-Client fehlschlägt:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: KRITISCH: Fehler bei der Kennwortauthentifizierung für Benutzer „IhrBenutzername“
Die Firewall lässt keine dynamischen IP-Adressen zu: Wenn Sie über eine Internetverbindung mit dynamischer IP-Adressierung verfügen und Probleme beim Passieren der Firewall auftreten, probieren Sie eine der folgenden Lösungen aus:
Fragen Sie Ihren Internetdienstanbieter (ISP) nach dem IP-Adressbereich, der den Clientcomputern zugewiesen ist, mit denen auf die Instanz des flexiblen Azure Database for PostgreSQL-Servers zugegriffen wird. Fügen Sie dann den IP-Adressbereich als Firewallregel hinzu.
Verwenden Sie stattdessen statische IP-Adressen für die Clientcomputer, und fügen Sie die statischen IP-Adressen dann als Firewallregel hinzu.
Firewallregeln sind für das IPv6-Format nicht verfügbar: Firewallregeln müssen das IPv4-Format aufweisen. Wenn Sie Firewallregeln im IPv6-Format angeben, wird ein Validierungsfehler angezeigt.