Share via


Regras de firewall no Banco de Dados do Azure para PostgreSQL – Servidor único

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. É altamente recomendável atualizar para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível, veja O que está acontecendo com o Banco de Dados do Azure para PostgreSQL Servidor único?.

O servidor do Banco de Dados do Azure para PostgreSQL é seguro por padrão, impedindo todo acesso ao servidor de banco de dados até que você especifique quais hosts de IP têm permissão para acessá-lo. O firewall concede acesso ao servidor com base no endereço IP de origem de cada solicitação. Para configurar seu firewall, você deve criar regras de firewall que especifiquem intervalos de endereços IP aceitáveis. Você pode criar regras de firewall no nível de servidor.

Regras de firewall: essas regras permitem que os clientes acessem todo o Banco de Dados do Azure para servidor PostgreSQL, ou seja, todos os bancos dentro do mesmo servidor lógico. As regras de firewall no nível de servidor podem ser configuradas por meio do Portal do Azure ou usando comandos da CLI do Azure. Para criar regras de firewall no nível de servidor, você deve ser o proprietário da assinatura ou um colaborador da assinatura.

Visão geral do firewall

Todo acesso ao servidor do Banco de Dados do Azure para PostgreSQL é bloqueado por padrão pelo firewall. Para acessar o servidor de outro computador/cliente ou aplicativo, especifique uma ou mais regras de firewall no nível do servidor para permitir o acesso ao servidor. Use as regras de firewall para especificar intervalos de endereços IP públicos permitidos. O acesso em si ao site do Portal do Azure não é afetado pelas regras de firewall. As tentativas de conexão da Internet e do Azure devem passar primeiramente pelo firewall antes de poderem acessar o Banco de Dados PostgreSQL, conforme exibido no diagrama a seguir:

Fluxo de exemplo de como funciona o firewall

Conectando pela Internet

As regras de firewall no nível do servidor se aplicam a todos os bancos de dados no mesmo servidor do Banco de Dados do Azure para PostgreSQL. Se o endereço IP fonte 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, será rejeitada. Por exemplo, se o seu aplicativo se conectar ao 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: nenhuma entrada pg_hba.conf para o host "123.45.67.890", usuário "adminuser", banco de dados "postgresql", SSL

Observação

Para acessar o Banco de Dados do Azure para PostgreSQL no computador local, verifique se o firewall na rede e no computador local permite a comunicação de saída na porta TCP 5432.

Conexão pelo Azure

É recomendável que você localize 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. Por exemplo, você pode encontrar o endereço IP de saída de um serviço de Azure App ou usar um IP público vinculado a uma máquina virtual ou outro recurso (consulte abaixo para obter informações sobre como se conectar com o IP privado de uma máquina virtual nos pontos de extremidade de serviço).

Se um endereço IP de saída fixo não estiver disponível para o serviço do Azure, você poderá considerar habilitar conexões de todos os endereços IP do datacenter do Azure. Essa configuração pode ser habilitada no portal do Azure definindo a opção Permitir acesso aos serviços do Azure como ON no painel Segurança de conexão e ao pressionar Salvar. Na CLI do Azure, uma configuração de regra de firewall com endereço inicial e final igual a 0.0.0.0 faz o equivalente. Se a tentativa de conexão for rejeitada pelas regras de firewall, ela não alcançará o servidor do Banco de Dados do Azure para PostgreSQL.

Importante

A opção Permitir acesso aos serviços do Azure configura o firewall para permitir todas as conexões do Azure, incluindo as conexões das assinaturas de outros clientes. Ao selecionar essa opção, verifique se as permissões de logon e de usuário limitam o acesso somente a usuários autorizados.

Configurar Permitir o acesso aos serviços do Azure

Conexão por uma VNet

Para se conectar com segurança ao servidor do Banco de Dados do Azure para PostgreSQL por uma VNet, considere o uso de Pontos de extremidade de serviço de VNet.

Gerenciando programaticamente as regras de firewall

Além do Portal do Azure, as regras de firewall podem ser gerenciadas por meio de programação usando a CLI do Azure. Confira também Criar e gerenciar regras de firewall do Banco de Dados do Azure para PostgreSQL usando a CLI do Azure

Solucionar problemas de firewall

Considere os seguintes pontos quando o acesso ao Banco de Dados do Microsoft Azure para o serviço de servidor PostgreSQL não se comportar conforme o esperado:

  • As alterações à lista de permissões ainda não entraram em vigor: pode ocorrer um atraso de cinco minutos para que as alterações na configuração do firewall do Banco de Dados do Azure para servidor PostgreSQL entrem em vigor.

  • O logon não está autorizado ou uma senha incorreta foi usada: se um logon não tiver permissões no servidor do Banco de Dados do Azure para servidor PostgreSQL, ou se a senha usada estiver incorreta, a conexão com o Banco de Dados do Azure para servidor PostgreSQL será negada. Criar uma configuração de firewall apenas oferece aos clientes uma oportunidade de tentar se conectar ao servidor; cada cliente ainda deverá fornecer as credenciais de segurança necessárias.

    Por exemplo, usando um cliente JDBC, o seguinte erro pode aparecer.

    java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: falha na autenticação da senha para o usuário "seunomedeusuário"

  • Endereço IP dinâmico: se você tiver uma conexão com a Internet com endereçamento IP dinâmico e estiver com dificuldades para atravessar o 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 acessarão o servidor de Banco de Dados do Azure para servidor PostgreSQL e, em seguida, adicione o intervalo de endereços IP como uma regra de firewall.

    • Obtenha o endereçamento IP estático para os computadores cliente e adicione os endereços IP estáticos como uma regra de firewall.

  • O IP do servidor parece ser público: as conexões com o servidor do Banco de Dados do Azure para PostgreSQL são roteadas por meio de um gateway do Azure acessível publicamente. No entanto, o IP do servidor real é protegido pelo firewall. Para obter mais informações, consulte o artigo sobre arquitetura de conectividade.

  • Não é possível se conectar do recurso do Azure com o IP permitido: Verifique se o ponto de extremidade de serviço Microsoft.Sql está habilitado para a sub-rede da qual você está se conectando. Se o Microsoft.Sql estiver habilitado, ele indicará que você só deseja usar Regras de ponto de extremidade de serviço de VNet nessa sub-rede.

    Por exemplo, você poderá encontrar o seguinte erro se estiver se conectando de uma VM do Azure em uma sub-rede que tenha o Microsoft.Sql habilitado, mas não tenha nenhuma regra de VNet correspondente: FATAL: Client from Azure Virtual Networks is not allowed to access the server

  • A regra de firewall não está disponível para o formato IPv6: as regras de firewall devem estar no formato IPv4. Se você especificar regras de firewall no formato IPv6, ele mostrará o erro de validação.

Próximas etapas