Konfigurowanie łączności TLS 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?.

Usługa Azure Database for PostgreSQL preferuje łączenie aplikacji klienckich z usługą PostgreSQL przy użyciu protokołu Transport Layer Security (TLS), wcześniej znanej jako Secure Sockets Layer (SSL). Wymuszanie połączeń TLS między serwerem bazy danych a aplikacjami klienckimi pomaga chronić przed atakami typu "man-in-the-middle", szyfrując strumień danych między serwerem a aplikacją.

Domyślnie usługa bazy danych PostgreSQL jest skonfigurowana tak, aby wymagać połączenia TLS. Możesz wyłączyć wymaganie protokołu TLS, jeśli aplikacja kliencka nie obsługuje łączności TLS.

Ważne

Certyfikaty pośrednie SSL mają zostać zaktualizowane od 31 stycznia 2024 r. (01.31.2024). Certyfikat pośredniczący to certyfikat podrzędny wystawiony przez zaufany katalog główny w celu wystawiania certyfikatów jednostek końcowych. Wynikiem jest łańcuch certyfikatów, który rozpoczyna się od zaufanego głównego urzędu certyfikacji za pośrednictwem pośredniego urzędu certyfikacji (lub urzędów certyfikacji) i kończy się certyfikatem SSL wystawionym dla Ciebie. Przypinanie certyfikatów to technika zabezpieczeń, w której podczas ustanawiania bezpiecznej sesji akceptowane są tylko autoryzowane lub przypięte certyfikaty. Każda próba ustanowienia bezpiecznej sesji przy użyciu innego certyfikatu zostanie odrzucona. W przeciwieństwie do zaufanego głównego urzędu certyfikacji, który został już zaktualizowany w pełni w bieżącym roku i gdzie można przypiąć certyfikat przy użyciu funkcji verify-ca lub verify-full parametry połączenia dyrektywy klienta, nie ma standardowego, dobrze ustalonego sposobu przypinania pośredniego urzędu certyfikacji. Istnieje jednak teoretyczna możliwość utworzenia niestandardowego stosu łączności, który przypina certyfikaty pośrednie do klienta w różnych językach programowania. Jak wyjaśniono powyżej, w mało prawdopodobnym scenariuszu przypięcie certyfikatów pośrednich z kodem niestandardowym może mieć wpływ na tę zmianę. Aby ustalić, czy przypinasz urzędy certyfikacji, zapoznaj się z tematem Przypinanie certyfikatów i usługi platformy Azure

Wymuszanie połączeń TLS

W przypadku wszystkich serwerów usługi Azure Database for PostgreSQL aprowizowanych za pośrednictwem witryny Azure Portal i interfejsu wiersza polecenia wymuszanie połączeń TLS jest domyślnie włączone.

Podobnie parametry połączenia, które są wstępnie zdefiniowane w ustawieniach "ciągów Połączenie ion" na serwerze w witrynie Azure Portal, zawierają wymagane parametry dla języków wspólnych do nawiązania połączenia z serwerem bazy danych przy użyciu protokołu TLS. Parametr TLS różni się w zależności od łącznika, na przykład "ssl=true" lub "sslmode=require" lub "sslmode=required" i innych odmian.

Konfigurowanie wymuszania protokołu TLS

Opcjonalnie można wyłączyć wymuszanie łączności TLS. Platforma Microsoft Azure zaleca, aby zawsze włączać ustawienie Wymuszaj połączenie SSL w celu zwiększenia bezpieczeństwa.

Korzystanie z witryny Azure Portal

Odwiedź serwer usługi Azure Database for PostgreSQL i wybierz pozycję zabezpieczenia Połączenie ion. Użyj przycisku przełącznika, aby włączyć lub wyłączyć ustawienie Wymuszaj połączenie SSL. Następnie wybierz pozycję Zapisz.

zabezpieczenia Połączenie ion — wyłączanie wymuszania protokołu TLS/SSL

Możesz potwierdzić to ustawienie, wyświetlając stronę Przegląd, aby wyświetlić wskaźnik stanu wymuszania protokołu SSL.

Korzystanie z interfejsu wiersza polecenia platformy Azure

Możesz włączyć lub wyłączyć parametr ssl-enforcement odpowiednio przy użyciu Enabled wartości lub Disabled w interfejsie wiersza polecenia platformy Azure.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Określanie stanu połączeń SSL

Możesz również zebrać wszystkie informacje o użyciu protokołu SSL wystąpienia pojedynczego serwera w usłudze Azure Database for PostgreSQL przy użyciu procesu, klienta i aplikacji, korzystając z następującego zapytania:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Upewnij się, że aplikacja lub struktura obsługuje połączenia TLS

