Configurar a conectividade TLS 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 PostgreSQL prefere conectar seus aplicativos cliente ao serviço PostgreSQL usando TLS (Transport Layer Security), anteriormente conhecido como SSL (Secure Sockets Layer). A imposição de conexões TLS entre o servidor de banco de dados e os aplicativos cliente ajuda a proteger contra ataques "man-in-the-middle", criptografando o fluxo de dados entre o servidor e seu aplicativo.

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

Importante

Os certificados intermediários SSL devem ser 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 CA raiz confiável, através da CA (ou CAs) intermediária e termina com o certificado SSL emitido para você. A fixação de certificados é 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 autoridade de certificação raiz confiável, que já atualizamos totalmente durante o ano atual, e onde 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 autoridade de certificação intermediária. No entanto, há uma capacidade teórica de criar pilha de conectividade personalizada que fixa certificados intermediários para o cliente em uma variedade de linguagens de programação. Como explicado acima, no cenário improvável de que você esteja 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 TLS

Para todos os servidores do Banco de Dados do Azure para PostgreSQL provisionados por meio do portal do Azure e da CLI, a imposição de conexões TLS é habilitada por padrão.

Da mesma forma, as cadeias de conexão predefinidas nas configurações de "Cadeias de Conexão" em seu servidor no portal do Azure incluem os parâmetros necessários para que idiomas comuns se conectem ao servidor de banco de dados usando TLS. O parâmetro TLS varia com base no conector, por exemplo, "ssl=true" ou "sslmode=require" ou "sslmode=required" e outras variações.

Configurar a imposição de TLS

Opcionalmente, você pode desativar a imposição da conectividade TLS. O Microsoft Azure recomenda sempre habilitar a configuração de conexão Impor SSL para maior segurança.

Utilizar o portal do Azure

Visite seu Banco de Dados do Azure para servidor PostgreSQL e selecione 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 Guardar.

Segurança da conexão - Desativar a imposição de TLS/SSL

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

Utilizar a CLI do Azure

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

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

Determinando o status de conexões SSL

Você também pode coletar todas as informações sobre o uso SSL do Banco de Dados do Azure para PostgreSQL - instância de 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;

Certifique-se de que seu aplicativo ou estrutura ofereça suporte a conexões TLS

Algumas estruturas de aplicativos que usam PostgreSQL para seus serviços de banco de dados não habilitam o TLS 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 TLS, o aplicativo pode falhar ao se conectar ao seu servidor de banco de dados. Consulte a documentação do seu aplicativo para saber como habilitar conexões TLS.

Aplicativos que exigem verificação de certificado para conectividade TLS

Em alguns casos, os aplicativos exigem um arquivo de certificado local gerado a partir de um arquivo de certificado de Autoridade de Certificação (CA) confiável para se conectarem com segurança. O certificado para se ligar a uma Base de dados do Azure para o servidor PostgreSQL está localizado em https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Transfira o ficheiro de certificado e guarde-o na sua localização preferida.

Consulte os seguintes links para certificados para servidores em nuvens soberanas: Azure Government, Microsoft Azure operado pela 21Vianet e Azure Germany.

Conecte-se usando psql

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

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"

Gorjeta

Confirme que o valor transmitido a sslrootcert corresponde ao caminho do ficheiro para o certificado que guardou.

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

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

Definições do TLS

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

Configuração mínima de TLS Versão TLS do cliente suportada
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 TLS versão 1.2 e superior

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

Nota

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 impor uma versão mínima do TLS, você não poderá desativar posteriormente a imposição da versão mínima.

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

Suporte de codificação pelo Banco de Dados do Azure para PostgreSQL Servidor único

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

Pacote de codificação suportado

  • 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óximos passos

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

  • Saiba como configurar o TLS