Konfigurace připojení TLS na jednoúčelovém serveru Azure Database for PostgreSQL

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

Azure Database for PostgreSQL preferuje připojení klientských aplikací ke službě PostgreSQL pomocí protokolu TLS (Transport Layer Security), dříve označovaného jako SSL (Secure Sockets Layer). Vynucení připojení TLS mezi databázovým serverem a klientskými aplikacemi pomáhá chránit před útoky typu "man-in-the-middle" šifrováním datového proudu mezi serverem a vaší aplikací.

Ve výchozím nastavení je databázová služba PostgreSQL nakonfigurovaná tak, aby vyžadovala připojení TLS. Pokud vaše klientská aplikace nepodporuje připojení TLS, můžete se rozhodnout zakázat.

Důležité

Zprostředkující certifikáty SSL se nastaví tak, aby se aktualizovaly od 31. ledna 2024 (31. 1. 2024). Zprostředkující certifikát je podřízený certifikát vystavený důvěryhodným kořenovým certifikátem určeným speciálně k vydávání certifikátů koncových entit. Výsledkem je řetěz certifikátů, který začíná u důvěryhodné kořenové certifikační autority, prostřednictvím zprostředkující certifikační autority (nebo certifikační autority) a končí certifikátem SSL vystaveným vám. Připnutí certifikátu je technika zabezpečení, kdy se při vytváření zabezpečené relace přijímají pouze autorizované nebo připnuté certifikáty. Jakýkoli pokus o vytvoření zabezpečené relace pomocí jiného certifikátu se odmítne. Na rozdíl od důvěryhodné kořenové certifikační autority, kterou jsme už během aktuálního roku plně aktualizovali a kde je možné certifikát připnout pomocí příkazu verify-ca nebo verify-full připojovací řetězec client direktivy, neexistuje žádný standard, dobře zavedený způsob, jak připnout zprostředkující certifikační autoritu. Existuje však teoretická schopnost vytvořit vlastní zásobník připojení, který připne zprostředkující certifikáty klientovi v různých programovacích jazycích. Jak je vysvětleno výše, v nepravděpodobném scénáři , že připnete zprostředkující certifikáty s vlastním kódem, může to mít vliv na tuto změnu. Pokud chcete zjistit, jestli připnete certifikační autority, přečtěte si prosím informace o připnutí certifikátů a službách Azure.

Vynucení připojení TLS

Pro všechny servery Azure Database for PostgreSQL zřízené prostřednictvím webu Azure Portal a rozhraní příkazového řádku je ve výchozím nastavení povolené vynucení připojení TLS.

Stejně tak připojovací řetězec, které jsou předdefinované v nastavení "Připojení ion Strings" (řetězce Připojení ion) na webu Azure Portal, zahrnují požadované parametry pro běžné jazyky pro připojení k databázovému serveru pomocí protokolu TLS. Parametr TLS se liší podle konektoru, například ssl=true nebo sslmode=require nebo sslmode=required a dalších variant.

Konfigurace vynucení protokolu TLS

Volitelně můžete zakázat vynucování připojení TLS. Microsoft Azure doporučuje vždy povolit nastavení vynucení připojení SSL pro lepší zabezpečení.

Pomocí webu Azure Portal

Navštivte server Azure Database for PostgreSQL a vyberte zabezpečení Připojení. Pomocí přepínače povolte nebo zakažte nastavení vynucení připojení SSL. Potom vyberte Uložit.

zabezpečení Připojení – Zakázání vynucení protokolu TLS/SSL

Nastavení můžete potvrdit zobrazením stránky Přehled a zobrazením indikátoru stavu vynucení SSL.

Použití Azure CLI

Parametr vynucení ssl můžete povolit nebo zakázat pomocí Enabled nebo Disabled hodnoty v Azure CLI.

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

Určení stavu připojení SSL

Všechny informace o využití SSL instance jednoúčelového serveru Azure Database for PostgreSQL můžete shromažďovat také pomocí následujícího dotazu:

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;

Ujistěte se, že vaše aplikace nebo architektura podporuje připojení TLS.

