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á no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

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

Regras de firewall: essas regras permitem que os clientes acessem todo o Banco de Dados do Azure para PostgreSQL Server, ou seja, todos os bancos de dados dentro do mesmo servidor lógico. As regras de firewall no nível de servidor podem ser configuradas usando o portal do Azure ou os comandos da CLI do Azure. Para criar regras da firewall ao nível do servidor, tem de ser o proprietário da subscrição ou um contribuinte da subscrição.

Descrição geral das firewalls

Todo o acesso ao servidor da Base de Dados do Azure para PostgreSQL está bloqueado pela firewall por predefinição. Para aceder ao servidor a partir de outro computador/cliente ou aplicação, tem de especificar uma ou mais regras de firewall ao 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 ao próprio site do portal do Azure não é afetado pelas regras de firewall. As tentativas de conexão da Internet e do Azure devem primeiro passar pelo firewall antes de chegarem ao seu Banco de Dados PostgreSQL, conforme mostrado no diagrama a seguir:

Exemplo de fluxo de como o firewall funciona

Ligar a partir da Internet

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 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, será rejeitada. 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: nenhuma entrada pg_hba.conf para host "123.45.67.890", usuário "adminuser", banco de dados "postgresql", SSL

Nota

Para aceder à 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.

Ligar a partir do Azure

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

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 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 ATIVADA no painel de segurança Conexão e pressionando 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 Banco de Dados do Azure para o servidor PostgreSQL.

Importante

A opção Allow access to Azure services (Permitir acesso aos serviços do Azure) configura a firewall para permitir todas as ligações a partir do Azure, incluindo ligações de subscrições 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.

Configurar Permitir acesso aos serviços do Azure no portal

Conectando-se a partir de uma rede virtual

Para se conectar com segurança ao seu Banco de Dados do Azure para servidor PostgreSQL a partir de uma rede virtual, considere usar pontos de extremidade de serviço VNet.

Gerir regras de firewall programaticamente

Além do portal do Azure, as regras de firewall podem ser gerenciadas programaticamente usando a CLI do Azure. Consulte também Criar e gerenciar o Banco de Dados do Azure para regras de firewall do PostgreSQL usando a CLI do Azure

Resolver problemas da firewall

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

  • As alterações na lista de permissões ainda não entraram em vigor: pode haver um atraso de até cinco minutos para que as alterações no Banco de Dados do Azure para que a configuração do firewall do PostgreSQL Server entre em vigor.

  • O logon não está autorizado ou uma senha incorreta foi usada: se um logon não tiver permissões no Banco de Dados do Azure para o servidor PostgreSQL ou se a senha usada estiver incorreta, a conexão com o Banco de Dados do Azure para o servidor 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.

    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 de senha para o usuário "yourusername"

  • Endereço IP dinâmico: se tiver uma ligação à Internet com endereçamento IP dinâmico e estiver a ter dificuldades em passar a firewall, pode experimentar uma das soluções seguintes.

    • 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 PostgreSQL Server e adicione o intervalo de endereços IP como uma regra de firewall.

    • Obtenha o endereçamento IP estático em vez disso para os computadores clientes e, em seguida, adicione o endereço IP estático como uma regra de firewall.

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

  • Não é possível conectar-se a partir do recurso do Azure com IP permitido: verifique se o ponto de extremidade do serviço Microsoft.Sql está habilitado para a sub-rede a partir da qual você está se conectando. Se o Microsoft.Sql estiver habilitado, isso indica que você deseja usar apenas as regras de ponto de extremidade do serviço VNet nessa sub-rede.

    Por exemplo, você pode ver 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 especificar as regras da firewall no formato IPv6, é apresentado o erro de validação.

Próximos passos