Dostęp publiczny w usłudze Azure Cosmos DB for PostgreSQL
DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)
Usługa Azure Cosmos DB for PostgreSQL obsługuje trzy opcje sieciowe:
- Brak dostępu
- Jest to ustawienie domyślne dla nowo utworzonego klastra, jeśli nie jest włączony dostęp publiczny lub prywatny. Żadne komputery, niezależnie od tego, czy znajdują się na platformie Azure, czy poza nią, mogą łączyć się z węzłami bazy danych.
- Dostęp publiczny
- Publiczny adres IP jest przypisywany do węzła koordynatora.
- Dostęp do węzła koordynatora jest chroniony przez zaporę.
- Opcjonalnie można włączyć dostęp do wszystkich węzłów procesu roboczego. W takim przypadku publiczne adresy IP są przypisywane do węzłów procesu roboczego i są zabezpieczone przez tę samą zaporę.
- Dostęp prywatny
- Tylko prywatne adresy IP są przypisywane do węzłów klastra.
- Każdy węzeł wymaga prywatnego punktu końcowego, aby zezwolić hostom w wybranej sieci wirtualnej na dostęp do węzłów.
- Funkcje zabezpieczeń sieci wirtualnych platformy Azure, takie jak sieciowe grupy zabezpieczeń, mogą służyć do kontroli dostępu.
Podczas tworzenia klastra możesz włączyć dostęp publiczny lub prywatny albo wybrać ustawienie domyślne braku dostępu. Po utworzeniu klastra można przełączać się między dostępem publicznym lub prywatnym albo aktywować je jednocześnie.
Na tej stronie opisano opcję dostępu publicznego. Aby uzyskać dostęp prywatny, zobacz Dostęp prywatny w usłudze Azure Cosmos DB for PostgreSQL.
Omówienie zapory
Zapora serwera usługi Azure Cosmos DB for PostgreSQL uniemożliwia cały dostęp do węzła koordynatora do momentu określenia, które komputery mają uprawnienia. 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 węzła koordynatora, czyli wszystkich baz danych na tym samym serwerze logicznym. Reguły zapory na poziomie serwera można skonfigurować przy użyciu witryny Azure Portal. Aby utworzyć reguły zapory na poziomie serwera, musisz być właścicielem bądź współautorem subskrypcji.
Cały dostęp do bazy danych do węzła koordynatora jest domyślnie blokowany przez zaporę. Aby rozpocząć korzystanie z serwera z innego komputera, 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ć zakresy adresów IP z Internetu, aby zezwolić. Dostęp do samej witryny internetowej witryny internetowej witryny Azure Portal nie ma wpływu na reguły zapory. Próby połączenia z Internetu i platformy Azure muszą najpierw przejść przez zaporę, zanim będą mogły dotrzeć do bazy danych PostgreSQL, jak pokazano na poniższym diagramie:
Nawiązywanie połączenia z Internetu i z platformy Azure
Zapora klastra kontroluje, kto może nawiązać połączenie z węzłem koordynatora grupy. Zapora określa dostęp, konsultując się z konfigurowalną listą reguł. Każda reguła jest adresem IP lub zakresem adresów, które są dozwolone.
Blokowanie połączeń przez zaporę może powodować błędy aplikacji. Na przykład użycie sterownika JDBC PostgreSQL powoduje zgłaszanie błędu podobnego do następującego:
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
Zobacz Tworzenie reguł zapory i zarządzanie nimi, aby dowiedzieć się, jak są zdefiniowane reguły.
Rozwiązywanie problemów z zaporą serwera bazy danych
Jeśli dostęp do usługi Microsoft Azure Cosmos DB for PostgreSQL nie działa zgodnie z oczekiwaniami, rozważ następujące kwestie:
Zmiany na liście dozwolonych nie zostały jeszcze wprowadzone: może obowiązywać nawet pięć minut opóźnienia zmian w konfiguracji zapory usługi Azure Cosmos DB for PostgreSQL.
Użytkownik nie jest autoryzowany lub użyto nieprawidłowego hasła: jeśli użytkownik nie ma uprawnień na serwerze lub użyte 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 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: password authentication failed for user "yourusername"
Dynamiczny adres IP: jeśli masz połączenie internetowe z dynamicznym adresem IP i masz problemy z przejściem przez zaporę, możesz wypróbować 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 węzła koordynatora, 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.
Następne kroki
Aby uzyskać artykuły dotyczące tworzenia reguł zapory na poziomie serwera i na poziomie bazy danych, zobacz: