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

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

Importante

Database di Azure per PostgreSQL : il server singolo è nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere Informazioni su Database di Azure per PostgreSQL server singolo?

Database di Azure per PostgreSQL server è sicuro per impostazione predefinita impedendo l'accesso a tutti i server di database fino a quando non si specifica quale host IP sono autorizzati ad accedervi. 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: queste regole consentono ai client di accedere all'intero Database di Azure per il server PostgreSQL, ovvero a tutti i database all'interno dello stesso server logico. Le regole firewall a livello di server possono essere configurate usando il portale di Azure o i comandi dell'interfaccia della riga di comando di Azure. Per creare regole firewall a livello di server è necessario essere il proprietario o un collaboratore della sottoscrizione.

Panoramica del firewall

Per impostazione predefinita, l'accesso al server di Database di Azure per PostgreSQL è bloccato dal firewall. Per accedere al server da un altro computer/client o applicazione, è necessario specificare una o più regole del firewall a livello di server per abilitare l'accesso al server. Usare le regole del firewall per specificare gli intervalli di indirizzi IP pubblici consentiti. L'accesso al sito Web del portale di Azure non è determinato dalle regole firewall. I tentativi di connessione da Internet e Azure devono prima passare il firewall prima di raggiungere il database PostgreSQL, come illustrato nel diagramma seguente:

Esempio del flusso di funzionamento del firewall

Connessione da Internet

Le regole firewall a livello di server si applicano a tutti i database dello stesso Database di Azure per il server PostgreSQL. Se l'indirizzo IP di origine della richiesta si trova all'interno di uno degli intervalli specificati nelle regole del firewall a livello di server, la connessione viene concessa altrimenti viene rifiutata. Ad esempio, se l'applicazione si connette con il driver JDBC per PostgreSQL, potrebbe verificarsi questo errore durante il tentativo di connessione quando il firewall blocca la connessione.

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

Nota

Per accedere 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 IP o intervalli. Ad esempio, è possibile trovare l'indirizzo IP in uscita di un Servizio app di Azure o usare un INDIRIZZO IP pubblico associato a una macchina virtuale o a un'altra risorsa (vedere di seguito per informazioni sulla connessione con l'indirizzo IP privato di una macchina virtuale sugli endpoint di servizio).

Se un indirizzo IP in uscita fisso non è disponibile per il servizio Azure, è possibile valutare la possibilità di abilitare le connessioni da tutti gli indirizzi IP del data center di Azure. Questa impostazione può essere abilitata dalla portale di Azure impostando l'opzione Consenti accesso ai servizi di Azure su ON dal riquadro Sicurezza connessione e premendo Salva. Dall'interfaccia della riga di comando di Azure, un'impostazione di regola del firewall con indirizzo iniziale e finale uguale a 0.0.0.0 esegue l'equivalente. Se il tentativo di connessione viene rifiutato dalle regole del firewall, non raggiunge il server di Database di Azure per PostgreSQL.

Importante

L'opzione Consenti servizi di Azure configura il firewall in maniera tale da consentire tutte le connessioni da Azure, incluse le connessioni di altri clienti. Quando si seleziona questa opzione, verificare che l'account di accesso e le autorizzazioni utente limitino l'accesso ai soli utenti autorizzati.

Configurare Possibilità di accedere ai servizi di Azure nel portale

Connessione da una rete virtuale

Per connettersi in modo sicuro al server Database di Azure per PostgreSQL da una rete virtuale, è consigliabile usare gli endpoint del servizio rete virtuale.

Gestione di regole del firewall a livello di programmazione

Oltre al portale di Azure, le regole firewall possono essere gestite a livello di programmazione usando l'interfaccia della riga di comando di Azure. Vedere anche Create and manage Azure Database for PostgreSQL firewall rules using Azure CLI (Creare e gestire regole firewall per il Database di Azure per PostgreSQL tramite l'interfaccia della riga di comando di Azure)

Risoluzione dei problemi del firewall

Quando si effettua l'accesso al servizio Database di Microsoft Azure per il server PostgreSQL non si comporta come previsto, considerare quanto segue:

  • Le modifiche all'elenco Consentiti non sono state ancora applicate: per rendere effettive le modifiche apportate al firewall del Database di Azure per il server PostgreSQL possono essere necessari fino a cinque minuti.

  • L'accesso non è autorizzato oppure è stata usata una password errata: quando un account di accesso non dispone delle autorizzazioni per il Database di Azure per il server PostgreSQL o la password usata non è corretta, la connessione al Database di Azure per il server PostgreSQL verrà negata. La creazione di un'impostazione del firewall fornisce ai client soltanto un'opportunità di connessione al server; ogni client deve ancora 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: autenticazione della password non riuscita per l'utente "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:

    • Richiedere al provider di servizi Internet (ISP) l'intervallo di indirizzi IP assegnato ai computer client che accedono al Database di Azure per il server MySQL, quindi aggiungere l'intervallo di indirizzi IP come regola firewall.

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

  • L'INDIRIZZO IP del server viene visualizzato come pubblico: Le connessioni al server Database di Azure per PostgreSQL vengono indirizzate tramite un gateway di Azure accessibile pubblicamente. Tuttavia, l'indirizzo IP effettivo del server è protetto dal firewall. Per altre informazioni, vedere l' articolo sull'architettura della connettività.

  • Impossibile connettersi dalla risorsa di Azure con l'indirizzo IP consentito: Verificare se l'endpoint del servizio Microsoft.Sql è abilitato per la subnet da cui ci si connette. Se Microsoft.Sql è abilitato, indica che si desidera usare solo le regole dell'endpoint del servizio rete virtuale in tale subnet.

    Ad esempio, è possibile che venga visualizzato l'errore seguente se si esegue la connessione da una macchina virtuale di Azure in una subnet con Microsoft.Sql abilitato, ma non ha una regola di rete virtuale corrispondente: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • La regola del firewall non è disponibile per il formato IPv6: Le regole del firewall devono essere in formato IPv4. Se si specificano regole del firewall in formato IPv6, verrà visualizzato l'errore di convalida.

Passaggi successivi