Brandväggsregler i Azure Database for PostgreSQL – flexibel server

GÄLLER FÖR: Azure Database for PostgreSQL – flexibel server

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

Med offentlig åtkomst nås Azure Database for PostgreSQL flexibel serverinstans 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 Azure Database for PostgreSQL – flexibel server.

Du kan 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 flexibla Azure Database for PostgreSQL-serverinstans. 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 – flexibla serverdatabaser:

Diagram som visar en översikt över hur brandväggen fungerar.

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 en flexibel Azure Database for PostgreSQL-server kan det här felet uppstå eftersom brandväggen blockerar anslutningen:

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

Kommentar

Om du vill komma åt en flexibel Azure Database for PostgreSQL-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

Vi rekommenderar att du hittar den utgående IP-adressen för alla program eller tjänster och uttryckligen tillåter å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.

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.

Skärmbild som visar val för att tillåta åtkomst till Azure-tjänster i portalen.

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 den flexibla serverinstansen Azure Database for PostgreSQL.

Felsöka brandväggsproblem

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

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

  • Inloggningen är inte auktoriserad, eller om ett felaktigt lösenord har använts: Om en inloggning inte har behörighet för azure database for PostgreSQL-instansen för flexibel server eller om lösenordet är felaktigt, nekas anslutningen till servern. Om du skapar en brandväggsinställning får klienterna bara möjlighet att försöka 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 dina klientdatorer som har åtkomst till azure database for PostgreSQL–instansen för flexibel server. 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.

Nästa steg