Share via


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

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível, veja O que está acontecendo com o 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.

Importante

Os certificados intermediários SSL estão definidos para serem atualizados a partir de 31 de janeiro de 2024 (31/01/2024). Um certificado intermediário é um certificado subordinado emitido por uma raiz confiável especificamente para emitir certificados de entidade final. O resultado é uma cadeia de certificados que começa na AC raiz confiável, por meio da AC intermediária (ou CAs) e termina com o certificado SSL emitido para você. A Fixação de certificado é uma técnica de segurança em que apenas certificados autorizados ou fixados são aceitos ao estabelecer uma sessão segura. Qualquer tentativa de estabelecer uma sessão segura usando um certificado diferente é rejeitada. Ao contrário da AC raiz confiável, que já atualizamos totalmente durante o ano atual e em que o certificado pode ser fixado usando a diretiva de cliente de cadeia de conexão verify-ca ou verify-full, não há uma maneira padrão e bem estabelecida de fixar a AC intermediária. No entanto, há uma capacidade teórica de criar uma pilha de conectividade personalizada que fixa certificados intermediários ao cliente em uma variedade de linguagens de programação. Conforme explicado acima, no cenário improvável que você está fixando os certificados intermediários com código personalizado, você pode ser afetado por essa alteração. Para determinar se você está fixando CAs, consulte Fixação de certificados e serviços do Azure

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.

Veja os links a seguir para certificados de servidores em nuvens soberanas: Azure Governamental, Microsoft Azure operado pela 21Vianet 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.