Udostępnij za pomocą


Omówienie sieci dla usługi Azure Database for PostgreSQL z dostępem publicznym (dozwolone adresy IP)

W tym artykule opisano pojęcia dotyczące łączności i sieci dla wystąpień serwera elastycznego usługi Azure Database for PostgreSQL.

Podczas tworzenia wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL należy wybrać jedną z następujących opcji sieciowych:

  • Dostęp prywatny (integracja z siecią wirtualną)
  • Dostęp publiczny (dozwolone adresy IP) i prywatny punkt końcowy

Następujące cechy mają zastosowanie, niezależnie od tego, czy chcesz użyć dostępu prywatnego, czy opcji dostępu publicznego:

  • Połączenia z dozwolonych adresów IP muszą uwierzytelniać się na serwerze elastycznym Azure Baza Danych dla PostgreSQL, używając prawidłowych poświadczeń.
  • Szyfrowanie połączeń jest wymuszane dla ruchu sieciowego.
  • Serwer ma w pełni kwalifikowaną nazwę domeny (FQDN). hostname W przypadku właściwości w parametry połączenia zalecamy użycie nazwy FQDN zamiast adresu IP.
  • Obie opcje kontrolują dostęp na poziomie serwera, a nie na poziomie bazy danych lub tabeli. Właściwości roli postgreSQL służą do kontrolowania dostępu do bazy danych, tabeli i innego obiektu.

Uwaga

Ponieważ usługa Azure Database for PostgreSQL jest usługą zarządzanej bazy danych, użytkownicy nie mają dostępu do hosta ani systemu operacyjnego w celu wyświetlania ani modyfikowania plików konfiguracji, takich jak pg_hba.conf. Zawartość plików jest automatycznie aktualizowana na podstawie ustawień sieciowych.

Użyj sieci publicznego dostępu z Azure Database for PostgreSQL

Po wybraniu metody dostępu publicznego instancja serwera elastycznego Azure Database for PostgreSQL jest dostępna za pośrednictwem publicznego punktu końcowego przez Internet. Publiczny punkt końcowy jest publicznie rozpoznawalnym adresem DNS. Fraza dozwolone adresy IP odnosi się do zakresu adresów IP, które chcesz udzielić uprawnień dostępu do serwera. Te uprawnienia są nazywane regułami zapory.

Wybierz tę opcję sieci, jeśli chcesz uzyskać następujące możliwości:

  • Nawiąż połączenie z zasobów platformy Azure, które nie obsługują sieci wirtualnych.
  • Połącz się z zasobów spoza platformy Azure, które nie są połączone za pomocą sieci VPN ani usługi Azure ExpressRoute.
  • Upewnij się, że wystąpienie elastycznego serwera Azure Database for PostgreSQL ma publiczny punkt końcowy dostępny za pośrednictwem Internetu.

Cechy metody dostępu publicznego obejmują:

  • Tylko adresy IP, które zezwolisz, mają uprawnienia dostępu do instancji elastycznego serwera w usłudze Azure Database for PostgreSQL. Domyślnie żadne adresy IP nie są dozwolone. Adresy IP można dodawać podczas tworzenia serwera lub później.

  • Instancja elastycznego serwera Azure Database for PostgreSQL ma publicznie rozpoznawalną nazwę DNS.

  • Twoje wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL nie znajduje się w jednej z sieci wirtualnych platformy Azure.

  • Ruch sieciowy do i z serwera nie przechodzi przez sieć prywatną. Ruch korzysta z ogólnych ścieżek internetowych.

Reguły zapory

Reguły zapory na poziomie serwera mają zastosowanie do wszystkich baz danych w tej samej instancji serwera Azure Database for PostgreSQL Flexible Server. Jeśli źródłowy adres IP żądania znajduje się w jednym z zakresów określonych w regułach zapory na poziomie serwera, połączenie zostanie przyznane. W przeciwnym razie zostanie odrzucona. Jeśli na przykład aplikacja łączy się ze sterownikiem JDBC dla bazy danych PostgreSQL, ten błąd może wystąpić podczas próby nawiązania połączenia, gdy zapora blokuje połączenie.

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

Uwaga

Aby uzyskać dostęp do wystąpienia serwera elastycznego Azure Database for PostgreSQL z komputera lokalnego, upewnij się, że na zaporze sieciowej i lokalnym komputerze zezwolono na komunikację wychodzącą na porcie TCP 5432.

Programowe reguły zapory zarządzanej

Oprócz korzystania z witryny Azure Portal można programowo zarządzać regułami zapory przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz Sieć.

Zezwalaj na wszystkie adresy IP platformy Azure

Zalecamy znalezienie wychodzącego adresu IP dowolnej aplikacji lub usługi i jawne zezwolenie na dostęp do tych indywidualnych adresów IP lub zakresów. Jeśli stały wychodzący adres IP nie jest dostępny dla usługi platformy Azure, możesz rozważyć włączenie połączeń ze wszystkich adresów IP dla centrów danych platformy Azure.

Aby włączyć to ustawienie w witrynie Azure Portal, w okienku Sieć zaznacz pole wyboru Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera , a następnie wybierz pozycję Zapisz.

Ważne

Opcja Zezwalaj na dostęp publiczny z usług i zasobów platformy Azure w ramach platformy Azure konfiguruje zaporę tak, aby zezwalała na wszystkie połączenia z platformy Azure, w tym połączenia z subskrypcji innych klientów. Po wybraniu tej opcji upewnij się, że uprawnienia logowania i użytkownika ograniczają dostęp tylko do autoryzowanych użytkowników.

