Quero usar uma conexão Secure Socket Layer (SSL) para me conectar ao meu cluster de banco de dados Amazon Aurora compatível com PostgreSQL.
Breve descrição
Você pode criptografar uma conexão com o cluster de banco de dados compatível com o Aurora PostgreSQL a partir da aplicação com SSL ou Transport Layer Security (TLS). As conexões SSL e TLS fornecem uma única camada de segurança para o cluster e criptografam os dados que se movem entre o cliente e o cluster. Para obter mais informações, consulte Como usar SSL/TLS para criptografar uma conexão com um cluster de banco de dados.
Para serem seguras, as conexões SSL devem ser configuradas no cliente e no servidor antes de serem estabelecidas. Se o SSL não estiver configurado no servidor, o cliente poderá enviar informações confidenciais, como senhas. Para obter mais informações sobre como criar uma conexão segura por SSL, consulte Suporte para SSL no site do PostgreSQL.
Os modos SSL para PostgreSQL são:
- verify-full
- verify-ca
- require
- prefer
- allow
- disable
Para obter mais informações sobre como escolher o modo SSL certo para o caso de uso, consulte Proteção fornecida em modos diferentes no site do PostgreSQL.
Resolução
O Amazon Relational Database Service (Amazon RDS) cria a certificação SSL ou TLS para o cluster. Isso ocorre quando você cria o cluster. Para obter mais informações, consulte Segurança com o Aurora PostgreSQL.
Como se conectar ao cluster de banco de dados via SSL/TLS
- Baixe o certificado SSL/TSL.
- Importe o certificado no sistema operacional.
- Conecte-se ao cluster de banco de dados compatível com o Aurora PostgreSQL via SSL/TLS.
Por exemplo:
psql -h DBInstance.cluster-Account-Number.eu-west-1.rds.amazonaws.com -p 5432 "dbname=postgres user=postgres sslrootcert=global-bundle.pem sslmode=verify-full"
Quando você define rds.force_ssl como 1 (ativado), o arquivo pg_hba.conf da instância de banco de dados é modificado para oferecer suporte à nova configuração SSL. Use a exibição pg_hba_file_rules para ver o resumo do conteúdo do arquivo pg_hba.conf. O valor do tipo na exibição pg_hba_file_rules é atualizado para hostssl depois que rds.force_ssl é definido como 1 (ativado).
Você pode exigir que conexões com o cluster de banco de dados utilizem SSL/TLS. Para fazer isso, use o parâmetro rds.force_ssl. O parâmetro rds.force_ssl parameter está definido como 0 por padrão. O valor 0 indica que ele está desativado. Para ativar esse parâmetro, defina rds.force_ssl como 1. Isso torna o SSL/TLS um requisito para conexões com o cluster de banco de dados.
Para obter mais informações, consulte Como proteger dados do Aurora PostgreSQL com SSL/TLS.
Como revisar a conexão SSL
Para revisar a conexão SSL, execute este comando:
postgres=> select ssl_is_used(); ssl_is_used
-------------
t
(1 row)
postgres=> select ssl_cipher();
ssl_cipher
-----------------------------
ECDHE-RSA-AES128-GCM-SHA256
(1 row)
Observação: O SSL da instância do Amazon RDS é um SSL unidirecional. Isso significa que o cliente pode verificar a identidade do servidor.