Brandväggsregler i Azure Database for PostgreSQL – flexibel server

När du kör en Azure Database for PostgreSQL flexibel server har du två huvudsakliga nätverksalternativ: privat åtkomst (integrering av virtuellt nätverk) och offentlig åtkomst (tillåtna IP-adresser).

Med offentlig åtkomst får du åtkomst till Azure Database for PostgreSQL flexibel server via en offentlig slutpunkt. Som standard blockerar brandväggen all åtkomst till servern. Om du vill ange vilka IP-värdar som kan komma åt servern skapar du brandväggsregler på servernivå. Brandväggsregler anger tillåtna offentliga IP-adressintervall. Brandväggen ger åtkomst till servern baserat på vilken IP-adress som varje begäran kommer från. Med privat åtkomst är ingen offentlig slutpunkt tillgänglig och endast värdar som finns i samma nätverk kan komma åt din Azure Database for PostgreSQL flexibla server.

Skapa brandväggsregler med hjälp av Azure-portalen eller med hjälp av Azure CLI kommandon. Du måste vara prenumerationsägare eller prenumerationsdeltagare.

Brandväggsregler på servernivå gäller för alla databaser på samma Azure Database for PostgreSQL flexibel server. Reglerna påverkar inte åtkomsten till Azure-portalens webbplats.

Följande diagram visar hur anslutningsförsök från Internet och Azure måste passera genom brandväggen innan de kan nå Azure Database for PostgreSQL-databaser:

Diagram över brandväggsregler i Azure Database for PostgreSQL.

Ansluta från Internet

Om käll-IP-adressen för begäran ligger inom något av de intervall som anges i brandväggsreglerna på servernivå beviljas anslutningen. Annars avvisas den.

Om ditt program till exempel ansluter med en JDBC-drivrutin (Java Database Connectivity) för Azure Database for PostgreSQL kan det här felet uppstå eftersom brandväggen blockerar anslutningen:

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException:
  • org.postgresql.util.PSQLException: FATAL: ingen pg_hba.conf-post för värd "123.45.67.890", användare "adminuser", databas "postgresql", SSL

Anmärkning

Om du vill komma åt Azure Database for PostgreSQL flexibel server från den lokala datorn kontrollerar du att brandväggen i nätverket och den lokala datorn tillåter utgående kommunikation på TCP-port 5432.

Ansluta från Azure

Hitta den utgående IP-adressen för alla program eller tjänster och tillåt uttryckligen åtkomst till dessa enskilda IP-adresser eller intervall. Du kan till exempel hitta den utgående IP-adressen för en Azure App Service-app eller använda en offentlig IP-adress som är kopplad till en virtuell dator.

Om en fast utgående IP-adress inte är tillgänglig för din Azure-tjänst kan du överväga att aktivera anslutningar från alla IP-adresser för Azure-datacenter:

  1. I Azure-portalen går du till fönstret Nätverk och markerar kryssrutan Tillåt offentlig åtkomst från valfri Azure-tjänst i Azure till den här servern .

  2. Välj Spara.

    Skärmbild av nätverkssidan med brandväggen.

    Viktigt!

    Alternativet Tillåt offentlig åtkomst från alla Azure-tjänster i Azure till den här servern konfigurerar brandväggen så att den tillåter alla anslutningar från Azure, inklusive anslutningar från andra kunders prenumerationer. När du använder det här alternativet kontrollerar du att dina inloggnings- och användarbehörigheter begränsar åtkomsten till endast behöriga användare.

Hantera brandväggsregler programmatiskt

Förutom att använda Azure-portalen kan du hantera brandväggsregler programmatiskt med hjälp av Azure CLI.

Från Azure CLI motsvarar en brandväggsregelinställning med en start- och slutadress som är lika med 0.0.0.0 alternativet Tillåt offentlig åtkomst från alla Azure-tjänster i Azure till den här servern i portalen. Om brandväggsreglerna avvisar anslutningsförsöket når appen inte Azure Database for PostgreSQL flexibel server.

Felsöka brandväggsproblem

Tänk på följande när åtkomsten till en Azure Database for PostgreSQL flexibel server inte fungerar som förväntat:

  • Ändringar i listan över tillåtna gäller inte ännu: Det kan ta upp till fem minuter att ändra brandväggskonfigurationen för en Azure Database for PostgreSQL flexibel server.

  • Inloggningen är inte auktoriserad, eller om ett felaktigt lösenord har använts: Om en inloggning inte har behörighet på den Azure Database for PostgreSQL flexibla servern eller om lösenordet är felaktigt, nekas anslutningen till servern. Om du skapar en brandväggsinställning kan klienterna bara prova att ansluta till servern. Varje klient måste fortfarande ange nödvändiga säkerhetsautentiseringsuppgifter.

Följande fel kan till exempel visas om autentiseringen misslyckas för en JDBC-klient:

  • java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: lösenordsautentisering misslyckades för användaren "yourusername"

  • Brandväggen tillåter inte dynamiska IP-adresser: Om du har en Internetanslutning med dynamisk IP-adressering och du har problem med att komma igenom brandväggen kan du prova någon av följande lösningar:

  • Fråga internetleverantören (ISP) om det IP-adressintervall som tilldelats till dina klientdatorer som har åtkomst till den Azure Database for PostgreSQL flexibla servern. Lägg sedan till IP-adressintervallet som en brandväggsregel.

  • Hämta statiska IP-adresser i stället för dina klientdatorer och lägg sedan till statiska IP-adresser som en brandväggsregel.

  • Brandväggsregler är inte tillgängliga för IPv6-format: Brandväggsreglerna måste vara i IPv4-format. Om du anger brandväggsregler i IPv6-format får du ett verifieringsfel.