Některé aplikační architektury, které používají PostgreSQL pro své databázové služby, ve výchozím nastavení nepovolují protokol TLS během instalace. Pokud server PostgreSQL vynucuje připojení TLS, ale aplikace není nakonfigurovaná pro protokol TLS, nemusí se aplikace připojit k vašemu databázovému serveru. V dokumentaci vaší aplikace se dozvíte, jak povolit připojení TLS.

Aplikace, které vyžadují ověření certifikátu pro připojení tls

V některých případech aplikace k zabezpečenému připojení vyžadují místní soubor certifikátu vygenerovaný ze souboru certifikátu důvěryhodné certifikační autority (CA). Certifikát pro připojení k serveru Azure Database for PostgreSQL se nachází v souboru https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Stáhněte si soubor certifikátu a uložte ho do upřednostňovaného umístění.

Projděte si následující odkazy na certifikáty pro servery v suverénních cloudech: Azure Government, Microsoft Azure provozované společností 21Vianet a Azure Germany.

Připojení s využitím psql

Následující příklad ukazuje, jak se připojit k serveru PostgreSQL pomocí nástroje příkazového řádku psql. sslmode=verify-full K vynucení ověřování certifikátu TLS/SSL použijte nastavení připojovací řetězec. Předejte do parametru sslrootcert cestu k souboru místního certifikátu.

Následující příkaz je příkladem připojovací řetězec psql:

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

Tip

Ověřte, že hodnota předaná parametru sslrootcert odpovídá cestě k souboru uloženého certifikátu.

Vynucení protokolu TLS na jednoúčelovém serveru Azure Database for PostgreSQL

Azure Database for PostgreSQL – Jednoúčelový server podporuje šifrování pro klienty připojující se k databázovému serveru pomocí protokolu TLS (Transport Layer Security). TLS je standardní oborový protokol, který zajišťuje zabezpečená síťová připojení mezi databázovým serverem a klientskými aplikacemi, což umožňuje dodržovat požadavky na dodržování předpisů.

Nastavení protokolu TLS

Jednoúčelový server Azure Database for PostgreSQL umožňuje vynucovat verzi protokolu TLS pro připojení klientů. Pokud chcete vynutit verzi protokolu TLS, použijte nastavení minimální verze protokolu TLS. Pro toto nastavení možností jsou povoleny následující hodnoty:

Minimální nastavení protokolu TLS Podporovaná verze protokolu TLS klienta
TLSEnforcementDisabled (výchozí) Nevyžaduje se žádný protokol TLS.
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 a vyšší
TLS1_1 TLS 1.1, TLS 1.2 a vyšší
TLS1_2 TLS verze 1.2 a vyšší

Například nastavení této minimální verze nastavení PROTOKOLU TLS na TLS 1.0 znamená, že váš server povolí připojení z klientů pomocí protokolu TLS 1.0, 1.1 a 1.2 nebo novější. Pokud to nastavíte na verzi 1.2, znamená to, že povolíte připojení jenom z klientů používajících protokol TLS 1.2 nebo novější a všechna připojení s protokolem TLS 1.0 a TLS 1.1 budou odmítnuta.

Poznámka:

Azure Database for PostgreSQL ve výchozím nastavení nevynucuje minimální verzi protokolu TLS (nastavení TLSEnforcementDisabled).

Jakmile vynutíte minimální verzi protokolu TLS, nebude možné později zakázat vynucení minimální verze.

Informace o nastavení protokolu TLS pro jednoúčelový server Azure Database for PostgreSQL najdete v tématu Postup konfigurace nastavení protokolu TLS.

Podpora šifrování jednoúčelovým serverem Azure Database for PostgreSQL

V rámci komunikace SSL/TLS jsou šifrovací sady ověřeny a podporují pouze šifrovací obleky, které mohou komunikovat s databázovým serverem. Ověřování šifrovací sady je řízeno ve vrstvě brány, nikoli explicitně na samotném uzlu. Pokud šifrovací sady neodpovídají některé z níže uvedených sad, příchozí klientská připojení budou odmítnuta.

Podporovaná sada šifer

  • 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

Další kroky

Projděte si různé možnosti připojení aplikací v knihovnách Připojení pro Azure Database for PostgreSQL.