Acesso público no Banco de Dados do Azure para PostgreSQL – Hiperescala (Citus)

APLICA-SE A: Banco de Dados do Azure para PostgreSQL – Hiperescala (Citus)

Banco de Dados do Azure para PostgreSQL – o Hiperescala (Citus) dá suporte a três opções de rede:

  • Sem acesso
    • Esse será o padrão para um grupo de servidores recém-criado se o acesso público ou privado não estiver habilitado. Nenhum computador, dentro ou fora do Azure, pode se conectar aos nós de banco de dados.
  • Acesso público
    • Um endereço IP público é atribuído ao nó coordenador.
    • O acesso ao nó coordenador é protegido por firewall.
    • Opcionalmente, o acesso a todos os nós de trabalho pode ser habilitado. Nesse caso, os endereços IP públicos são atribuídos aos nós de trabalho e são protegidos pelo mesmo firewall.
  • Acesso particular
    • Somente endereços IP privados são atribuídos aos nós do grupo de servidores.
    • Cada nó requer um ponto de extremidade privado para permitir que os hosts na rede virtual selecionada acessem os nós do Hiperescala (Citus).
    • Os recursos de segurança de redes virtuais do Azure, como grupos de segurança de rede, podem ser usados para controle de acesso.

Ao criar um grupo de servidores do Hiperescala (Citus), você pode habilitar o acesso público ou privado ou optar pelo padrão de nenhum acesso. Depois que o grupo de servidores for criado, você poderá optar por alternar entre o acesso público ou privado ou ativá-los de uma vez só.

Esta página descreve a opção de acesso público. Para o acesso privado, confira aqui.

Visão geral do firewall

O firewall do servidor do Banco de Dados do Azure para PostgreSQL impede todos os acessos ao seu nó coordenador de Hiperescala (Citus) até você especificar quais computadores têm permissão. 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 o nó coordenador de Hiperescala (Citus), 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. Para criar regras de firewall no nível de servidor, você deve ser o proprietário da assinatura ou um colaborador da assinatura.

Todo acesso de banco de dados ao seu nó coordenador é bloqueado por padrão pelo firewall. Para começar a usar o servidor de outro computador, especifique uma ou mais regras de firewall no nível do servidor para permitir o acesso ao seu servidor. Use as regras de firewall para especificar quais intervalos de endereços IP da Internet permitir. 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 seu Banco de Dados PostgreSQL, conforme exibido no diagrama a seguir:

Diagrama que mostra regras de firewall no nível do servidor entre sistemas remotos e locais e conexões com falha.

Conectar pela Internet e pelo Azure

Um firewall do grupo de servidores de Hiperescala (Citus) controla quem pode se conectar ao nó coordenador do grupo. O firewall determina o acesso consultando uma lista configurável de regras. Cada regra é um endereço IP ou um intervalo de endereços que são permitidos.

Quando o firewall bloqueia conexões, isso pode causar erros de aplicativo. O uso do driver JDBC do PostgreSQL, por exemplo, gera um erro como este:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.postgresql.util.PSQLException: FATAL: nopg_hba.conf entry for host "123.45.67.890", user "citus", database "citus", SSL

Consulte Criar e gerenciar regras de firewall para saber como as regras são definidas.

Solução de problemas do firewall do servidor de banco de dados

Quando o acesso ao serviço do Banco de Dados do Microsoft Azure para PostgreSQL - Hiperescala (Citus) não se comporta conforme o esperado, considere estes pontos:

  • As alterações na lista de permissões ainda não entraram em vigor: pode ocorrer um atraso máximo de cinco minutos para que as alterações na configuração de Hiperescala (Citus) entrem em vigor.

  • O usuário não está autorizado ou uma senha incorreta foi usada: se um usuário não tiver permissões no servidor ou se a senha usada estiver incorreta, a conexão ao servidor 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:

  • Solicite ao provedor de serviços de Internet (ISP) o intervalo de endereços IP atribuído aos computadores clientes que acessarão o nó coordenador de Hiperescala (Citus) e depois 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.

Próximas etapas

Para ver artigos sobre como criar regras de firewall no nível de servidor e de banco de dados, consulte: