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.
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