Dela via


Offentlig åtkomst i Azure Cosmos DB for PostgreSQL

GÄLLER FÖR: Azure Cosmos DB for PostgreSQL (drivs av Citus-databastillägget till PostgreSQL)

Azure Cosmos DB for PostgreSQL stöder tre nätverksalternativ:

  • Ingen åtkomst
    • Detta är standard för ett nyligen skapat kluster om offentlig eller privat åtkomst inte är aktiverad. Inga datorer, oavsett om de finns i eller utanför Azure, kan ansluta till databasnoderna.
  • Offentlig åtkomst
    • En offentlig IP-adress tilldelas till koordinatornoden.
    • Åtkomst till koordinatornoden skyddas av brandväggen.
    • Du kan också aktivera åtkomst till alla arbetsnoder. I det här fallet tilldelas offentliga IP-adresser till arbetsnoderna och skyddas av samma brandvägg.
  • Privat åtkomst
    • Endast privata IP-adresser tilldelas till klustrets noder.
    • Varje nod kräver en privat slutpunkt för att värdar i det valda virtuella nätverket ska få åtkomst till noderna.
    • Säkerhetsfunktioner i virtuella Azure-nätverk, till exempel nätverkssäkerhetsgrupper, kan användas för åtkomstkontroll.

När du skapar ett kluster kan du aktivera offentlig eller privat åtkomst, eller välja standardinställningen ingen åtkomst. När klustret har skapats kan du välja att växla mellan offentlig eller privat åtkomst eller aktivera båda samtidigt.

På den här sidan beskrivs alternativet för offentlig åtkomst. Privat åtkomst finns i Privat åtkomst i Azure Cosmos DB for PostgreSQL.

Översikt över brandväggar

Azure Cosmos DB for PostgreSQL-serverbrandväggen förhindrar all åtkomst till din koordinatornod tills du anger vilka datorer som har behörighet. Brandväggen ger åtkomst till servern baserat på vilken IP-adress som varje begäran kommer från. Du konfigurerar brandväggen genom att skapa brandväggsregler som anger intervall med godkända IP-adresser. Du kan skapa brandväggsregler på servernivå.

Brandväggsregler: Dessa regler gör det möjligt för klienter att komma åt din koordinatornod, d.v.s. alla databaser på samma logiska server. Brandväggsregler på servernivå kan konfigureras med hjälp av Azure Portal. Du måste vara prenumerationsägare eller prenumerationsdeltagare för att skapa brandväggsregler på servernivå.

All databasåtkomst till koordinatornoden blockeras av brandväggen som standard. Om du vill börja använda servern från en annan dator måste du ange en eller flera brandväggsregler på servernivå för att ge åtkomst till servern. Använd brandväggsreglerna för att ange vilka IP-adressintervall från Internet som ska tillåtas. Åtkomsten till själva Azure Portal webbplats påverkas inte av brandväggsreglerna. Anslutningsförsök från Internet och Azure måste först passera genom brandväggen innan de kan nå PostgreSQL-databasen, som du ser i följande diagram:

Diagram som visar brandväggsregler på servernivå mellan fjärranslutna och lokala system och misslyckade anslutningar.

Ansluta från Internet och från Azure

En klusterbrandvägg styr vem som kan ansluta till gruppens koordinatornod. Brandväggen avgör åtkomsten genom att konsultera en konfigurerbar lista över regler. Varje regel är en IP-adress eller ett adressintervall som tillåts i.

När brandväggen blockerar anslutningar kan det orsaka programfel. Om du till exempel använder PostgreSQL JDBC-drivrutinen genereras ett fel som liknar detta:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL

Se Skapa och hantera brandväggsregler för att lära dig hur reglerna definieras.

Felsöka databasserverns brandvägg

Tänk på följande när åtkomsten till tjänsten Microsoft Azure Cosmos DB for PostgreSQL inte fungerar som förväntat:

  • Ändringar i listan över tillåtna har inte verkställts än: Det kan uppstå en fördröjning på upp till fem minuter innan ändringar i brandväggskonfigurationen för Azure Cosmos DB for PostgreSQL börjar gälla.

  • Användaren har inte behörighet eller så har ett felaktigt lösenord använts: Om en användare inte har behörighet på servern eller om lösenordet som används är felaktigt, nekas anslutningen till servern. Att skapa en brandväggsinställning ger endast klienter möjlighet att försöka ansluta till servern. Varje klient måste fortfarande ange nödvändiga säkerhetsautentiseringsuppgifter.

    Om du till exempel använder en JDBC-klient kan följande fel visas.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • Dynamisk IP-adress: Om du har en Internetanslutning med dynamisk IP-adressering och du har problem med att ta dig igenom brandväggen kan du prova någon av följande lösningar:

    • Fråga internetleverantören (ISP) om IP-adressintervallet som tilldelats dina klientdatorer som har åtkomst till koordinatornoden och lägg sedan till IP-adressintervallet som en brandväggsregel.

    • Hämta statisk IP-adressering i stället för klientdatorerna och lägg sedan till den statiska IP-adressen som en brandväggsregel.

Nästa steg

Artiklar om hur du skapar brandväggsregler på servernivå och databasnivå finns i: