Regole firewall per Database di Azure per PostgreSQLAzure Database for PostgreSQL Server firewall rules

Il firewall del Database di Azure per il server PostgreSQL impedisce qualsiasi accesso al server di database finché non vengono specificati i computer autorizzati.Azure Database for PostgreSQL Server firewall prevents all access to your database server until you specify which computers have permission. Il firewall concede l'accesso al server in base all'indirizzo IP di origine di ogni richiesta.The firewall grants access to the server based on the originating IP address of each request. Per configurare il firewall, creare regole del firewall che specificano gli intervalli di indirizzi IP accettabili.To configure your firewall, you create firewall rules that specify ranges of acceptable IP addresses. È possibile creare regole firewall a livello di server.You can create firewall rules at the server level.

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.Firewall rules: These rules enable clients to access your entire Azure Database for PostgreSQL Server, that is, all the databases within the same logical server. 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.Server-level firewall rules can be configured by using the Azure portal or using Azure CLI commands. Per creare regole firewall a livello di server è necessario essere il proprietario o un collaboratore della sottoscrizione.To create server-level firewall rules, you must be the subscription owner or a subscription contributor.

Panoramica del firewallFirewall overview

Per impostazione predefinita, l'accesso al Database di Azure per il server PostgreSQL è bloccato dal firewall.All database access to your Azure Database for PostgreSQL server is blocked by the firewall by default. 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.To begin using your server from another computer, you need to specify one or more server-level firewall rules to enable access to your server. Usare le regole firewall per specificare gli intervalli di indirizzi IP da Internet a cui concedere l'accesso.Use the firewall rules to specify which IP address ranges from the Internet to allow. L'accesso al sito Web del portale di Azure non è determinato dalle regole firewall.Access to the Azure portal website itself is not impacted by the firewall rules. I tentativi di connessione da Internet e Azure devono superare il firewall prima di poter raggiungere il database PostgreSQL, come illustrato nel diagramma seguente:Connection attempts from the Internet and Azure must first pass through the firewall before they can reach your PostgreSQL Database, as shown in the following diagram:

Esempio del flusso di funzionamento del firewall

Connessione da InternetConnecting from the Internet

Le regole firewall a livello di server si applicano a tutti i database dello stesso Database di Azure per il server PostgreSQL.Server-level firewall rules apply to all databases on the same Azure Database for PostgreSQL server. Se l'indirizzo IP della richiesta rientra in uno degli intervalli specificati nelle regole firewall a livello di server, viene consentita la connessione.If the IP address of the request is within one of the ranges specified in the server-level firewall rules, the connection is granted. Se l'indirizzo IP della richiesta non rientra negli intervalli specificati in una delle regole del firewall a livello di server, la richiesta di connessione non riesce.If the IP address of the request is not within the ranges specified in any of the server-level firewall rules, the connection request fails. 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.For example, if your application connects with JDBC driver for PostgreSQL, you may encounter this error attempting to connect when the firewall is blocking the connection.

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", SSLjava.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

Connessione da AzureConnecting from Azure

Per consentire alle applicazioni da Azure di stabilire la connessione al server di Database di Azure per PostgreSQL, è necessario abilitare le connessioni da Azure.To allow applications from Azure to connect to your Azure Database for PostgreSQL server, Azure connections must be enabled. Ad esempio, per ospitare un'applicazione delle app Web di Azure o un'applicazione che viene eseguita in una macchina virtuale di Azure oppure per connettersi da un gateway di gestione dati di Azure Data Factory.For example, to host an Azure Web Apps application, or an application that runs in an Azure VM, or to connect from an Azure Data Factory data management gateway. Le risorse non devono essere necessariamente nella stessa rete virtuale (VNet) o nello stesso gruppo di risorse perché la regola del firewall consenta tali connessioni.The resources do not need to be in the same Virtual Network (VNet) or Resource Group for the firewall rule to enable those connections. Quando si tenta di connettersi al server di database da un'applicazione di Azure, il firewall verifica che le connessioni da Azure siano consentite.When an application from Azure attempts to connect to your database server, the firewall verifies that Azure connections are allowed. Sono disponibili alcuni metodi per consentire questi tipi di connessioni.There are a couple of methods to enable these types of connections. Un'impostazione del firewall con indirizzo iniziale e finale uguale a 0.0.0.0 indica che queste connessioni sono consentite.A firewall setting with starting and ending address equal to 0.0.0.0 indicates these connections are allowed. In alternativa, è possibile impostare l'opzione Consenti l'accesso a Servizi di Azure su nel portale dal riquadro Sicurezza connessione e fare clic su Salva.Alternatively, you can set the Allow access to Azure services option to ON in the portal from the Connection security pane and hit save. Se il tentativo di connessione non è consentito, la richiesta non raggiungerà il server di Database di Azure per PostgreSQL.If the connection attempt is not allowed, the request does not reach the Azure Database for PostgreSQL server.

Importante

Questa opzione permette di configurare il firewall in maniera tale da consentire tutte le connessioni da Azure, incluse le connessioni dalle sottoscrizioni di altri clienti.This option configures the firewall to allow all connections from Azure including connections from the subscriptions of other customers. Quando si seleziona questa opzione, assicurarsi che l'account di accesso e le autorizzazioni utente limitino l'accesso ai soli utenti autorizzati.When selecting this option, make sure your login and user permissions limit access to only authorized users.

Configurare Possibilità di accedere ai servizi di Azure nel portale

Gestione di regole del firewall a livello di programmazioneProgrammatically managing firewall rules

Oltre al portale di Azure, le regole firewall possono essere gestite a livello di programmazione usando l'interfaccia della riga di comando di Azure.In addition to the Azure portal, firewall rules can be managed programmatically using Azure CLI. 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)See also Create and manage Azure Database for PostgreSQL firewall rules using Azure CLI

Risoluzione dei problemi del firewall del server di databaseTroubleshooting the database server firewall

Quando si effettua l'accesso al servizio Database di Microsoft Azure per il server PostgreSQL non si comporta come previsto, considerare quanto segue:Consider the following points when access to the Microsoft Azure Database for PostgreSQL Server service does not behave as you expect:

  • 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.Changes to the allow list have not taken effect yet: There may be as much as a five-minute delay for changes to the Azure Database for PostgreSQL Server firewall configuration to take effect.

  • 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.The login is not authorized or an incorrect password was used: If a login does not have permissions on the Azure Database for PostgreSQL server or the password used is incorrect, the connection to the Azure Database for PostgreSQL server is denied. 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.Creating a firewall setting only provides clients with an opportunity to attempt connecting to your server; each client must still provide the necessary security credentials.

Ad esempio, se si usa un client JDBC potrebbe essere visualizzato l'errore seguente.For example, using a JDBC client, the following error may appear.

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: autenticazione della password non riuscita per l'utente "yourusername"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:Dynamic IP address: If you have an Internet connection with dynamic IP addressing and you are having trouble getting through the firewall, you could try one of the following solutions:

  • 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.Ask your Internet Service Provider (ISP) for the IP address range assigned to your client computers that access the Azure Database for PostgreSQL Server, and then add the IP address range as a firewall rule.

  • Ottenere indirizzi IP statici per i computer client, quindi aggiungere gli indirizzi IP statici come una regola del firewall.Get static IP addressing instead for your client computers, and then add the static IP address as a firewall rule.

Passaggi successiviNext steps

Per informazioni sulla creazione di regole del firewall a livello di server e di database, vedere:For articles on creating server-level and database-level firewall rules, see: