Freigeben über


Netzwerkübersicht für Azure-Datenbank für PostgreSQL mit öffentlichem Zugriff (zulässige IP-Adressen)

In diesem Artikel werden Konnektivitäts- und Netzwerkkonzepte für Azure Database für flexible Serverinstanzen von PostgreSQL beschrieben.

Wenn Sie eine Azure-Datenbank für eine flexible Serverinstanz für PostgreSQL erstellen, müssen Sie eine der folgenden Netzwerkoptionen auswählen:

  • Privater Zugriff (VNet-Integration)
  • Öffentlicher Zugriff (zulässige IP-Adressen) und privater Endpunkt

Die folgenden Eigenschaften gelten unabhängig davon, ob Sie den privaten oder den öffentlichen Zugriff wählen:

  • Verbindungen ausgehend von zulässigen IP-Adressen müssen bei der Instanz von Azure Database for PostgreSQL: Flexibler Server mit gültigen Anmeldeinformationen authentifiziert werden.
  • Für den Netzwerkdatenverkehr wird die Verbindungsverschlüsselung erzwungen.
  • Der Server verfügt über einen vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN). Für die hostname-Eigenschaft in Verbindungszeichenfolgen wird empfohlen, den FQDN anstelle einer IP-Adresse zu verwenden.
  • Über beide Optionen wird der Zugriff auf Serverebene, nicht auf Datenbank- oder auf Tabellenebene gesteuert. Sie steuern den Zugriff auf Datenbanken, Tabellen und andere Objekte mithilfe der Rolleneigenschaften in PostgreSQL.

Hinweis

Da es sich bei der Azure-Datenbank für den PostgreSQL-Dienst um einen verwalteten Datenbankdienst handelt, erhalten Benutzer keinen Zugriff auf Host oder Betriebssystem, um Konfigurationsdateien wie pg_hba.conf anzuzeigen oder zu ändern. Der Inhalt der Dateien wird abhängig von den Netzwerkeinstellungen automatisch aktualisiert.

Verwenden von Öffentlichen Zugriffsnetzwerken mit Azure-Datenbank für PostgreSQL

Wenn Sie die Methode für den öffentlichen Zugriff auswählen, wird über einen öffentlichen Endpunkt über das Internet auf Ihre Azure-Datenbank für PostgreSQL flexible Serverinstanz zugegriffen. Der öffentliche Endpunkt ist eine öffentlich auflösbare DNS-Adresse. Der Ausdruck zulässige IP-Adressen bezieht sich auf einen Bereich von IP-Adressen, denen Sie die Berechtigung erteilen, auf den Server zuzugreifen. Diese Berechtigungen heißen Firewallregeln.

Diese Netzwerkoption bietet sich an, wenn Sie die folgenden Funktionen benötigen:

  • Herstellen einer Verbindung von Azure-Ressourcen aus, die keine virtuellen Netzwerke unterstützen
  • Stellen Sie eine Verbindung von Azure-externen Ressourcen her, die nicht über VPN oder Azure ExpressRoute verbunden sind.
  • Stellen Sie sicher, dass die flexible Serverinstanz der Azure-Datenbank für PostgreSQL über einen öffentlichen Endpunkt verfügt, auf den über das Internet zugegriffen werden kann.

Die öffentliche Zugriffsmethode weist u. a. folgende Eigenschaften auf:

  • Nur die IP-Adressen, die Sie zulassen, verfügen über die Berechtigung für den Zugriff auf Ihre Azure-Datenbank für flexible Serverinstanz von PostgreSQL. Standardmäßig sind keine IP-Adressen zugelassen. Sie können IP-Adressen während oder nach der Servererstellung hinzufügen.

  • Die flexible Serverinstanz Ihrer Azure-Datenbank für PostgreSQL verfügt über einen öffentlich aufgelösten DNS-Namen.

  • Ihre Azure-Datenbank für Die flexible Serverinstanz von PostgreSQL befindet sich nicht in einem Ihrer virtuellen Azure-Netzwerke.

  • Der Netzwerkdatenverkehr zu und von Ihrem Server erfolgt nicht über ein privates Netzwerk. Der Datenverkehr verwendet die allgemeinen Internetpfade.

Firewallregeln

Firewallregeln auf Serverebene gelten für alle Datenbanken in derselben Azure-Datenbank für flexible Serverinstanz für PostgreSQL. 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 JDBC-Treiber für PostgreSQL herstellt, kann bei dem Versuch eines Verbindungsaufbaus möglicherweise dieser Fehler auftreten, wenn die Verbindung durch die Firewall blockiert wird.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL

Hinweis

Um von Ihrem lokalen Computer aus auf eine Azure-Datenbank für PostgreSQL flexible Serverinstanz zuzugreifen, stellen Sie sicher, dass die Firewall auf Ihrem Netzwerk und dem lokalen Computer ausgehende Kommunikation über TCP-Port 5432 zulässt.

Programmgesteuert verwaltete Firewallregeln

Neben der Verwendung des Azure-Portals können Sie Firewall-Regeln auch programmgesteuert über die Azure CLI verwalten. Weitere Informationen finden Sie unter Networking.

Zulassen aller Azure-IP-Adressen

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. Wenn eine feste IP-Adresse für ausgehenden Datenverkehr für Ihren Azure-Dienst nicht verfügbar ist, können Sie die Aktivierung von Verbindungen von allen IP-Adressen in Azure-Rechenzentren in Erwägung ziehen.

