Após ativar a criptografia SSL, os clientes ainda podem se conectar sem SSL usando o parâmetro PGSSLMODE=disable caso o controle de acesso de clientes não esteja configurado. Para forçar conexões SSL em todos os clientes, siga as etapas descritas neste tópico.
Pré-requisitos
A instância do RDS for PostgreSQL deve ter a criptografia SSL ativada. Para obter mais informações, consulte Ativar rapidamente a criptografia SSL usando um certificado de nuvem ou Ativar a criptografia SSL usando um certificado personalizado.
Caso você planeje usar o Método 1, configure um certificado CA de cliente para verificar os certificados dos clientes. Para obter mais informações, consulte Configurar um certificado CA de cliente.
Procedimento
O RDS for PostgreSQL oferece os seguintes métodos para forçar a criptografia SSL nas conexões de clientes.
Method 1: Client ACL
Após configurar um certificado CA de cliente, defina uma ACL de cliente na instância do RDS for PostgreSQL para gerencie o acesso dos clientes. Os clientes deverão apresentar um certificado de cliente válido e uma chave privada, além de usar o método de autenticação especificado para se conectar ao banco de dados.
Configurar a ACL de cliente torna a instância do banco de dados PostgreSQL indisponível por cerca de um minuto.
Se o controle de acesso de clientes não estiver configurado na instância do RDS for PostgreSQL, o método de autenticação padrão será
prefer. Isso permite que os clientes se conectem sem SSL usandoPGSSLMODE=disable. Para bloquear conexões sem SSL, configure a ACL de cliente com um método de autenticação diferente depreferapós ativar a criptografia SSL.
Clique em Modify ao lado de Configure ACL e selecione um modo de controle de conexão de clientes.
Use um dos seguintes métodos de autenticação para forçar conexões SSL à instância do RDS for PostgreSQL:
cert: Autentica usando um certificado de cliente em vez de uma senha. Criptografa a conexão, verifique o certificado do cliente e confere se o Common Name (CN) do certificado corresponde ao nome de usuário do banco de dados.verify-ca: Criptografa a conexão e verifique o certificado do cliente em relação à CA configurada.verify-full(compatível com RDS for PostgreSQL 12 e versões posteriores): Criptografa a conexão, verifique o certificado do cliente em relação à CA configurada e confere se o CN do certificado corresponde ao nome de usuário do banco de dados.
Method 2: pg_hba.conf file
Após ativar a criptografia SSL, use o recurso AD Domain Service Configuration do RDS for PostgreSQL para modifique o arquivo pg_hba.conf. Isso força os clientes a usarem SSL ao se conectarem ao banco de dados.
Acesse a página Instances. Na barra de navegação superior, selecione a região onde a instância do RDS reside. Em seguida, localize a instância do RDS e clique em seu ID.
No painel de navegação à esquerda, clique em Accounts e, em seguida, clique na aba AD Domain Services.
Na tabela de regras da página de configuração do pg_hba.conf, modifique o primeiro registro defina TYPE como
hostssl, DATABASE e USER como all, ADDRESS como0.0.0.0/0e METHOD como md5.-
Clique em Submit.
NotaApós clique em Submit, o status da instância muda para Maintaining Instance por cerca de um minuto. A nova configuração se aplica apenas a novas conexões. Para aplicar a alteração às conexões existentes, desconecte e reconecte.