Panoramica della rete per il server flessibile di Database di Azure per PostgreSQL con accesso pubblico (indirizzi IP consentiti)
SI APPLICA A: Server flessibile di Database di Azure per PostgreSQL
Questo articolo descrive i concetti di connettività e rete per il Database di Azure per PostgreSQL - Server fliessibile.
Quando si crea un server flessibile 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 da indirizzi IP consentiti devono eseguire l'autenticazione al server flessibile Database di Azure per PostgreSQL con 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à
hostname
nelle 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 di tabella. Si userebbero le proprietà del ruolo di PostgreSQL per controllare l'accesso a database, tabelle e altri oggetti.
Nota
Poiché Database di Azure per PostgreSQL - Il server flessibile è 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.conf
esempio . 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 - Server flessibile
Quando si sceglie il metodo di accesso pubblico, si accede al server flessibile 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 il server flessibile Database di Azure per PostgreSQL abbia un endpoint pubblico accessibile tramite Internet.
Le caratteristiche del metodo di accesso pubblico includono:
- Solo gli indirizzi IP consentiti hanno l'autorizzazione per accedere al server flessibile 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.
- Il server flessibile Database di Azure per PostgreSQL ha un nome DNS risolvibile pubblicamente.
- Il server flessibile Database di Azure per PostgreSQL non si trova in una delle reti virtuali di Azure.
- Il traffico di rete da e 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 nello stesso server flessibile 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
Nota
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 Creare e gestire Database di Azure per PostgreSQL - Regole del firewall del server flessibile tramite l'interfaccia della riga di comando di Azure.
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 in Azure a questo server e 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 Database di Azure per PostgreSQL - Server flessibile non si comporta come previsto, tenere presente quanto segue:
Le modifiche apportate all'elenco elementi consentiti non sono ancora state applicate. Potrebbe verificarsi un ritardo di cinque minuti per rendere effettive le modifiche alla configurazione del firewall del server flessibile Database di Azure per PostgreSQL.
Autenticazione non riuscita. Se un utente non dispone delle autorizzazioni per il server flessibile Database di Azure per PostgreSQL o la password non è corretta, la connessione al server flessibile Database di Azure per PostgreSQL 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.
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 al server flessibile 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 al server flessibile 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).
Contenuto correlato
- Informazioni su come creare un server flessibile Database di Azure per PostgreSQL usando l'opzione Accesso pubblico (indirizzi IP consentiti) nella portale di Azure o nell'interfaccia della riga di comando di Azure.