Acesso público no Azure Cosmos DB for PostgreSQL

APLICA-SE A: Azure Cosmos DB for PostgreSQL (da plataforma da extensão de dados Citus para PostgreSQL)

O Azure Cosmos DB for PostgreSQL dá suporte a três opções de rede:

  • Sem acesso
    • Esse será o padrão para um cluster 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 cluster.
    • Cada nó requer um ponto de extremidade privado para permitir que os hosts na rede virtual selecionada acessem os nós.
    • 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 cluster, é possível habilitar o acesso público ou privado ou optar pelo padrão: nenhum acesso. Depois de criar o cluster, será possível optar por alternar entre o acesso público ou privado ou ativar ambos.

Esta página descreve a opção de acesso público. Para obter acesso privado, consulte Acesso privado no Azure Cosmos DB for PostgreSQL.

Visão geral do firewall

O firewall do servidor do Azure Cosmos DB for PostgreSQL impede todos os acessos ao seu nó coordenador 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, 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 o 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 da Internet e do Azure

Um firewall de cluster 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: no pg\_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 Microsoft Azure Cosmos DB for PostgreSQL não se comporta conforme o esperado, considere estes pontos:

  • 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 Azure Cosmos DB for PostgreSQL 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. A criação de uma configuração de firewall apenas fornece aos clientes uma oportunidade de tentar se conectar ao servidor. O 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: password authentication failed for user "yourusername"

  • 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 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: