Reguły zapory w usłudze Azure Database for PostgreSQL — pojedynczy serwer

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

Ważne

Usługa Azure Database for PostgreSQL — pojedynczy serwer znajduje się na ścieżce wycofania. Zdecydowanie zalecamy uaktualnienie do usługi Azure Database for PostgreSQL — serwer elastyczny. Aby uzyskać więcej informacji na temat migracji do usługi Azure Database for PostgreSQL — serwer elastyczny, zobacz Co się dzieje z usługą Azure Database for PostgreSQL — pojedynczy serwer?.

Serwer usługi Azure Database for PostgreSQL jest domyślnie bezpieczny, uniemożliwiając cały dostęp do serwera bazy danych, dopóki nie określisz, które hosty IP będą mogły uzyskać do niego dostęp. Zapora udziela dostępu do serwera na podstawie źródłowego adresu IP każdego żądania. Aby skonfigurować zaporę, należy utworzyć reguły zapory określające zakresy dopuszczalnych adresów IP. Można utworzyć reguły zapory na poziomach serwera.

Reguły zapory: te reguły umożliwiają klientom dostęp do całego serwera usługi Azure Database for PostgreSQL, czyli wszystkich baz danych na tym samym serwerze logicznym. Reguły zapory na poziomie serwera można skonfigurować przy użyciu witryny Azure Portal lub poleceń interfejsu wiersza polecenia platformy Azure. Aby utworzyć reguły zapory na poziomie serwera, musisz być właścicielem bądź współautorem subskrypcji.

Omówienie zapory

Cały dostęp do serwera usługi Azure Database for PostgreSQL jest domyślnie blokowany przez zaporę. Aby uzyskać dostęp do serwera z innego komputera/klienta lub aplikacji, należy określić co najmniej jedną regułę zapory na poziomie serwera, aby umożliwić dostęp do serwera. Użyj reguł zapory, aby określić dozwolone zakresy publicznych adresów IP. Dostęp do samej witryny internetowej witryny azure portal nie ma wpływu na reguły zapory. Połączenie prób z Internetu i platformy Azure muszą najpierw przejść przez zaporę, zanim będą mogły uzyskać dostęp do bazy danych PostgreSQL, jak pokazano na poniższym diagramie:

Przykładowy przepływ działania zapory

Łączenie się z Internetu

Reguły zapory na poziomie serwera mają zastosowanie do wszystkich baz danych na tym samym serwerze usługi Azure Database for PostgreSQL. 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 odrzucone. Jeśli na przykład aplikacja łączy się ze sterownikiem JDBC dla bazy danych PostgreSQL, może wystąpić ten błąd 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 usługi Azure Database for PostgreSQL z komputera lokalnego, upewnij się, że zapora w sieci i komputerze lokalnym zezwala na komunikację wychodzącą na porcie TCP 5432.

Łączenie z platformy Azure

Zaleca się 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. Możesz na przykład znaleźć wychodzący adres IP usługi aplikacja systemu Azure lub użyć publicznego adresu IP powiązanego z maszyną wirtualną lub innym zasobem (zobacz poniżej, aby uzyskać informacje na temat nawiązywania połączenia z prywatnym adresem IP maszyny wirtualnej za pośrednictwem punktów końcowych usługi).

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 centrum danych platformy Azure. To ustawienie można włączyć w witrynie Azure Portal, ustawiając opcję Zezwalaj na dostęp do usług platformy Azure na . w okienku zabezpieczeń Połączenie ion i wybierając pozycję Zapisz. W interfejsie wiersza polecenia platformy Azure ustawienie reguły zapory z początkowym i końcowym adresem równym 0.0.0.0 jest równoważne. Jeśli próba połączenia zostanie odrzucona przez reguły zapory, nie osiągnie ona serwera usługi Azure Database for PostgreSQL.

Ważne

Opcja Zezwalaj na dostęp do usług platformy Azure konfiguruje zaporę w celu zezwalania na wszystkie połączenia z platformy Azure, w tym połączenia z subskrypcji innych klientów. W przypadku wybrania tej opcji upewnij się, że uprawnienia logowania i użytkownika zezwalają na dostęp tylko uprawnionym użytkownikom.

Konfigurowanie zezwalania na dostęp do usług platformy Azure w portalu

Połączenie z sieci wirtualnej

Aby bezpiecznie nawiązać połączenie z serwerem usługi Azure Database for PostgreSQL z sieci wirtualnej, rozważ użycie punktów końcowych usługi sieci wirtualnej.

Programowe zarządzanie regułami zapory

Oprócz witryny Azure Portal reguły zapory można zarządzać programowo przy użyciu interfejsu wiersza polecenia platformy Azure. Zobacz również Tworzenie reguł zapory usługi Azure Database for PostgreSQL i zarządzanie nimi przy użyciu interfejsu wiersza polecenia platformy Azure

Rozwiązywanie problemów z zaporą

Należy wziąć pod uwagę następujące kwestie, gdy dostęp do usługi serwera usługi Microsoft Azure Database for PostgreSQL nie działa zgodnie z oczekiwaniami:

  • Zmiany listy dozwolonych nie zostały jeszcze wprowadzone: może obowiązywać nawet pięciominutowe opóźnienie zmian w konfiguracji zapory serwera usługi Azure Database for PostgreSQL.

  • Logowanie nie jest autoryzowane lub użyto nieprawidłowego hasła: jeśli logowanie nie ma uprawnień na serwerze usługi Azure Database for PostgreSQL lub użyte hasło jest niepoprawne, połączenie z serwerem usługi Azure Database for PostgreSQL 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ń.

    Na przykład przy użyciu klienta JDBC może zostać wyświetlony następujący błąd.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: uwierzytelnianie haseł nie powiodło się dla użytkownika "yourusername"

  • Dynamiczny adres IP: jeśli używane jest połączenie internetowe za pomocą dynamicznego adresowania IP i występują problemy z przejściem przez zaporę, można wypróbować jedno z poniższych rozwiązań:

    • Poproś dostawcę usług internetowych (ISP) o zakres adresów IP przypisany do komputerów klienckich uzyskujących dostęp do serwera usługi Azure Database for PostgreSQL, a następnie dodaj zakres adresów IP jako regułę zapory.

    • Pobierz statyczne adresowanie IP dla komputerów klienckich, a następnie dodaj statyczny adres IP jako regułę zapory.

  • Adres IP serwera wydaje się być publiczny: Połączenie ions do serwera usługi Azure Database for PostgreSQL są kierowane za pośrednictwem publicznie dostępnej bramy platformy Azure. Rzeczywisty adres IP serwera jest jednak chroniony przez zaporę. Aby uzyskać więcej informacji, zapoznaj się z artykułem dotyczącym architektury łączności.

  • Nie można nawiązać połączenia z zasobu platformy Azure z dozwolonym adresem IP: sprawdź, czy punkt końcowy usługi Microsoft.Sql jest włączony dla podsieci, z której nawiązujesz połączenie. Jeśli opcja Microsoft.Sql jest włączona, oznacza to, że chcesz używać tylko reguł punktu końcowego usługi sieci wirtualnej w tej podsieci.

    Na przykład w przypadku nawiązywania połączenia z maszyny wirtualnej platformy Azure w podsieci z włączoną usługą Microsoft.Sql może wystąpić następujący błąd, ale nie ma odpowiedniej reguły sieci wirtualnej: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • Reguła zapory nie jest dostępna dla formatu IPv6: reguły zapory muszą mieć format IPv4. Jeśli określisz reguły zapory w formacie IPv6, zostanie wyświetlony błąd weryfikacji.

Następne kroki