Accesso pubblico in Azure Cosmos DB for PostgreSQL

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

Azure Cosmos DB for PostgreSQL supporta tre opzioni di rete:

  • Nessun accesso
    • È l'impostazione predefinita per un cluster appena creato, se non è abilitato l'accesso pubblico o privato. Nessun computer, all'interno o all'esterno di Azure, può connettersi ai nodi del database.
  • Accesso pubblico
    • Un indirizzo IP pubblico viene assegnato al nodo coordinatore.
    • L'accesso al nodo coordinatore è protetto dal firewall.
    • Facoltativamente, è possibile abilitare l'accesso a tutti i nodi di lavoro. In questo caso, gli indirizzi IP pubblici vengono assegnati ai nodi di lavoro e sono protetti dallo stesso firewall.
  • Accesso privato
    • Ai nodi del cluster sono assegnati solo gli indirizzi IP privati.
    • Ogni nodo richiede un endpoint privato per consentire agli host nella rete virtuale selezionata di accedere ai nodi.
    • Per il controllo di accesso è possibile usare le funzionalità di sicurezza delle reti virtuali di Azure, ad esempio i gruppi di sicurezza di rete.

Quando si crea un cluster, è possibile abilitare l'accesso pubblico o privato o scegliere l'impostazione predefinita di nessun accesso. Dopo aver creato il cluster, è possibile scegliere di alternare tra accesso pubblico o privato, oppure attivarli entrambi contemporaneamente.

Questa pagina descrive l'opzione di accesso pubblico. Per l'accesso privato, vedere Accesso privato in Azure Cosmos DB for PostgreSQL.

Panoramica del firewall

Il firewall del server di Azure Cosmos DB for PostgreSQL impedisce qualsiasi accesso al nodo coordinatore finché non vengono specificati i computer autorizzati. Il firewall concede l'accesso al server in base all'indirizzo IP di origine di ogni richiesta. Per configurare il firewall, creare regole del firewall che specificano gli intervalli di indirizzi IP accettabili. È possibile creare regole firewall a livello di server.

Regole firewall: consentono ai client di accedere al nodo coordinatore, ovvero a tutti i database all'interno dello stesso server logico. Le regole del firewall a livello di server possono essere configurate usando il portale di Azure. Per creare regole firewall a livello di server è necessario essere il proprietario o un collaboratore della sottoscrizione.

Per impostazione predefinita, l'accesso del database al nodo coordinatore è bloccato dal firewall. Per iniziare a usare il server da un altro computer è necessario specificare una o più regole firewall a livello di server che consentano di accedere al server. Usare le regole firewall per specificare gli intervalli di indirizzi IP da Internet a cui concedere l'accesso. L'accesso al sito Web del portale di Azure non è interessato dalle regole firewall. I tentativi di connessione da Internet e Azure devono superare il firewall prima di poter raggiungere il database PostgreSQL. Questo è mostrato nel diagramma seguente:

Diagram that shows server-level firewall rules between remote and local systems and failed connections.

Connettersi da Internet e da Azure

Un firewall del cluster controlla chi può connettersi al nodo coordinatore del gruppo. Il firewall determina l'accesso consultando un elenco di regole configurabile. Ogni regola è un indirizzo IP o un intervallo di indirizzi consentiti.

Quando il firewall blocca le connessioni, può causare errori dell'applicazione. L'uso del driver JDBC PostgreSQL, ad esempio, genera un errore simile al seguente:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg\_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL

Per informazioni su come vengono definite le regole, vedere Creare e gestire le regole del firewall.

Risolvere i problemi del firewall del server di database

Quando l'accesso al servizio Microsoft Azure Cosmos DB for PostgreSQL non si comporta come previsto, considerare questi punti:

  • Le modifiche all'elenco dei consentiti non sono state ancora applicate: per rendere effettive le modifiche apportate alla configurazione firewall di Azure Cosmos DB for PostgreSQL possono essere necessari fino a cinque minuti.

  • L'utente non è autorizzato o è stata usata una password non corretta: se un utente non dispone delle autorizzazioni per il server o la password usata non è corretta, la connessione al server viene negata. La creazione di un'impostazione del firewall offre ai client solo l’opportunità di connessione al server. I singoli client devono comunque fornire le credenziali di sicurezza necessarie.

    Ad esempio, se si usa un client JDBC potrebbe essere visualizzato l'errore seguente.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "yourusername"

  • Indirizzo IP dinamico: se si dispone di una connessione Internet con indirizzi IP dinamici e si verificano problemi di comunicazione attraverso il firewall, è possibile provare una delle seguenti soluzioni:

    • Chiedere al provider di servizi Internet (ISP) l'intervallo di indirizzi IP assegnato ai computer client che accedono al nodo coordinatore, quindi aggiungere l'intervallo di indirizzi IP come una regola del firewall.

    • Ottenere indirizzi IP statici per i computer client, quindi aggiungere gli indirizzi IP statici come una regola del firewall.

Passaggi successivi

Per informazioni sulla creazione di regole del firewall a livello di server e di database, vedere: