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

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

Quando si esegue 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, è possibile accedere all'istanza del server flessibile Database di Azure per PostgreSQL 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 Database di Azure per PostgreSQL server flessibile.

È 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 del firewall a livello di server si applicano a tutti i database nella stessa istanza del server flessibile Database di Azure per PostgreSQL. Le regole non influiscono sull'accesso al sito Web 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 Database di Azure per PostgreSQL database server flessibili:

Diagram that shows an overview of how the firewall works.

Connessione da Internet

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

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

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "123.45.67.890", user "adminuser", database "postgresql", SSL

Nota

Per accedere Database di Azure per PostgreSQL server flessibile 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 IP o intervalli. Ad esempio, è possibile trovare l'indirizzo IP in uscita di un'app del servizio app Azure oppure usare un indirizzo IP pubblico associato a una macchina virtuale.

Se un indirizzo IP in uscita fisso non è disponibile per il servizio di Azure, è consigliabile abilitare le connessioni da tutti gli indirizzi IP per i data center di Azure:

  1. Nel riquadro Rete della 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 qualsiasi servizio 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 that shows selections for allowing access to Azure services in the portal.

Gestire le regole del firewall a livello di codice

Oltre a usare la 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 qualsiasi servizio 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 Database di Azure per PostgreSQL.

Risolvere i problemi del firewall

Quando l'accesso a un'istanza del server flessibile 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 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 Database di Azure per PostgreSQL o la password non è corretta, la connessione al server viene negata. La creazione di un'impostazione del firewall consente solo ai client di provare a connettersi al server. Ogni client deve 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 Database di Azure per PostgreSQL. Aggiungere quindi l'intervallo di indirizzi IP come regola del firewall.

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

  • Le regole 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