Partilhar via


Regras de firewall no Banco de Dados do Azure para PostgreSQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível

Quando você está executando o Banco de Dados do Azure para servidor flexível PostgreSQL, você tem duas opções de rede principais. As opções são acesso privado (integração de rede virtual) e acesso público (endereços IP permitidos).

Com acesso público, a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL é acessada por meio de um ponto de extremidade público. Por padrão, o firewall bloqueia todo o acesso ao servidor. Para especificar quais hosts IP podem acessar o servidor, crie regras de firewall no nível do servidor. As regras de firewall especificam intervalos de endereços IP públicos permitidos. A firewall concede acesso ao servidor com base no endereço IP de origem de cada pedido. Com acesso privado, nenhum ponto de extremidade público está disponível e apenas hosts localizados na mesma rede podem acessar o Banco de Dados do Azure para servidor flexível PostgreSQL.

Você pode criar regras de firewall usando o portal do Azure ou os comandos da CLI do Azure. Tem de ser o proprietário da subscrição ou um contribuidor da subscrição.

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 instância de servidor flexível do PostgreSQL. As regras não afetam o acesso ao site do portal do Azure.

O diagrama a seguir mostra como as tentativas de conexão da Internet e do Azure devem passar pelo firewall antes de poderem acessar o Banco de Dados do Azure para bancos de dados de servidor flexíveis PostgreSQL:

Diagrama que mostra uma visão geral de como o firewall funciona.

Ligue-se a partir da Internet

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 a um driver JDBC (Java Database Connectivity) para o banco de dados do Azure para servidor flexível PostgreSQL, você poderá encontrar esse erro porque o firewall está bloqueando a conexão:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: nenhuma entrada pg_hba.conf para host "123.45.67.890", usuário "adminuser", banco de dados "postgresql", SSL

Nota

Para aceder ao servidor flexível da Base de Dados do Azure para PostgreSQL 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.

Conectar-se a partir 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. Por exemplo, você pode encontrar o endereço IP de saída de um aplicativo do Serviço de Aplicativo do Azure ou usar um endereço IP público vinculado a uma máquina virtual.

Se um endereço IP de saída fixo não estiver disponível para seu serviço do Azure, considere habilitar conexões de todos os endereços IP para datacenters do Azure:

  1. 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.
  2. Selecione Guardar.

Importante

A opção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor configura o firewall para permitir todas as conexões do Azure, incluindo conexões de assinaturas de outros clientes. Quando estiver a utilizar 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.

Captura de ecrã que mostra seleções para permitir o acesso aos serviços do Azure no portal.

Gerenciar regras de firewall programaticamente

Além de usar o portal do Azure, você pode gerenciar regras de firewall programaticamente usando a CLI do Azure.

Na CLI do Azure, uma configuração de regra de firewall com um endereço inicial e final igual a 0.0.0.0 faz o equivalente à opção Permitir acesso público de qualquer serviço do Azure no Azure a este servidor no portal. Se as regras de firewall rejeitarem a tentativa de conexão, o aplicativo não alcançará a instância flexível do servidor do Banco de Dados do Azure para PostgreSQL.

Solucionar problemas de firewall

Considere as seguintes possibilidades quando o acesso a uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL não se comportar como esperado:

  • As alterações na lista de permissões ainda não entraram em vigor: as alterações na configuração de firewall de uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL podem levar até cinco minutos.

  • O início de sessão não está autorizado ou foi utilizada uma palavra-passe incorreta: se um início de sessão não tiver permissões na instância flexível do servidor da Base de Dados do Azure para PostgreSQL ou se a palavra-passe estiver incorreta, a ligação ao servidor 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.

    Por exemplo, o seguinte erro pode aparecer se a autenticação falhar para um cliente JDBC:

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

  • O firewall não está permitindo endereços IP dinâmicos: 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.

    • Em vez disso, obtenha endereços IP estáticos para os computadores clientes e, em seguida, adicione os endereços IP estáticos como uma regra de firewall.

  • As regras de firewall não estão disponíveis para o formato IPv6: as regras de firewall devem estar no formato IPv4. Se você especificar regras de firewall no formato IPv6, receberá um erro de validação.

Próximos passos