Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve os conceitos de conectividade e rede para o Banco de Dados do Azure para instâncias de servidor flexíveis do PostgreSQL.
Ao criar uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL, você deve escolher uma das seguintes opções de rede:
- Acesso privado (integração de rede virtual)
- Acesso público (endereços IP permitidos) e ponto de extremidade privado
As seguintes características se aplicam se você optar por usar a opção de acesso privado ou público:
- As conexões de endereços IP permitidos precisam ser autenticadas na instância do servidor flexível do Azure para o Banco de Dados PostgreSQL com credenciais válidas.
- A criptografia de conexão é imposta para o tráfego da rede.
- O servidor tem um nome de domínio totalmente qualificado (FQDN). Para a
hostnamepropriedade em cadeias de conexão, recomendamos usar o FQDN em vez de um endereço IP. - Ambas as opções controlam o acesso no nível do servidor, não no nível do banco de dados ou da tabela. Você usaria as propriedades de função do PostgreSQL para controlar o acesso a banco de dados, tabela e outros objetos.
Nota
Como o serviço Banco de Dados do Azure para PostgreSQL é um serviço de banco de dados gerenciado, os usuários não recebem acesso ao host ou ao sistema operacional para exibir ou modificar arquivos de configuração, como pg_hba.conf. O conteúdo dos arquivos é atualizado automaticamente com base nas configurações de rede.
Usar a rede de acesso público com a Base de Dados Azure para PostgreSQL
Quando você escolhe o método de acesso público, sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL é acessada por meio de um ponto de extremidade público pela Internet. O ponto final público é um endereço DNS publicamente resolvível. A frase endereços IP permitidos refere-se a um intervalo de endereços IP que você escolhe dar permissão para acessar seu servidor. Essas permissões são chamadas de regras de firewall.
Escolha esta opção de rede se desejar os seguintes recursos:
- Conecte-se a partir de recursos do Azure que não oferecem suporte a redes virtuais.
- Conecte-se a partir de recursos fora do Azure que não estão conectados por VPN ou Azure ExpressRoute.
- Certifique-se de que a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL tenha um ponto de extremidade público acessível pela Internet.
As características do método de acesso do público incluem:
Somente os endereços IP permitidos têm permissão para acessar seu Banco de Dados do Azure para instância de servidor flexível do PostgreSQL. Por padrão, nenhum endereço IP é permitido. Você pode adicionar endereços IP durante a criação do servidor ou depois.
Sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL tem um nome DNS resolvível publicamente.
Sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL não está em uma de suas redes virtuais do Azure.
O tráfego de rede de e para o servidor não passa por uma rede privada. O tráfego utiliza as vias gerais da Internet.
Regras da firewall
As regras de firewall no nível de servidor se aplicam a todos os bancos de dados na mesma instância flexível do Banco de Dados do Azure para PostgreSQL. Se o endereço IP de origem da solicitação estiver dentro de um dos intervalos especificados nas regras de firewall no nível do servidor, a conexão será concedida. Caso contrário, é rejeitado. Por exemplo, se seu aplicativo se conectar com o driver JDBC para PostgreSQL, você poderá encontrar esse erro ao tentar se conectar quando o firewall estiver bloqueando a conexão.
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
Para aceder a uma instância de servidor flexível da Base de Dados do Azure para PostgreSQL a partir do seu computador local, certifique-se de que a firewall na rede e no computador local permite a comunicação de saída na porta TCP 5432.
Regras de firewall gerenciadas programaticamente
Além de usar o portal do Azure, você pode gerenciar regras de firewall programaticamente usando a CLI do Azure. Para obter mais informações, consulte Rede.
Permitir todos os endereços IP do Azure
Recomendamos que você encontre o endereço IP de saída de qualquer aplicativo ou serviço e permita explicitamente o acesso a esses endereços IP ou intervalos individuais. Se um endereço IP de saída fixo não estiver disponível para seu serviço do Azure, você poderá considerar habilitar conexões de todos os endereços IP para datacenters do Azure.
Para habilitar essa configuração no portal do Azure, no painel Rede, marque a caixa de seleção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor e selecione Salvar.
Importante
A opção Permitir acesso público dos serviços e recursos do Azure no Azure configura o firewall para permitir todas as conexões do Azure, incluindo conexões de assinaturas de outros clientes. Quando selecionar esta opção, certifique-se de que as suas permissões de início de sessão e de utilizador limitam o acesso apenas a utilizadores autorizados.
Solucionar problemas de acesso público
Considere os seguintes pontos quando o acesso a uma instância de servidor flexível do Azure Database para PostgreSQL não funcionar como esperado:
As alterações à lista de permissões ainda não entraram em vigor. Pode haver um atraso de até cinco minutos para que as alterações na configuração de firewall do Banco de Dados do Azure para o servidor flexível PostgreSQL entrem em vigor.
Falha na autenticação. Se um usuário não tiver permissões na instância de servidor flexível do Banco de Dados do Azure para PostgreSQL ou se a senha estiver incorreta, a conexão com a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL será negada. Criar uma configuração de firewall apenas oferece aos clientes a oportunidade de tentar se conectar ao seu servidor. Cada cliente ainda deve fornecer as credenciais de segurança necessárias.
O endereço IP dinâmico do cliente está impedindo o acesso. Se você tiver uma conexão com a Internet com endereçamento IP dinâmico e estiver tendo problemas para passar pelo firewall, tente uma das seguintes soluções:
- Peça ao seu provedor de serviços de Internet (ISP) o intervalo de endereços IP atribuído aos computadores clientes que acessam o Banco de Dados do Azure para a instância flexível do servidor PostgreSQL. Em seguida, adicione o intervalo de endereços IP como uma regra de firewall.
- Obtenha endereçamento IP estático em vez disso para os computadores clientes. Em seguida, adicione o endereço IP estático como uma regra de firewall.
A regra de firewall não está disponível para o formato IPv6. As regras da firewall têm de estar no formato IPv4. Se você especificar regras de firewall no formato IPv6, receberá um erro de validação.
Nome do anfitrião
Independentemente da opção de rede escolhida, recomendamos que você sempre use um FQDN como nome de host ao se conectar à sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL. Não é garantido que o endereço IP do servidor permaneça estático. Usar o FQDN ajuda a evitar fazer alterações na cadeia de conexão.
Um exemplo que usa um FQDN como um nome de host é hostname = servername.postgres.database.azure.com. Sempre que possível, evite usar hostname = 10.0.0.4 (um endereço privado) ou hostname = 40.2.45.67 (um endereço público).
Endereços IP de saída para configuração de firewall
Quando sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL precisar fazer conexões de saída com serviços externos (por exemplo, para replicação lógica, extensões que se conectam a recursos externos ou fontes de dados externas), talvez seja necessário configurar regras de firewall nesses serviços externos para permitir o tráfego do seu servidor de banco de dados.
Localizando o endereço IP do servidor
Para localizar o endereço IP atualmente atribuído à sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL:
Usando a resolução DNS: Você pode resolver o FQDN do servidor (
servername.postgres.database.azure.com) para obter o endereço IP atual. Use ferramentas comonslookupoudig:nslookup servername.postgres.database.azure.comUsando o portal do Azure: navegue até sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL no portal do Azure. O endereço IP público do servidor não é exibido diretamente, mas você pode encontrá-lo resolvendo o FQDN do servidor.
Usando a CLI do Azure: você pode usar a CLI do Azure para obter informações sobre seu servidor e, em seguida, resolver o nome do host:
az postgres flexible-server show --resource-group myResourceGroup --name myServerName
Considerações importantes para conexões de saída
Os endereços IP podem mudar: o endereço IP público atribuído à sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL não é estático e pode ser alterado durante a manutenção, atualizações ou outros eventos operacionais. Use sempre o FQDN sempre que possível e atualize regularmente as regras de firewall externas, se necessário.
Intervalos de IP do datacenter do Azure: para uma configuração de firewall mais previsível, você pode permitir o tráfego de todo o intervalo de IP do datacenter do Azure para a região onde o servidor está localizado. O Azure publica os intervalos de IP para cada região no download de Intervalos de IP e Tags de Serviço do Azure .
Tags de serviço: se o serviço externo ao qual você está se conectando também estiver hospedado no Azure, considere usar as Tags de Serviço do Azure para obter regras de firewall mais dinâmicas e fáceis de manter.
Alternativa de ponto de extremidade privado: para uma conectividade mais estável e para evitar endereços IP públicos, considere o uso de pontos de extremidade privados em vez de acesso público.
Conteúdos relacionados
- portal do Azure
- Azure CLI