Configurar a conectividade do TLS no Servidor Único do Banco de Dados do Azure para PostgreSQL

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

O Banco de Dados do Azure para PostgreSQL prefere conectar os aplicativos cliente ao serviço do PostgreSQL que usam o protocolo TLS, anteriormente conhecido como protocolo SSL. Impor conexões TLS entre seu servidor de banco de dados e os aplicativos clientes ajuda a proteger contra ataques de “intermediários” ao criptografar o fluxo de dados entre o servidor e seu aplicativo.

Por padrão, o serviço de banco de dados do PostgreSQL é configurado para exigir conexão do TLS. Você pode optar por desabilitar a necessidade de TLS se o aplicativo cliente não oferecer suporte à conectividade TLS.

Observação

Com base nos comentários dos clientes, estendemos a substituição do certificado raiz para nossa CA Raiz Baltimore existente até 30 de novembro de 2022 (30/11/2022).

Importante

O certificado raiz SSL está definido para expirar a partir de dezembro de 2022 (12/2022). Atualize o aplicativo para usar o novo certificado. Para saber mais, confira atualizações de certificado planejadas

Impondo conexões do protocolo TLS

Para todos os Bancos de Dados do Azure para servidores PostgreSQL provisionados com o Portal e a CLI do Azure, a imposição de conexões TSL está habilitada por padrão.

Da mesma forma, cadeias de conexão previamente definidas nas configurações de "Cadeias de Conexão" em seu servidor no Portal do Azure incluem os parâmetros necessários para linguagens comuns a fim de se conectar ao seu servidor de banco de dados usando TSL. O parâmetro TSL varia de acordo com o conector, por exemplo "ssl=true" ou "sslmode=require" ou "sslmode=required" e outras variações.

Configurar a imposição do protocolo TSL

Como opção, você pode desabilitar a imposição da conectividade TSL. O Microsoft Azure recomenda sempre habilitar a configuração Impor conexão SSL para melhorar a segurança.

Usando o portal do Azure

Visite seu servidor de Banco de Dados do Azure para PostgreSQL e selecione em Segurança de conexão. Use o botão de alternância para habilitar ou desabilitar a configuração Impor conexão SSL. Em seguida, selecione Salvar.

Segurança de Conexão - Desabilitar a imposição de TLS/SSL

Você pode confirmar a configuração exibindo a página Visão geral para ver o indicador Status de imposição de SSL.

Usando a CLI do Azure

Você pode habilitar ou desabilitar o parâmetro ssl-enforcement usando os valores Enabled ou Disabled respectivamente na CLI do Azure.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Determinar o status das conexões SSL

Também é possível coletar todas as informações sobre o uso de SSL da instância do Banco de Dados do Azure para PostgreSQL – Servidor Único por processo, cliente e aplicativo usando a seguinte consulta:

SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;

Verificar se o seu aplicativo ou sua estrutura oferece suporte a conexões TLS

Algumas estruturas do aplicativos que usam o PostgreSQL para serviços de banco de dados não habilitam o protocolo TSL por padrão durante a instalação. Se o seu servidor PostgreSQL impõe conexões TLS, mas o aplicativo não está configurado para o TLS, o aplicativo pode falhar ao se conectar ao seu servidor de banco de dados. Confira a documentação de seu aplicativo para saber como habilitar conexões TSL.

Aplicativos que exigem a verificação de certificado para conectividade TSL

Em alguns casos, os aplicativos exigem um arquivo de certificado local gerado de um arquivo de certificado de uma Autoridade de Certificação (CA) confiável para se conectar com segurança. O certificado para se conectar a um servidor de Banco de Dados do Azure para PostgreSQL está localizado em https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Baixe o arquivo de certificado e salve-o em seu local preferido.

Consulte os links a seguir para obter certificados para servidores em nuvens soberanas: Azure Governamental, Azure China e Azure Alemanha.

Conecte-se usando psql

O exemplo a seguir mostra como conectar-se ao servidor PostgreSQL usando o utilitário de linha de comando psql. Use a configuração de cadeia de conexão sslmode=verify-full para impor a verificação de certificado TLS/SSL. Passe o caminho do arquivo de certificado local para o parâmetro sslrootcert.

O comando a seguir é um exemplo da cadeia de conexão psql:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Dica

Confirme se o valor passado para sslrootcert corresponde ao caminho do arquivo para o certificado que você salvou.

Imposição de TLS no Servidor único do Banco de Dados do Azure para PostgreSQL

O Servidor Único do Banco de dados do Azure para PostgreSQL dá suporte à criptografia para clientes que se conectam ao seu servidor de banco de dados usando o protocolo TLS. O TLS é um protocolo padrão do setor que garante conexões de rede seguras entre o servidor de banco de dados e os aplicativos cliente, permitindo que você atenda aos requisitos de conformidade.

Configurações de protocolo TLS

O Servidor Único do Banco de Dados do Azure para PostgreSQL fornece a capacidade de impor a versão de TLS para as conexões de cliente. Para impor a versão de TLS, use a configuração de opção versão mínima do TLS. Os valores a seguir são permitidos para essa configuração de opção:

Configuração de TLS mínima Versão do TLS do cliente com suporte
TLSEnforcementDisabled (padrão) Não é necessário TLS
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 e superior
TLS1_1 TLS 1.1, TLS 1.2 e superior
TLS1_2 Versão TLS 1.2 e superior

Por exemplo, definir a versão Mínima de configuração do TLS como 1.0 significa que o servidor permitirá conexões de clientes usando TLS 1.0, 1.1 e 1.2+. Como alternativa, definir como 1.2 significa que você só permitirá conexões de clientes que usam o TLS 1.2+ e todas as conexões com o TLS 1.0 e TLS 1.1 serão rejeitadas.

Observação

Por padrão, o Banco de Dados do Azure para PostgreSQL não impõe uma versão mínima do TLS (a configuração TLSEnforcementDisabled).

Depois de aplicar uma versão mínima do TLS, você não poderá desabilitar mais tarde a imposição mínima da versão.

Para saber como definir a configuração de TLS para o Servidor único do Banco de Dados do Azure para PostgreSQL, consulte Como definir a configuração de TLS.

Suporte à criptografia do Servidor Único do Banco de Dados do Azure para PostgreSQL

Como parte da comunicação do protocolo SSL/TLS, os conjuntos de criptografia são validados e apenas os conjuntos de criptografia com suporte têm permissão para se comunicar com o servidor do banco de dados. A validação do conjunto de criptografia é controlada na camada do gateway e não explicitamente no próprio nó. Se os conjuntos de criptografia não corresponderem a um dos conjuntos listados abaixo, as conexões de entrada do cliente serão rejeitadas.

Conjunto de criptografia com suporte

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Próximas etapas

Revise várias opções de conectividade do aplicativo em Bibliotecas de conexão para o Banco de Dados do Azure para PostgreSQL.