Um diese Einstellung im Azure-Portal zu aktivieren, aktivieren Sie im Bereich Netzwerk das Kontrollkästchen Öffentlichen Zugriff auf diesen Server über beliebigen Azure-Dienst in Azure gestatten, und wählen Sie dann Speichern aus.

Wichtig

Die Option Allow public access from Azure services and resources within Azure (Öffentlichen Zugriff von Azure-Diensten und -Ressourcen aus 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.

Behandeln von Problemen mit dem öffentlichen Zugriff

Berücksichtigen Sie die folgenden Punkte, wenn sich der Zugriff auf eine flexible Azure-Datenbank für PostgreSQL-Serverinstanz nicht wie erwartet verhält:

  • Änderungen an der Positivliste sind noch nicht wirksam. Änderungen an der Firewallkonfiguration von Azure Database for PostgreSQL – Flexible Server werden möglicherweise erst nach fünf Minuten wirksam.

  • Fehler bei der Authentifizierung: Wenn ein Benutzer nicht über Berechtigungen für die Azure-Datenbank für flexible Serverinstanz von PostgreSQL verfügt oder das Kennwort falsch ist, wird die Verbindung mit der flexiblen Serverinstanz von Azure Database für PostgreSQL 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.

  • Die dynamische Client-IP-Adresse verhindert den Zugriff: Wenn Sie über eine Internetverbindung mit dynamischer IP-Adresszuweisung 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 für Ihre Clientcomputer stattdessen eine statische IP-Adressierung. Fügen Sie dann die statische IP-Adresse als Firewallregel hinzu.
  • Firewallregel ist 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.

Hostname

Unabhängig von der von Ihnen gewählten Netzwerkoption wird empfohlen, beim Herstellen einer Verbindung mit Ihrer flexiblen Serverinstanz von Azure Database für PostgreSQL immer einen FQDN als Hostname zu verwenden. Es ist nicht gewährleistet, dass die IP-Adresse des Servers statisch bleibt. Mithilfe des FQDN können Sie verhindern, dass Änderungen an der Verbindungszeichenfolge vorgenommen werden.

Ein Beispiel, bei dem ein FQDN als Hostname verwendet wird, ist hostname = servername.postgres.database.azure.com. Vermeiden Sie nach Möglichkeit die Verwendung von hostname = 10.0.0.4 (eine private Adresse) oder hostname = 40.2.45.67 (eine öffentliche Adresse).

Ausgehende IP-Adressen für die Firewallkonfiguration

Wenn Ihre flexible Azure-Datenbank für PostgreSQL-Serverinstanz ausgehende Verbindungen mit externen Diensten herstellen muss (z. B. für die logische Replikation, Erweiterungen, die eine Verbindung mit externen Ressourcen herstellen, oder externe Datenquellen), müssen Sie möglicherweise Firewallregeln für diese externen Dienste konfigurieren, um Datenverkehr von Ihrem Datenbankserver zuzulassen.

Suchen der IP-Adresse des Servers

Um die derzeit Ihrer Azure Database for PostgreSQL-Flexible-Server-Instanz zugewiesene IP-Adresse zu finden:

  • Verwenden der DNS-Auflösung: Sie können den FQDN (servername.postgres.database.azure.com) des Servers auflösen, um die aktuelle IP-Adresse zu erhalten. Verwenden Sie Tools wie nslookup oder dig:

    nslookup servername.postgres.database.azure.com
    
  • Verwenden des Azure-Portals: Navigieren Sie im Azure-Portal zu Ihrer Instanz von „Azure Database for PostgreSQL – Flexibler Server“. Die öffentliche IP-Adresse des Servers wird nicht direkt angezeigt, aber Sie können sie finden, indem Sie den FQDN des Servers auflösen.

  • Verwenden von Azure CLI: Sie können Azure CLI verwenden, um Informationen über Ihren Server abzurufen und dann den Hostnamen aufzulösen:

    az postgres flexible-server show --resource-group myResourceGroup --name myServerName
    

Wichtige Überlegungen für ausgehende Verbindungen

  • IP-Adressen können sich ändern: Die öffentliche IP-Adresse, die Ihrer Azure-Datenbank für Eine flexible Serverinstanz von PostgreSQL zugewiesen ist, ist nicht statisch und kann sich während der Wartung, Aktualisierungen oder anderen betriebstechnischen Ereignisse ändern. Verwenden Sie den FQDN immer nach Möglichkeit, und aktualisieren Sie bei Bedarf regelmäßig externe Firewallregeln.

  • IP-Bereiche des Azure-Rechenzentrums: Für eine vorhersagbare Firewallkonfiguration können Sie datenverkehr aus dem gesamten Azure-Rechenzentrums-IP-Bereich für die Region zulassen, in der sich Ihr Server befindet. Azure veröffentlicht die IP-Bereiche für jede Region im Download von Azure-IP-Bereichen und Diensttags .

  • Diensttags: Wenn der externe Dienst, mit dem Sie eine Verbindung herstellen, auch in Azure gehostet wird, erwägen Sie die Verwendung von Azure-Diensttags für dynamischere und verwendbare Firewallregeln.

  • Alternative zu privaten Endpunkten: Um eine stabilere Konnektivität zu erhalten und öffentliche IP-Adressen zu vermeiden, sollten Sie private Endpunkte anstelle des öffentlichen Zugriffs verwenden.