Delen via


Firewallregels in Azure Database for PostgreSQL - Flexibele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Wanneer u een flexibele Azure Database for PostgreSQL-server uitvoert, hebt u twee belangrijke netwerkopties. De opties zijn privétoegang (integratie van virtueel netwerk) en openbare toegang (toegestane IP-adressen).

Met openbare toegang wordt het flexibele serverexemplaren van Azure Database for PostgreSQL geopend via een openbaar eindpunt. Standaard blokkeert de firewall alle toegang tot de server. Als u wilt opgeven welke IP-hosts toegang hebben tot de server, maakt u firewallregels op serverniveau. Firewallregels geven toegestane openbare IP-adresbereiken op. De firewall verleent toegang tot de server op basis van het IP-adres waar de aanvraag vandaan komt. Met privétoegang is er geen openbaar eindpunt beschikbaar en hebben alleen hosts die zich in hetzelfde netwerk bevinden toegang tot de flexibele Server van Azure Database for PostgreSQL.

U kunt firewallregels maken met behulp van Azure Portal of met behulp van Azure CLI-opdrachten. U moet de eigenaar van het abonnement of een inzender voor het abonnement zijn.

Firewallregels op serverniveau zijn van toepassing op alle databases op hetzelfde flexibele serverexemplaren van Azure Database for PostgreSQL. De regels hebben geen invloed op de toegang tot de Website van Azure Portal.

In het volgende diagram ziet u hoe verbindingspogingen vanaf internet en Azure de firewall moeten passeren voordat ze azure Database for PostgreSQL flexibele serverdatabases kunnen bereiken:

Diagram met een overzicht van de werking van de firewall.

Verbinding maken via internet

Als het bron-IP-adres van de aanvraag binnen een van de bereiken valt die zijn opgegeven in de firewallregels op serverniveau, wordt de verbinding verleend. Anders wordt het geweigerd.

Als uw toepassing bijvoorbeeld verbinding maakt met een JDBC-stuurprogramma (Java Database Connectivity) voor een flexibele Azure Database for PostgreSQL-server, kan deze fout optreden omdat de firewall de verbinding blokkeert:

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

Notitie

Zorg ervoor dat de firewall op uw netwerk en lokale computer uitgaande communicatie op TCP-poort 5432 toestaat om toegang te krijgen tot azure Database for PostgreSQL flexibele server vanaf uw lokale computer.

Verbinding maken vanuit Azure

U wordt aangeraden het uitgaande IP-adres van elke toepassing of service te vinden en expliciet toegang te verlenen tot deze afzonderlijke IP-adressen of bereiken. U kunt bijvoorbeeld het uitgaande IP-adres van een Azure-app Service-app vinden of een openbaar IP-adres gebruiken dat is gekoppeld aan een virtuele machine.

Als een vast uitgaand IP-adres niet beschikbaar is voor uw Azure-service, kunt u overwegen verbindingen in te schakelen vanaf alle IP-adressen voor Azure-datacenters:

  1. Schakel in Azure Portal in het deelvenster Netwerken het selectievakje Openbare toegang vanuit elke Azure-service binnen Azure naar deze server toestaan in.
  2. Selecteer Opslaan.

Belangrijk

Met de optie Openbare toegang vanuit elke Azure-service in Azure tot deze serveroptie configureert u de firewall om alle verbindingen vanuit Azure toe te staan, inclusief verbindingen vanuit de abonnementen van andere klanten. Wanneer u deze optie gebruikt, moet u ervoor zorgen dat uw aanmeldings- en gebruikersmachtigingen de toegang beperken tot alleen geautoriseerde gebruikers.

Schermopname van selecties voor het toestaan van toegang tot Azure-services in de portal.

Firewallregels programmatisch beheren

Naast het gebruik van Azure Portal kunt u firewallregels programmatisch beheren met behulp van de Azure CLI.

Vanuit de Azure CLI heeft een firewallregelinstelling met een begin- en eindadres dat gelijk is aan 0.0.0.0, het equivalent van openbare toegang toestaan vanuit elke Azure-service in Azure naar deze serveroptie in de portal. Als firewallregels de verbindingspoging weigeren, bereikt de app het flexibele serverexemplaren van Azure Database for PostgreSQL niet.

Problemen met de firewall oplossen

Houd rekening met de volgende mogelijkheden wanneer toegang tot een flexibele serverinstantie van Azure Database for PostgreSQL niet werkt zoals verwacht:

  • Wijzigingen in de acceptatielijst zijn nog niet van kracht: wijzigingen in de firewallconfiguratie van een flexibele Server-instantie van Azure Database for PostgreSQL kunnen maximaal vijf minuten duren.

  • De aanmelding is niet geautoriseerd of er is een onjuist wachtwoord gebruikt: als een aanmelding geen machtigingen heeft voor het exemplaar van de flexibele Azure Database for PostgreSQL-server of als het wachtwoord onjuist is, wordt de verbinding met de server geweigerd. Het maken van een firewallinstelling biedt clients alleen de mogelijkheid om verbinding te maken met uw server. Elke client moet nog steeds de benodigde beveiligingsreferenties opgeven.

    De volgende fout kan bijvoorbeeld worden weergegeven als de verificatie mislukt voor een JDBC-client:

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: wachtwoordverificatie is mislukt voor gebruiker 'yourusername'

  • De firewall staat geen dynamische IP-adressen toe: als u een internetverbinding hebt met dynamische IP-adressering en u problemen ondervindt bij het passeren van de firewall, probeert u een van de volgende oplossingen:

    • Vraag uw internetprovider (ISP) om het IP-adresbereik dat is toegewezen aan uw clientcomputers die toegang hebben tot het flexibele serverexemplaren van Azure Database for PostgreSQL. Voeg vervolgens het IP-adresbereik toe als een firewallregel.

    • Haal in plaats daarvan statische IP-adressen op voor uw clientcomputers en voeg vervolgens de statische IP-adressen toe als firewallregel.

  • Firewallregels zijn niet beschikbaar voor IPv6-indeling: de firewallregels moeten de IPv4-indeling hebben. Als u firewallregels opgeeft in IPv6-indeling, krijgt u een validatiefout.

Volgende stappen