Regole del firewall in Database di Azure per PostgreSQL - Server flessibile

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

Quando è in esecuzione Database di Azure per PostgreSQL - Server flessibile, sono disponibili due opzioni di rete principali. Le opzioni sono l'accesso privato (integrazione della rete virtuale) e l'accesso pubblico (indirizzi IP consentiti).

Con l'accesso pubblico, l'istanza del server flessibile di Database di Azure per PostgreSQL è accessibile tramite un endpoint pubblico. Per impostazione predefinita, il firewall blocca tutti gli accessi al server. Per specificare gli host IP che possono accedere al server, creare regole del firewall a livello di server. Le regole del firewall specificano gli intervalli di indirizzi IP pubblici consentiti. Il firewall concede l'accesso al server in base all'indirizzo IP di origine di ogni richiesta. Con l'accesso privato non è disponibile alcun endpoint pubblico e solo gli host che si trovano nella stessa rete possono accedere al server flessibile di Database di Azure per PostgreSQL.

È possibile creare regole del firewall usando il portale di Azure o i comandi dell'interfaccia della riga di comando di Azure. È necessario essere il proprietario della sottoscrizione o un collaboratore alla sottoscrizione.

Le regole firewall a livello di server si applicano a tutti i database della stessa istanza del server flessibile di Database di Azure per PostgreSQL. Le regole non influiscono sull'accesso al sito Web del portale di Azure.

Il diagramma seguente illustra come i tentativi di connessione da Internet e Azure devono passare attraverso il firewall prima di poter raggiungere i database del server flessibile di Database di Azure per PostgreSQL:

Diagramma che mostra una panoramica del funzionamento del firewall.

Connettersi da Internet

Se l'indirizzo IP di origine della richiesta rientra in uno degli intervalli specificati nelle regole firewall a livello di server, viene consentita la connessione. In caso contrario, viene rifiutato.

Ad esempio, se l'applicazione si connette con un driver JDBC (Java Database Connectivity) per il server flessibile di Database di Azure per PostgreSQL, è possibile che si verifichi questo errore perché il firewall blocca la connessione:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: nessuna voce pg_hba.conf per l'host "123.45.67.890", utente "adminuser", database "postgresql", SSL

Nota

Per accedere al server flessibile di Database di Azure per PostgreSQL dal computer locale, assicurarsi che il firewall nella rete e nel computer locale consenta la comunicazione in uscita sulla porta TCP 5432.

Connessione da Azure

È consigliabile trovare l'indirizzo IP in uscita di qualsiasi applicazione o servizio e consentire esplicitamente l'accesso a tali singoli indirizzi o intervalli IP. Ad esempio, è possibile trovare l'indirizzo IP in uscita di un'app del servizio app di Azure o usare un indirizzo IP pubblico associato a una macchina virtuale.

Se non è disponibile un indirizzo IP in uscita fisso per il servizio di Azure, valutare la possibilità di abilitare le connessioni da tutti gli indirizzi IP del data center di Azure:

  1. Nel riquadro Rete del portale di Azure selezionare la casella di controllo Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server.
  2. Seleziona Salva.

Importante

L'opzione Consenti l'accesso pubblico da servizi di Azure in Azure a questo server configura il firewall per consentire tutte le connessioni da Azure, incluse le connessioni dalle sottoscrizioni di altri clienti. Quando si usa questa opzione, assicurarsi che le autorizzazioni di accesso e utente limitino l'accesso solo agli utenti autorizzati.

Screenshot che mostra le selezioni per consentire l'accesso ai servizi di Azure nel portale.

Gestione di regole del firewall a livello di programmazione

Oltre a usare il portale di Azure, è possibile gestire le regole del firewall a livello di codice usando l'interfaccia della riga di comando di Azure.

Dall'interfaccia della riga di comando di Azure, un'impostazione di regola del firewall con un indirizzo iniziale e finale uguale a 0.0.0.0 equivale all'opzione Consenti l'accesso pubblico da servizi di Azure in Azure a questo server nel portale. Se le regole del firewall rifiutano il tentativo di connessione, l'app non raggiungerà l'istanza del server flessibile di Database di Azure per PostgreSQL.

Risolvere i problemi del firewall

Quando l'accesso a un'istanza del server flessibile di Database di Azure per PostgreSQL non si comporta come previsto, considerare le possibilità seguenti:

  • Le modifiche apportate all'elenco elementi consentiti non sono ancora state applicate: le modifiche apportate alla configurazione del firewall di un'istanza del server flessibile di Database di Azure per PostgreSQL potrebbero richiedere fino a cinque minuti.

  • L'accesso non è autorizzato o è stata usata una password non corretta: se un accesso non dispone delle autorizzazioni per l'istanza del server flessibile di Database di Azure per PostgreSQL o la password 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, l'errore seguente potrebbe essere visualizzato se l'autenticazione non riesce per un client JDBC:

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: autenticazione della password non riuscita per l'utente "yourusername"

  • Il firewall non consente indirizzi IP dinamici: se si dispone di una connessione Internet con indirizzi IP dinamici e si verificano problemi durante il passaggio del firewall, provare una delle soluzioni seguenti:

    • Chiedere al provider di servizi Internet (ISP) di specificare l'intervallo di indirizzi IP assegnato ai computer client che accedono all'istanza del server flessibile di Database di Azure per PostgreSQL. Aggiungere quindi l'intervallo di indirizzi IP come regola del firewall.

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

  • Le regola del firewall non sono disponibili per il formato IPv6: le regole del firewall devono essere in formato IPv4. Se si specificano regole del firewall in formato IPv6, verrà visualizzato un errore di convalida.

Passaggi successivi