Configurare la connettività TLS in Database di Azure per PostgreSQL - Server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere What's happening to Database di Azure per PostgreSQL Single Server?.

Database di Azure per PostgreSQL preferisce connettere le applicazioni client al servizio PostgreSQL usando Transport Layer Security (TLS), noto in precedenza come Secure Sockets Layer (SSL). L'applicazione delle connessioni TLS tra il server di database e le applicazioni client consente di proteggersi da attacchi "man-in-the-middle" crittografando il flusso di dati tra il server e l'applicazione.

Per impostazione predefinita, il servizio di database PostgreSQL è configurato per richiedere la connessione TLS. È possibile scegliere di disabilitare la richiesta di TLS se l'applicazione client non supporta la connettività TLS.

Importante

I certificati intermedi SSL sono impostati per essere aggiornati a partire dal 31 gennaio 2024 (31/01/2024). Un certificato intermedio è un certificato subordinato rilasciato da una radice attendibile specificamente per rilasciare certificati di entità finale. Il risultato è una catena di certificati che inizia nella CA radice attendibile, tramite l'autorità di certificazione intermedia (o ca) e termina con il certificato SSL emesso. L'aggiunta di certificati è una tecnica di sicurezza in cui vengono accettati solo i certificati autorizzati o aggiunti quando si stabilisce una sessione protetta. Qualsiasi tentativo di stabilire una sessione sicura usando un certificato diverso viene rifiutato. A differenza della CA radice attendibile, che è già stata aggiornata completamente durante l'anno corrente e in cui il certificato può essere aggiunto usando la direttiva verify-ca o verify-full stringa di connessione client, non esiste un modo standard e ben stabilito per aggiungere ca intermedia. Tuttavia, esiste una capacità teorica di creare uno stack di connettività personalizzato che aggiunge certificati intermedi al client in un'ampia gamma di linguaggi di programmazione. Come illustrato in precedenza, nello scenario improbabile in cui si aggiungono i certificati intermedi con codice personalizzato, questa modifica potrebbe essere interessata da questa modifica. Per determinare se si stanno aggiungendo CA, vedere Aggiunta di certificati e servizi di Azure

Applicazione delle connessioni TLS

Per tutti i server Database di Azure per PostgreSQL di cui è stato effettuato il provisioning tramite il portale di Azure e l'interfaccia della riga di comando, l'imposizione delle connessioni TLS è abilitata per impostazione predefinita.

Analogamente, le stringa di connessione predefinite nelle impostazioni "stringhe di Connessione ion" nel server nel portale di Azure includono i parametri necessari per le lingue comuni per connettersi al server di database tramite TLS. Il parametro TLS varia in base al connettore, ad esempio "ssl=true" o "sslmode=require" o "sslmode=required" e ad altre varianti.

Configurare l'imposizione di TLS

Facoltativamente, è possibile disabilitare l'applicazione della connettività TLS. Microsoft Azure consiglia di abilitare sempre l'impostazione Enforce SSL connection (Applica connessione SSL) per una maggiore sicurezza.

Tramite il portale di Azure

Visitare il server Database di Azure per PostgreSQL e selezionare sicurezza Connessione ion. Usare l'interruttore per abilitare o disabilitare l'impostazione Imponi connessione SSL. Selezionare quindi Salva.

sicurezza Connessione ion - Disabilitare l'imposizione di TLS/SSL

È possibile confermare l'impostazione aprendo la pagina Panoramica per visualizzare l'indicatore Stato imposizione SSL.

Utilizzare l'interfaccia della riga di comando di Azure

È possibile abilitare o disabilitare il parametro ssl-enforcement usando rispettivamente i valori Enabled o Disabled nell'interfaccia della riga di comando di Azure.

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

Determinazione dello stato delle connessioni SSL

È anche possibile raccogliere tutte le informazioni sull'utilizzo SSL dell'istanza del server singolo Database di Azure per PostgreSQL tramite processo, client e applicazione usando la query seguente:

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;

