Configurare TLS in Azure Cosmos DB per PostgreSQL

SI APPLICA A: Azure Cosmos DB per PostgreSQL (basato sull'estensione del database Citus su PostgreSQL)

Il nodo coordinatore richiede alle applicazioni client di connettersi con Transport Layer Security (TLS). L'applicazione di TLS tra il server di database e le applicazioni client consente di mantenere i dati riservati in transito. Impostazioni di verifica aggiuntive descritte di seguito proteggono anche dagli attacchi "man-in-the-middle".

Applicazione delle connessioni TLS

Le applicazioni usano una "stringa di connessione" per identificare il database di destinazione e le impostazioni per una connessione. I diversi client richiedono impostazioni diverse. Per visualizzare un elenco di stringhe di connessione usate dai client comuni, consultare la sezione Stringhe di connessione per il cluster nel portale di Azure.

I parametri ssl TLS e sslmode variano in base alle funzionalità del connettore, ad esempio ssl=true o sslmode=requiresslmode=required.

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

Alcuni framework dell'applicazione non abilitano TLS per impostazione predefinita per le connessioni PostgreSQL. Tuttavia, senza una 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 da connettere a un azure Cosmos DB per PostgreSQL si trova in https://cacerts.digicert.com/DigiCertGlobalRootG2.crt.pem. Scaricare il file di certificato e salvarlo nel percorso preferito.

Nota

Per verificare l'autenticità del certificato, è possibile verificare la relativa impronta digitale SHA-256 usando lo strumento della 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 con psql

Nell'esempio seguente viene illustrato come connettersi al nodo coordinatore usando l'utilità da riga di comando psql. Usare l'impostazione stringa di connessione per applicare la sslmode=verify-full verifica del certificato TLS. Passare il percorso del file di certificato locale al sslrootcert parametro.

Di seguito è riportato 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 le regole del firewall in Azure Cosmos DB per PostgreSQL.