Habilite conexões criptografadas para instâncias de banco de dados PostgreSQL no Amazon RDS - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Habilite conexões criptografadas para instâncias de banco de dados PostgreSQL no Amazon RDS

Criado por Rohit Kapoor (AWS)

Ambiente: PoC ou piloto

Tecnologias: bancos de dados; redes; segurança, identidade, conformidade

Workload: código aberto

Serviços da AWS: Amazon RDS; Amazon Aurora

Resumo

O Amazon Relational Database Service (Amazon RDS) é compatível com a criptografia SSL para instâncias de banco de dados PostgreQL. Por meio do SSL, você pode criptografar uma conexão do PostgreSQL entre seus aplicativos e suas instâncias de banco de dados do Amazon RDS para PostgreSQL. Por padrão, o Amazon RDS para PostgreSQL usa SSL/TLS e espera que todos os clientes se conectem usando a criptografia SSL/TLS. O Amazon RDS para PostgreSQL oferece suporte às versões 1.1, e 1.2 do TLS.

Esse padrão descreve como você pode habilitar conexões criptografadas para uma instância de banco de dados do Amazon RDS para PostgreSQL. Você pode usar o mesmo processo para habilitar conexões criptografadas para o Amazon Aurora Edição Compatível com PostgreSQL.

Pré-requisitos e limitações

Arquitetura

Habilitando conexões criptografadas para instâncias de banco de dados PostgreSQL no Amazon RDS

Ferramentas

  • O pgAdmin é uma plataforma de administração e desenvolvimento de código aberto para o PostgreSQL. Você pode usar o pgAdmin no Linux, Unix, macOS e Windows para gerenciar seus objetos de banco de dados no PostgreSQL 10 e versões posteriores.

  • Os editores do PostgreSQL fornecem uma interface mais fácil de usar para ajudá-lo a criar, desenvolver e executar consultas e a editar o código de acordo com seus requisitos.

Práticas recomendadas

  • Monitore conexões de banco de dados não seguras.

  • Audite direitos de acesso ao banco de dados.

  • Garanta que os backups e os instantâneos sejam criptografados em repouso.

  • Monitore o acesso ao banco de dados.

  • Evite grupos de acesso irrestrito.

  • Melhore suas notificações com a Amazon GuardDuty.

  • Monitore a adesão à política regularmente.

Épicos

TarefaDescriçãoHabilidades necessárias

Carregue um certificado confiável no seu computador.

Para adicionar certificados ao armazenamento das Autoridades de Certificação Raiz Confiáveis do seu computador, siga estas etapas. (Essas instruções usam o Windows Server como exemplo.)

  1. No Windows Server, escolha Iniciar, Executar e digite mmc.

  2. No console, escolha Arquivo, Adicionar/remover snap-in.

  3. Em Snap-ins disponíveis, escolha Certificados e, em seguida, escolha Adicionar.

  4. Em Este snap-in sempre gerenciará certificados para, escolha Conta de computador, Avançar.

  5. Escolha Computador local, Concluir.

  6. Se você não tiver mais snap-ins para adicionar ao console, escolha OK.

  7. Na árvore do console, clique duas vezes em Certificados.

  8. Clique com o botão direito do mouse em Autoridades de certificação raiz confiáveis.

  9. Escolha Todas as tarefas, Importar para importar os certificados baixados.

  10. Siga as etapas no Assistente de importação de certificados.

DevOps engenheiro, engenheiro de migração, DBA
TarefaDescriçãoHabilidades necessárias

Crie um grupo de parâmetros e defina o parâmetro rds.force_ssl.

Se a instância de banco de dados PostgreSQL tiver um grupo de parâmetros personalizado, edite o grupo de parâmetros e altere rds.force_ssl para 1.

Se a instância de banco de dados usar o grupo de parâmetros padrão que não tem rds.force_ssl habilitado, crie um novo grupo de parâmetros. Você pode modificar o novo grupo de parâmetros usando a API do Amazon RDS ou manualmente, conforme as instruções a seguir.