Niektóre struktury aplikacji korzystające z bazy danych PostgreSQL domyślnie nie włączają protokołu TLS podczas instalacji. Jeśli serwer PostgreSQL wymusza połączenia TLS, ale aplikacja nie jest skonfigurowana dla protokołu TLS, aplikacja może nie nawiązać połączenia z serwerem bazy danych. Zapoznaj się z dokumentacją aplikacji, aby dowiedzieć się, jak włączyć połączenia TLS.

Aplikacje wymagające weryfikacji certyfikatu na potrzeby łączności TLS

W niektórych przypadkach aplikacje wymagają lokalnego pliku certyfikatu wygenerowanego z pliku certyfikatu zaufanego urzędu certyfikacji w celu bezpiecznego nawiązania połączenia. Certyfikat do nawiązania połączenia z serwerem usługi Azure Database for PostgreSQL znajduje się tutaj: https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Pobierz plik certyfikatu i zapisz go w preferowanej lokalizacji.

Zobacz następujące linki do certyfikatów dla serwerów w suwerennych chmurach: Azure Government, Microsoft Azure obsługiwane przez firmę 21Vianet i Azure (Niemcy).

Połączenie przy użyciu narzędzia psql

W poniższym przykładzie pokazano, jak nawiązać połączenie z serwerem PostgreSQL przy użyciu narzędzia wiersza polecenia psql. sslmode=verify-full Użyj ustawienia parametry połączenia, aby wymusić weryfikację certyfikatu TLS/SSL. Przekaż ścieżkę pliku certyfikatu lokalnego do parametru sslrootcert .

Następujące polecenie jest przykładem parametry połączenia psql:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Napiwek

Upewnij się, że wartość przekazana do elementu sslrootcert jest zgodna ze ścieżką pliku zapisanego certyfikatu.

Wymuszanie protokołu TLS na pojedynczym serwerze usługi Azure Database for PostgreSQL

Azure Database for PostgreSQL — pojedynczy serwer obsługuje szyfrowanie dla klientów łączących się z serwerem bazy danych przy użyciu protokołu Transport Layer Security (TLS). TLS to standardowy protokół branżowy, który zapewnia bezpieczne połączenia sieciowe między serwerem bazy danych i aplikacjami klienckimi, co pozwala spełnić wymagania dotyczące zgodności.

Ustawienia protokołu TLS

Pojedynczy serwer usługi Azure Database for PostgreSQL umożliwia wymuszanie wersji protokołu TLS dla połączeń klienckich. Aby wymusić wersję protokołu TLS, użyj ustawienia opcji Minimalna wersja protokołu TLS. Dla tego ustawienia opcji są dozwolone następujące wartości:

Minimalne ustawienie protokołu TLS Obsługiwana wersja protokołu TLS klienta
TLSEnforcementDisabled (ustawienie domyślne) Brak wymaganego protokołu TLS
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 i nowsze
TLS1_1 TLS 1.1, TLS 1.2 i nowsze
TLS1_2 Protokół TLS w wersji 1.2 lub nowszej

Na przykład ustawienie minimalnej wersji protokołu TLS na tls 1.0 oznacza, że serwer będzie zezwalać na połączenia od klientów przy użyciu protokołu TLS 1.0, 1.1 i 1.2 lub nowszego. Alternatywnie ustawienie tej wartości na 1.2 oznacza, że zezwalasz tylko na połączenia od klientów przy użyciu protokołu TLS 1.2 lub nowszego, a wszystkie połączenia z protokołami TLS 1.0 i TLS 1.1 zostaną odrzucone.

Uwaga

Domyślnie usługa Azure Database for PostgreSQL nie wymusza minimalnej wersji protokołu TLS (ustawienie TLSEnforcementDisabled).

Po wymusieniu minimalnej wersji protokołu TLS nie można później wyłączyć minimalnej wymuszania wersji.

Aby dowiedzieć się, jak ustawić ustawienie protokołu TLS dla pojedynczego serwera usługi Azure Database for PostgreSQL, zobacz Jak skonfigurować ustawienie protokołu TLS.

Obsługa szyfrowania przez pojedynczy serwer usługi Azure Database for PostgreSQL

W ramach komunikacji SSL/TLS pakiety szyfrowania są weryfikowane i obsługują tylko garnitury szyfrowania mogą komunikować się z serwerem bazy danych. Walidacja zestawu szyfrowania jest kontrolowana w warstwie bramy, a nie jawnie w samym węźle. Jeśli zestawy szyfrowania nie są zgodne z jednym z zestawów wymienionych poniżej, połączenia przychodzące klientów zostaną odrzucone.

Obsługiwany zestaw szyfrowania

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Następne kroki

Zapoznaj się z różnymi opcjami łączności aplikacji w bibliotekach Połączenie ion dla usługi Azure Database for PostgreSQL.