Configurare Transport Layer Security in Azure Cosmos DB for PostgreSQL
SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata su estensione di database Citus per PostgreSQL)
Il nodo coordinatore richiede alle applicazioni client di connettersi con Transport Layer Security (TLS). L'applicazione di TLS tra server di database e applicazioni client consente di mantenere riservati i dati in transito. Inoltre le impostazioni di verifica aggiuntive descritte di seguito proteggono contro gli attacchi "man-in-the-middle".
Applicazione di connessioni TLS
Le applicazioni usano una "stringa di connessione" per identificare il database di destinazione e le impostazioni per la connessione. Client diversi richiedono impostazioni differenti. Per visualizzare un elenco delle stringhe di connessione usate dai client comuni, vedere la sezione Stringhe di connessione per il cluster nel portale di Azure.
I parametri TLS ssl
e sslmode
variano in base alle capacità del connettore, ad esempio ssl=true
, sslmode=require
o sslmode=required
.
Verificare che le connessioni TLS siano supportate dall'applicazione o dal framework
Per impostazione predefinita, alcuni framework applicazioni non abilitano TLS per le connessioni PostgreSQL. Tuttavia, senza connessione sicura, un'applicazione non può connettersi al nodo coordinatore. 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 del certificato locale generato da un file di certificato (.cer) dell'autorità di certificazione (CA) attendibile per connettersi in modo sicuro. Il certificato per la connessione a un'istanza di Azure Cosmos DB for PostgreSQL si trova in https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem. Scaricare il file del certificato e salvarlo nella posizione preferita.
Nota
Per controllare l'autenticità del certificato, è possibile verificare l'impronta digitale SHA-256 mediante lo strumento riga di comando OpenSSL:
openssl x509 -in DigiCertGlobalRootG2.crt.pem -noout -sha256 -fingerprint
# should output:
# CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F
Connettersi tramite psql
L'esempio seguente mostra come connettersi al nodo coordinatore mediante l'utilità della riga di comando psql. Per applicare la verifica del certificato TLS usare l'impostazione della stringa di connessione sslmode=verify-full
. Passare il percorso del file del certificato locale al parametro sslrootcert
.
Di seguito si riporta un esempio della stringa di connessione psql:
psql "sslmode=verify-full sslrootcert=DigiCertGlobalRootG2.crt.pem host=c-mydemocluster.12345678901234.postgres.cosmos.azure.com dbname=citus user=citus password=your_pass"
Suggerimento
Verificare che il valore passato a sslrootcert
corrisponda al percorso del file per il certificato salvato.
Passaggi successivi
Aumentare ulteriormente la sicurezza con Regole del firewall in Azure Cosmos DB for PostgreSQL.