Rozwiązywanie problemów z dostępem publicznym

Rozważ następujące punkty, gdy dostęp do wystąpienia elastycznego serwera usługi Azure Database for PostgreSQL nie działa zgodnie z oczekiwaniami:

  • Zmiany w liście dozwolonych nie zostały jeszcze wprowadzone. Może wystąpić nawet pięć minut opóźnienia, aby zmiany konfiguracji zapory serwera elastycznego usługi Azure Database for PostgreSQL zaczęły obowiązywać.

  • Uwierzytelnianie nie powiodło się. Jeśli użytkownik nie ma uprawnień do elastycznego serwera Azure Database for PostgreSQL lub hasło jest nieprawidłowe, połączenie z nim zostanie odrzucone. Utworzenie ustawienia zapory zapewnia klientom możliwość nawiązania połączenia z serwerem. Każdy klient musi nadal podać niezbędne poświadczenia zabezpieczeń.

  • Dynamiczny adres IP klienta uniemożliwia dostęp. Jeśli masz połączenie internetowe z dynamicznym adresem IP i masz problemy z przejściem przez zaporę, wypróbuj jedno z następujących rozwiązań:

    • Poproś dostawcę usług internetowych (ISP) o zakres adresów IP przypisany do komputerów klienckich uzyskujących dostęp do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL. Następnie dodaj zakres adresów IP jako regułę zapory.
    • Zamiast tego uzyskaj statyczne adresowanie IP dla komputerów klienckich. Następnie dodaj statyczny adres IP jako regułę zapory.
  • Reguła zapory nie jest dostępna dla formatu IPv6. Reguły zapory muszą być w formacie IPv4. Jeśli określisz reguły zapory w formacie IPv6, zostanie wyświetlony błąd weryfikacji.

Nazwa hosta

Niezależnie od wybranej opcji sieciowej zalecamy, aby zawsze używać FQDN jako nazwy hosta przy nawiązywaniu połączenia z wystąpieniem serwera elastycznego usługi Azure Database for PostgreSQL. Adres IP serwera nie ma gwarancji, że pozostanie statyczny. Użycie nazwy FQDN pomaga uniknąć wprowadzania zmian w parametry połączenia.

Przykładem użycia nazwy FQDN jako nazwy hosta jest hostname = servername.postgres.database.azure.com. Jeśli to możliwe, unikaj używania hostname = 10.0.0.4 (adresu prywatnego) lub hostname = 40.2.45.67 (adresu publicznego).

Wychodzące adresy IP dla konfiguracji zapory

Jeśli wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL musi nawiązać połączenia wychodzące do usług zewnętrznych (na przykład w przypadku replikacji logicznej, rozszerzeń łączących się z zasobami zewnętrznymi lub zewnętrznych źródeł danych), może być konieczne skonfigurowanie reguł zapory sieciowej dla tych usług zewnętrznych w celu zezwolenia na ruch z serwera bazy danych.

Znajdowanie adresu IP serwera

Aby znaleźć adres IP aktualnie przypisany do elastycznego serwera Azure Database for PostgreSQL:

  • Przy użyciu rozpoznawania nazw DNS: możesz rozpoznać nazwę FQDN serwera (servername.postgres.database.azure.com), aby uzyskać bieżący adres IP. Użyj narzędzi takich jak nslookup lub dig:

    nslookup servername.postgres.database.azure.com
    
  • Używając Azure Portal: Przejdź do swojego serwera elastycznego usługi Azure Database for PostgreSQL w Azure Portal. Publiczny adres IP serwera nie jest wyświetlany bezpośrednio, ale można go znaleźć, rozpoznając nazwę FQDN serwera.

  • Za pomocą interfejsu wiersza polecenia platformy Azure możesz użyć interfejsu wiersza polecenia platformy Azure, aby uzyskać informacje o serwerze, a następnie rozpoznać nazwę hosta:

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

Ważne zagadnienia dotyczące połączeń wychodzących

  • Adresy IP mogą ulec zmianie: publiczny adres IP przypisany do wystąpienia elastycznego serwera usługi Azure Database for PostgreSQL nie jest statyczny i może ulec zmianie podczas konserwacji, aktualizacji lub innych zdarzeń operacyjnych. Zawsze używaj pełnej nazwy domeny (FQDN), jeśli to możliwe, i regularnie aktualizuj zewnętrzne reguły zapory, jeśli jest to konieczne.

  • Zakresy adresów IP centrum danych platformy Azure: aby uzyskać bardziej przewidywalną konfigurację zapory, możesz zezwolić na ruch z całego zakresu adresów IP centrum danych platformy Azure dla regionu, w którym znajduje się serwer. Platforma Azure publikuje zakresy adresów IP dla każdego regionu w pobranych zakresach adresów IP platformy Azure i tagach usługi .

  • Tagi usług: jeśli usługa zewnętrzna, z którą nawiązujesz połączenie, jest również hostowana na platformie Azure, rozważ użycie tagów usługi Platformy Azure w celu uzyskania bardziej dynamicznych i konserwowalnych reguł zapory.

  • Alternatywa dla prywatnego punktu końcowego: aby uzyskać bardziej stabilną łączność i uniknąć publicznych adresów IP, rozważ użycie prywatnych punktów końcowych zamiast dostępu publicznego.