AWS Secrets Manager

AWS Secrets Manager

O AWS Secrets Manager ajuda no armazenamento e proteção de segredos que podem ser senhas, chaves de API e outros dados sensíveis. Ao utilizar o Secrets Manager é possível recuperar segredo de forma programática, por meio de chamadas de API, evitando utilizar segredos e credenciais incorporadas no código da aplicação. O Secrets Manager permite rotacionar o segredo sob demanda ou automaticamente, utilizando uma função Lambda, por exemplo. Isso permite que você substitua os segredos de longo prazo por outros de curto prazo, reduzindo significativamente o risco de comprometimento.

Cenário básico do AWS Secrets Manager

O diagrama abaixo mostra como é possível armazenar credenciais de um banco de dados no Secrets Manager e usar estas credenciais em uma aplicação para acessar o banco de dados.

secret.png

  1. Criação do conjuntos de credenciais no banco de dados.
  2. Armazenamento das credencias no Secrets Manager.
  3. A aplicação, ao acessar o banco de dados, consulta o Secrets Manager para obter as credenciais.
  4. O Secrets Manager recupera o segredo, descriptografa e retorna o segredo à aplicação cliente por meio de um canal seguro (HTTPS com TLS).
  5. O aplicativo cliente analisa as credenciais e, em seguida, usa as informações para acessar o servidor de banco de dados.

Recursos do Secrets Manager

Rotação de segredos já configurados para Banco de Dados

O Secrets Manager oferece suporte aos bancos de dados do Amazon Relational Database Service (Amazon RDS) com modelos de função de alternância do Lambda escritos e testados pela AWS e a configuração completa do processo de alternância dos segredos.

Os Bancos de dados suportados são:

  • Amazon Aurora no Amazon RDS
  • MySQL no Amazon RDS
  • PostgreSQL no Amazon RDS
  • Oracle no Amazon RDS
  • MariaDB no Amazon RDS
  • Microsoft SQL Server no Amazon RDS

Rotação configurada para outros tipos de serviços

Também é possível configurar de forma nativa o rotacionamento de segredo para os serviços:

  • Amazon DocumentDB
  • Amazon Redshift

Aceita diferentes tipos de segredos

O Secrets Manager permite armazenar texto na parte de dados criptografados de um segredo, podendo ser string de conexão de um banco de dados ou de um serviço, endereço IP, porta, hostnames e outros.

Réplica de segredos entre regiões da AWS

O Secrets Manager permite replicar os segredos entre várias regiões da AWS. Uma réplica é criada em sincronia com o segredo principal na região desejada. Recurso bastante interessante para quem utiliza aplicações multirregionais.

Os dados são criptografados

O Secrets Manager utiliza o AWS Key Management Service (AWS KMS) para criptografar o texto protegido de um segredo.

Controle de acesso aos segredos

É possível anexar políticas de permissão do AWS Identity and Access Management (IAM) aos usuários, grupos e funções que concedem ou negam acesso a segredos específicos, e restringir o gerenciamento destes segredos. Também é possível anexar política baseada em recursos.

Ao falar sobre o AWS Secrets Manager, não tem como deixar de citar um serviço que oferece funcionalidade semelhante, o AWS Systems Manager Parameter Store, também conhecido com Parameter Store.

O Parameter Store, um recurso do AWS Systems Manager, oferece armazenamento hierárquico seguro para gerenciamento de dados de configuração e gerenciamento de segredos. Podemos armazenar senhas, strings de banco de dados, códigos de licença, textos ou dados criptografados.

O Parameter Store também está integrado ao Secrets Manager. Podemos recuperar segredos do Secrets Manager quando estiver usando outros serviços da AWS que já oferecem suporte às referências dos parâmetros do Parameter Store.

Secrets Manager vs SSM Parameter Store

Secrets Manager:

  • É mais caro
  • A criptografia é habilitada por padrão e não é possível desabilitar
  • Rotação automática de segredos
  • Integração nativa com bancos RDS
  • É possível compartilhar segredos entre diferentes contas da AWS

Parameter Store:

  • É mais barato e no modelo standard não tem custo de armazenamento
  • A criptografia não é habilitada por padrão
  • Não tem rotação automática
  • Não é possível compartilhar segredos entre diferentes contas da AWS

Alguns casos de uso do Parameter Store:

  • Variáveis de ambiente
  • Senhas
  • Licenças
  • String de Banco de Dados
  • ID de AMI

    Dados não sensíveis podem ser armazenados em texto simples e, para dados sensíveis, utilizar a criptografia com o KMS.