Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive i concetti relativi alla connettività e alla rete per le istanze del server flessibile di Database di Azure per PostgreSQL.
Quando si crea un'istanza del server flessibile di Database di Azure per PostgreSQL, è necessario scegliere una delle opzioni di rete seguenti:
- Accesso privato (integrazione rete virtuale)
- Accesso pubblico (indirizzi IP consentiti) ed endpoint privato
Se si sceglie di usare l'accesso privato o l'opzione di accesso pubblico, si applicano le caratteristiche seguenti:
- Le connessioni provenienti da indirizzi IP consentiti devono autenticarsi all'istanza del server flessibile di Azure Database per PostgreSQL utilizzando credenziali valide.
- La crittografia della connessione viene applicata per il traffico di rete.
- Il server dispone di un nome di dominio completo (FQDN). Per la proprietà
hostnamenelle stringhe di connessione, è consigliabile usare il nome di dominio completo anziché un indirizzo IP. - Entrambe le opzioni controllano l'accesso a livello di server, non a livello di database o tabella. Si userebbero le proprietà del ruolo di PostgreSQL per controllare l'accesso a database, tabelle e altri oggetti.
Note
Poiché il servizio Database di Azure per PostgreSQL è un servizio di database gestito, agli utenti non viene fornito l'accesso host o sistema operativo per visualizzare o modificare i file di configurazione, ad pg_hba.confesempio . Il contenuto dei file viene aggiornato automaticamente in base alle impostazioni di rete.
Usare la rete di accesso pubblico con Database di Azure per PostgreSQL
Quando si sceglie il metodo di accesso pubblico, si accede all'istanza del server flessibile di Database di Azure per PostgreSQL tramite un endpoint pubblico tramite Internet. L'endpoint pubblico è un indirizzo DNS risolvibile pubblicamente. L'espressione indirizzi IP consentiti si riferisce a un intervallo di indirizzi IP a cui si sceglie di concedere l'autorizzazione per l'accesso al server. Queste autorizzazioni si definiscono regole del firewall.
Scegliere questa opzione di rete se si desiderano le funzionalità seguenti:
- Connettersi da risorse di Azure che non supportano le reti virtuali.
- Connettersi da risorse esterne ad Azure che non sono connesse tramite VPN o Azure ExpressRoute.
- Assicurarsi che l'istanza del server flessibile di Database di Azure per PostgreSQL disponga di un endpoint pubblico accessibile tramite Internet.
Le caratteristiche del metodo di accesso pubblico includono:
Solo gli indirizzi IP consentiti hanno l'autorizzazione per accedere all'istanza del server flessibile di Database di Azure per PostgreSQL. Per impostazione predefinita, non sono consentiti gli indirizzi IP. È possibile aggiungere indirizzi IP durante la creazione del server o successivamente.
L'istanza del server flessibile di Azure Database per PostgreSQL ha un nome DNS risolvibile pubblicamente.
L'istanza di Database di Azure per PostgreSQL - Server flessibile non si trova in una delle reti virtuali di Azure.
Il traffico di rete da/verso il server non passa da una rete privata. Il traffico usa i percorsi Internet generali.
Regole del firewall
Le regole del firewall a livello di server si applicano a tutti i database nella stessa istanza del server flessibile di Database di Azure per PostgreSQL. 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 il driver JDBC per PostgreSQL, è possibile che si verifichi questo errore quando si tenta di connettersi quando 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
Note
Per accedere a 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.
Regole del firewall gestite a livello di codice
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. Per altre informazioni, vedere Rete.
Consentire tutti gli indirizzi IP di 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. Se non è disponibile un indirizzo IP in uscita fisso per il servizio di Azure, è possibile valutare la possibilità di abilitare le connessioni da tutti gli indirizzi IP del data center di Azure.
Per abilitare questa impostazione dal portale di Azure, nel riquadro Rete selezionare la casella di controllo Consenti l'accesso pubblico da qualsiasi servizio di Azure all'interno di Azure a questo server, quindi selezionare Salva.
Importante
L'opzione Consentire l'accesso pubblico dai servizi e dalle risorse di Azure all'interno di Azure a questo cluster configura il firewall in modo da consentire tutte le connessioni da Azure, incluse le connessioni dalle sottoscrizioni di altri clienti. Quando si seleziona questa opzione, assicurarsi che le autorizzazioni di accesso e utente limitino l'accesso solo agli utenti autorizzati.
Risolvere i problemi di accesso pubblico
Quando l'accesso a un'istanza del server flessibile di Azure Database per PostgreSQL non si comporta come previsto, si considerino i seguenti punti:
Le modifiche apportate all'elenco elementi consentiti non sono ancora state applicate. Potrebbe verificarsi un ritardo di cinque minuti affinché abbiano effetto le modifiche alla configurazione del firewall di Database di Azure per PostgreSQL - Server flessibile.
Autenticazione non riuscita. Se un utente non dispone delle autorizzazioni per l'istanza del server flessibile di Database di Azure per PostgreSQL o la password non è corretta, viene negata la connessione all'istanza del server flessibile di Database di Azure per PostgreSQL. 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.
L'indirizzo IP client dinamico impedisce l'accesso. Se si dispone di una connessione Internet con indirizzi IP dinamici e si verificano problemi di comunicazione attraverso il firewall, è possibile 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 invece l’assegnazione di indirizzi IP statici per i computer client. Aggiungere quindi l'indirizzo IP statico come regola del firewall.
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, viene visualizzato un errore di convalida.
Nome host
Indipendentemente dall'opzione di rete scelta, è consigliabile usare sempre un nome di dominio completo come nome host per la connessione all'istanza del server flessibile di Database di Azure per PostgreSQL. Non è garantito che l'indirizzo IP del server rimanga statico. L'uso del nome di dominio completo consente di evitare di apportare modifiche alla stringa di connessione.
Un esempio che usa un FQDN come nome host è hostname = servername.postgres.database.azure.com. Se possibile, evitare di usare hostname = 10.0.0.4 (un indirizzo privato) o hostname = 40.2.45.67 (un indirizzo pubblico).
Indirizzi IP in uscita per la configurazione del firewall
Quando l'istanza del server flessibile di Database di Azure per PostgreSQL deve stabilire connessioni in uscita a servizi esterni, ad esempio per la replica logica, le estensioni che si connettono a risorse esterne o origini dati esterne, potrebbe essere necessario configurare regole del firewall in tali servizi esterni per consentire il traffico dal server di database.
Individuazione dell'indirizzo IP del server
Per trovare l'indirizzo IP attualmente assegnato all'istanza del server flessibile di Database di Azure per PostgreSQL:
Uso della risoluzione DNS: è possibile risolvere il nome di dominio completo (
servername.postgres.database.azure.com) del server per ottenere l'indirizzo IP corrente. Usare strumenti comenslookupodig:nslookup servername.postgres.database.azure.comUsando il portale di Azure: passare all'istanza del server flessibile di Database di Azure per PostgreSQL nel portale di Azure. L'indirizzo IP pubblico del server non viene visualizzato direttamente, ma è possibile trovarlo risolvendo il nome di dominio completo del server.
Uso dell'interfaccia della riga di comando di Azure: è possibile usare l'interfaccia della riga di comando di Azure per ottenere informazioni sul server e quindi risolvere il nome host:
az postgres flexible-server show --resource-group myResourceGroup --name myServerName
Considerazioni importanti per le connessioni in uscita
Gli indirizzi IP possono cambiare: l'indirizzo IP pubblico assegnato all'istanza del server flessibile di Database di Azure per PostgreSQL non è statico e può cambiare durante la manutenzione, gli aggiornamenti o altri eventi operativi. Usare sempre il nome di dominio completo quando possibile e aggiornare regolarmente le regole del firewall esterno, se necessario.
Intervalli IP del data center di Azure: per una configurazione del firewall più prevedibile, è possibile consentire il traffico dall'intero intervallo IP del data center di Azure per l'area in cui si trova il server. Azure pubblica gli intervalli IP per ogni area nel download di intervalli IP e tag di servizio di Azure .
Tag del servizio: se il servizio esterno a cui ci si connette è ospitato anche in Azure, è consigliabile usare i tag del servizio di Azure per regole firewall più dinamiche e gestibili.
Alternativa all'endpoint privato: per una connettività più stabile e per evitare indirizzi IP pubblici, è consigliabile usare endpoint privati anziché l'accesso pubblico.