para criar um novo grupo de parâmetros:

  1. Faça login no console de gerenciamento da AWS e abra o console do Amazon RDS para a região da AWS que hospeda a instância de banco de dados.

  2. No painel de navegação, escolha Grupos de parâmetros.

  3. Escolha Criar grupo de parâmetros e defina os seguintes valores: 

    • Para Parameter group family (Família de grupos de parâmetros), escolha postgres14 ou superior.

    • Em Nome do grupo, digite pgsql-<database_instance>-ssl.

    • Em Descrição, insira uma descrição em formato livre para o grupo de parâmetros que você está adicionando.

    • Escolha Criar.

  4. Escolha o grupo de parâmetros que criou anteriormente.

  5. Em Parameter group actions (Ações do grupo de parâmetros), escolha Edit (Editar).

  6. Encontre rds.force_ssl e altere sua configuração para 1.

    Observação: realize testes do lado do cliente antes de alterar esse parâmetro.

  7. Escolha Salvar alterações.

Para associar o novo grupo de parâmetros de banco de dados à sua instância de banco de dados:

  1. No console do Amazon RDS, no painel de navegação, selecione Bancos de dados e escolha a instância de banco de dados PostgreSQL.

  2. Escolha Modificar.

  3. Em Configuração adicional, escolha o novo grupo de parâmetros e, em seguida, escolha Continuar.

  4. Em Schedule modifications (Programar modificações), escolha Apply immediately (Aplicar imediatamente).

  5. Selecione Modify DB instance (Modificar instância de banco de dados).

Para obter mais informações, consulte a documentação do Amazon RDS.

DevOps engenheiro, engenheiro de migração, DBA

Força conexões SSL.

Conecte-se à sua instância de banco de dados do Amazon RDS para PostgreSQL de origem. As tentativas de conexão que não usam SSL são rejeitadas com uma mensagem de erro. Para obter mais informações, consulte a documentação do Amazon RDS.

DevOps engenheiro, engenheiro de migração, DBA
TarefaDescriçãoHabilidades necessárias

Instale a extensão SSL.

  1. Inicie uma conexão psql ou pgAdmin como DBA.

  2. Chame a função ssl_is_used () para determinar se o SSL está sendo usado.

    select ssl_is_used();

    A função retornará t se a conexão estiver usando o SSL; caso contrário, retornará f.

  3. Instale a extensão SSL.

    create extension sslinfo; show ssl; select ssl_cipher();

Para obter mais informações, consulte a documentação do Amazon RDS.

DevOps engenheiro, engenheiro de migração, DBA
TarefaDescriçãoHabilidades necessárias

Configure um cliente para SSL.

Usando SSL, você pode iniciar o servidor PostgreSQL com suporte para conexões criptografadas que usam protocolos TLS. O servidor recebe as conexões padrão e SSL na mesma porta TCP e negocia com qualquer cliente conectado se deve usar SSL ou não. Por padrão, essa é uma opção cliente.

Se estiver usando o cliente psql:

  1. Garanta que o certificado Amazon RDS tenha sido carregado em seu computador local.

  2. Inicie uma conexão de cliente SSL adicionando o seguinte:

    psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser sslmode=verify-full sslrootcert=rds-ssl-ca-cert.pem select ssl_cipher();

Para outros clientes do PostgreSQL:

  • Modifique o respectivo parâmetro da chave pública do aplicativo. Isso pode estar disponível como uma opção ou como uma propriedade na página de conexão nas ferramentas de GUI. 

Examine as páginas a seguir para esses clientes:

DevOps engenheiro, engenheiro de migração, DBA

Solução de problemas

ProblemaSolução

Não é possível baixar o certificado SSL.

Verifique sua conexão com o site e tente baixar novamente o certificado em seu computador local.

Recursos relacionados