Verificare che l'applicazione o il framework supporti le connessioni TLS

Alcuni framework applicazione che usano PostgreSQL per i servizi di database non abilitano TLS per impostazione predefinita durante l'installazione. Se il server PostgreSQL applica connessioni TLS ma l'applicazione non è configurata per TLS, l'applicazione potrebbe non riuscire a connettersi al server di database. Consultare la documentazione dell'applicazione per informazioni su come abilitare le connessioni TLS.

Applicazioni che richiedono la verifica del certificato per la connettività TLS

In alcuni casi, le applicazioni richiedono un file di certificato locale generato da un file di certificato dell'autorità di certificazione (CA) attendibile per connettersi in modo sicuro. Il certificato per la connessione a un server di Database di Azure per PostgreSQL si trova in https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Scaricare il file del certificato e salvarlo nel percorso preferito.

Vedere i collegamenti seguenti per i certificati per i server nei cloud sovrani: Azure per enti pubblici, Microsoft Azure gestito da 21Vianet e Azure Germania.

Connessione con psql

L'esempio seguente illustra come connettersi al server PostgreSQL usando l'utilità della riga di comando psql. Usare l'impostazione sslmode=verify-full stringa di connessione per applicare la verifica del certificato TLS/SSL. Passare il percorso del file del certificato locale al sslrootcert parametro .

Il comando seguente è un esempio di psql stringa di connessione:

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

Suggerimento

Verificare che il valore passato a sslrootcert corrisponda al percorso del file per il certificato salvato.

Imposizione di TLS in Database di Azure per PostgreSQL server singolo

Database di Azure per PostgreSQL : il server singolo supporta la crittografia per i client che si connettono al server di database tramite Transport Layer Security (TLS). TLS è un protocollo standard del settore che garantisce connessioni di rete sicure tra il server di database e le applicazioni client, consentendo di rispettare i requisiti di conformità.

Impostazioni di TLS

Database di Azure per PostgreSQL server singolo consente di applicare la versione TLS per le connessioni client. Per applicare la versione TLS, usare l'impostazione dell'opzione Versione minima di TLS. Per questa impostazione di opzione sono consentiti i valori seguenti:

Impostazione minima di TLS Versione TLS client supportata
TL edizione Standard nforcementDisabled (impostazione predefinita) Nessun tls necessario
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 e versioni successive
TLS1_1 TLS 1.1, TLS 1.2 e versioni successive
TLS1_2 TLS versione 1.2 e successive

Ad esempio, impostando questa versione minima di TLS su TLS 1.0, il server consentirà le connessioni dai client che usano TLS 1.0, 1.1 e 1.2+. In alternativa, impostando questa opzione su 1.2, è possibile consentire solo le connessioni dai client che usano TLS 1.2+ e tutte le connessioni con TLS 1.0 e TLS 1.1 verranno rifiutate.

Nota

Per impostazione predefinita, Database di Azure per PostgreSQL non applica una versione minima di TLS (l'impostazione TLSEnforcementDisabled).

Dopo aver applicato una versione minima di TLS, non è possibile disabilitare successivamente l'imposizione minima della versione.

Per informazioni su come impostare l'impostazione TLS per il server singolo Database di Azure per PostgreSQL, vedere Come configurare l'impostazione TLS.

Supporto della crittografia da parte di Database di Azure per PostgreSQL server singolo

Nell'ambito della comunicazione SSL/TLS, i pacchetti di crittografia vengono convalidati e solo le tute di crittografia supportate possono comunicare con il server di database. La convalida della suite di crittografia è controllata nel livello del gateway e non in modo esplicito nel nodo stesso. Se le suite di crittografia non corrispondono a una delle suite elencate di seguito, le connessioni client in ingresso verranno rifiutate.

Suite di crittografia supportata

  • 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

Passaggi successivi

Esaminare varie opzioni di connettività delle applicazioni nelle librerie di Connessione ion per Database di Azure per PostgreSQL.

  • Informazioni su come configurare TLS