Reguły zapory w usłudze Azure Database for PostgreSQL — serwer elastyczny
DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny
W przypadku korzystania z serwera elastycznego usługi Azure Database for PostgreSQL masz dwie główne opcje sieciowe. Opcje to dostęp prywatny (integracja z siecią wirtualną) i dostęp publiczny (dozwolone adresy IP).
W przypadku dostępu publicznego dostęp do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL jest uzyskiwany za pośrednictwem publicznego punktu końcowego. Domyślnie zapora blokuje cały dostęp do serwera. Aby określić, które hosty IP mogą uzyskiwać dostęp do serwera, należy utworzyć reguły zapory na poziomie serwera. Reguły zapory określają dozwolone zakresy publicznych adresów IP. Zapora udziela dostępu do serwera na podstawie źródłowego adresu IP każdego żądania. Z dostępem prywatnym nie jest dostępny żaden publiczny punkt końcowy i tylko hosty znajdujące się w tej samej sieci mogą uzyskiwać dostęp do serwera elastycznego usługi Azure Database for PostgreSQL.
Reguły zapory można tworzyć przy użyciu witryny Azure Portal lub poleceń interfejsu wiersza polecenia platformy Azure. Musisz być właścicielem subskrypcji lub współautorem subskrypcji.
Reguły zapory na poziomie serwera mają zastosowanie do wszystkich baz danych w tym samym wystąpieniu serwera elastycznego usługi Azure Database for PostgreSQL. Reguły nie mają wpływu na dostęp do witryny internetowej witryny azure portal.
Na poniższym diagramie pokazano, jak próby połączenia z Internetu i platformy Azure muszą przechodzić przez zaporę, zanim będą mogły uzyskać dostęp do elastycznych baz danych serwera usługi Azure Database for PostgreSQL:
Nawiązywanie połączenia z Internetu
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 (Java Database Connectivity) dla serwera elastycznego usługi Azure Database for PostgreSQL, może wystąpić ten błąd, ponieważ 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 serwera elastycznego 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.
Nawiązywanie połączenia z 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. Możesz na przykład znaleźć wychodzący adres IP aplikacji usługi aplikacja systemu Azure lub użyć publicznego adresu IP powiązanego z maszyną wirtualną.
Jeśli stały wychodzący adres IP nie jest dostępny dla usługi platformy Azure, rozważ włączenie połączeń ze wszystkich adresów IP dla centrów danych platformy Azure:
- 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 .
- Wybierz pozycję Zapisz.
Ważne
Opcja Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformę Azure do tego serwera konfiguruje zaporę tak, aby zezwalała na wszystkie połączenia z platformy Azure, w tym połączenia z subskrypcji innych klientów. Jeśli używasz tej opcji, upewnij się, że uprawnienia logowania i użytkownika ograniczają dostęp tylko do autoryzowanych użytkowników.
Programowe zarządzanie regułami zapory
Oprócz korzystania z witryny Azure Portal można programowo zarządzać regułami zapory przy użyciu interfejsu wiersza polecenia platformy Azure.
W interfejsie wiersza polecenia platformy Azure ustawienie reguły zapory z początkowym i końcowym adresem równym 0.0.0.0 odpowiada opcji Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera w portalu. Jeśli reguły zapory odrzucają próbę połączenia, aplikacja nie osiągnie wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL.
Rozwiązywanie problemów z zaporą
Rozważ następujące możliwości, gdy dostęp do wystąpienia elastycznego serwera usługi Azure Database for PostgreSQL nie działa zgodnie z oczekiwaniami:
Zmiany na liście dozwolonych nie zostały jeszcze wprowadzone: zmiany konfiguracji zapory wystąpienia elastycznego serwera usługi Azure Database for PostgreSQL mogą potrwać do pięciu minut.
Logowanie nie jest autoryzowane lub użyto nieprawidłowego hasła: Jeśli logowanie nie ma uprawnień do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL lub hasło jest niepoprawne, połączenie z serwerem 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 następujący błąd może pojawić się, jeśli uwierzytelnianie nie powiedzie się dla klienta JDBC:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: uwierzytelnianie haseł nie powiodło się dla użytkownika "yourusername"
Zapora nie zezwala na dynamiczne adresy IP: 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.
Pobierz statyczne adresy IP zamiast komputerów klienckich, a następnie dodaj statyczne adresy IP jako regułę zapory.
Reguły zapory nie są dostępne 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.