Visão geral da rede do Banco de Dados do Azure para PostgreSQL - Servidor flexível com acesso público (endereços IP permitidos)
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
Este artigo descreve conceitos de conectividade e rede para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível.
Ao criar um 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 no Banco de Dados do Azure para servidor flexível 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
hostname
propriedade 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 Banco de Dados do Azure para PostgreSQL - Servidor Flexível é 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 rede de acesso público com o Banco de Dados do Azure para PostgreSQL - Servidor Flexível
Quando você escolhe o método de acesso público, seu servidor flexível do Banco de Dados do Azure para PostgreSQL é acessado 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 o 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 servidor flexível PostgreSQL. Por padrão, nenhum endereço IP é permitido. Você pode adicionar endereços IP durante a criação do servidor ou depois.
- Seu servidor flexível do Banco de Dados do Azure para PostgreSQL tem um nome DNS resolúvel publicamente.
- Seu 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 no mesmo banco de dados do Azure para servidor flexível 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 à Base de Dados do Azure para PostgreSQL - Servidor Flexível a partir do seu computador local, certifique-se de que a firewall na sua 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 Criar e gerenciar o Banco de Dados do Azure para PostgreSQL - Regras de firewall do Servidor Flexível usando a CLI do Azure.
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 ao Banco de Dados do Azure para PostgreSQL - Servidor Flexível não se comportar 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 no Banco de Dados do Azure para servidor flexível PostgreSQL ou se a senha estiver incorreta, a conexão com o Banco de Dados do Azure para servidor flexível 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 o servidor flexível 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 ao seu 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).