Características do AWS Secrets Manager e AWS Systems Manager Parameter Store

Gerenciar a segurança de seus aplicativos é parte integrante de qualquer organização, especialmente para infraestruturas implantadas na nuvem. Um aspecto da segurança do aplicativo é como os parâmetros, como variáveis de ambiente, senhas de banco de dados, chaves de API, chaves de produto, etc., são armazenados e recuperados. Como prática recomendada, as informações secretas não devem ser armazenadas em texto simples e nem incorporadas ao seu código-fonte. Também é recomendável configurar um sistema automatizado para alternar senhas ou chaves regularmente (o que é fácil de esquecer quando você gerencia chaves manualmente).
Gerenciar e proteger esses tipos de dados pode ser problemático, por isso a Amazon fornece os serviços AWS Systems Manager Parameter Store e AWS Secrets Manager para essa finalidade. Parameter Store e Secrets Manager são dois serviços distintos, mas oferecem funcionalidades semelhantes que permitem gerenciar e proteger centralmente suas informações secretas.
AWS Secrets Manager
O AWS Secrets Manager permite alternar, gerenciar e recuperar credenciais de banco de dados, chaves de API e outros segredos durante todo o ciclo de vida. Também torna muito fácil seguir as práticas recomendadas de segurança, como criptografar segredos e alterná-los regularmente.
Se você for um administrador de segurança responsável por armazenar e gerenciar segredos e garantir que sua organização siga os requisitos regulatórios e de conformidade, poderá usar o Secrets Manager para executar essas tarefas em um local central. O Secrets Manager pode descarregar o gerenciamento de segredos dos desenvolvedores, como senhas de banco de dados ou chaves de API, para que eles não precisem se preocupar com onde armazenar essas credenciais.
O AWS Secret Manager também segue o mesmo fluxo de processo do Parameter Store que mostraremos abaixo.
AWS Systems Manager Parameter Store
O Parameter Store faz parte das ferramentas de gerenciamento de aplicativos oferecidas pelo serviço AWS Systems Manager (SSM). O Parameter Store permite criar parâmetros de valor-chave para salvar configurações de aplicativos, variáveis de ambiente personalizadas, chaves de produto e credenciais em uma única interface.
O Parameter Store permite proteger seus dados por meio de criptografia integrada ao AWS KMS.
Depois de criar seus parâmetros no Parameter Store, você poderá recuperá-los pelo SSM Run Command, SSM State Manager ou referenciá-los em seu aplicativo em execução no EC2, ECS e Lambda ou até mesmo em aplicativos que executam seu data center local . Isso elimina a necessidade de codificar variáveis ou incorporar credenciais de texto simples em seu código. O Parameter Store facilita a atualização dessas variáveis sem modificar seu código-fonte, além de eliminar a necessidade de incorporar informações confidenciais, como senhas de banco de dados, em seu código.
Esta é uma visão geral de como os aplicativos podem recuperar informações no Parameter Store.
Seu aplicativo (servidores locais, EC2, ECS, Lambda etc.) envia uma solicitação de parâmetro ao SSM Parameter Store.
Se esta for uma solicitação de parâmetro de texto simples, o Parameter Store verificará com o IAM se o usuário/função tem permissão para recuperar o parâmetro.
Se esta for uma solicitação de parâmetro criptografado, o Parameter Store verificará com o IAM se o usuário/função tem permissão para recuperar e descriptografar o parâmetro com o AWS KMS. A descriptografia requer que o IAM tenha permissão de descriptografia KMS.
Se a verificação do IAM for bem-sucedida, o Parameter Store enviará de volta o valor do parâmetro ao aplicativo.
Semelhanças
Criptografia
Tanto o Secrets Manager quanto o Parameter Store podem aproveitar o AWS KMS para criptografar valores. Ao usar o KMS, as políticas do IAM podem ser configuradas para controlar as permissões nas quais os usuários e funções do IAM têm permissão para descriptografar o valor. Embora o acesso aos valores possa ser restringido através do IAM, a criptografia fornece uma camada adicional de segurança e às vezes é necessária para conformidade.
Armazenamento de chave/valor
Ambos os serviços permitem armazenar valores sob um nome ou chave.
Ambos permitem que as chaves tenham prefixos. Por exemplo, parâmetros ou segredos podem ser colocados no seguinte esquema de prefixo application/environment/parametername ou qualquer outra combinação de prefixos que atenda à necessidade do aplicativo. Isso é útil porque a implantação do aplicativo pode fazer referência a diferentes parâmetros/segredos com base no ambiente de implantação.
Integração
CloudFormation
CloudFormation é usado como um modelo de infraestrutura como código (IaC), e armazenar segredos no CloudFormation é uma prática de segurança ruim. Você pode armazenar os segredos (por exemplo, nome de usuário e senha do banco de dados) no Parameter Store ou no Secrets Manager, que podem ser referenciados no modelo CloudFormation para que você tenha apenas um ponteiro para o valor em seu modelo, em vez de conter os segredos em texto simples.
Versionamento
Ambos os serviços suportam versionamento de valores secretos. Isso permite que você visualize versões anteriores de seus parâmetros secretos caso precise deles. Você pode optar por restaurar a versão mais antiga dos parâmetros.
O Parameter Store permite que apenas uma versão do parâmetro esteja ativa a qualquer momento.
O Secrets Manager permite que várias versões existam ao mesmo tempo quando você executa uma rotação secreta usando os rótulos de preparação.
Principais diferenças
Custo
Secrets Manager: É pago. O custo de armazenamento é de US$ 0,40 por segredo por mês e o custo de interações de API é de US$ 0,05 por 10.000 chamadas de API.
Parameter Store: Para parâmetros padrão, sem custo adicional para armazenamento e taxa de transferência padrão. Para maior rendimento, o custo das interações de API é de US$ 0,05 por 10.000 chamadas de API.
Para parâmetros avançados, o custo de armazenamento é de US$ 0,05 por parâmetro avançado por mês e o custo de interações de API é de US$ 0,05 por 10.000 chamadas de API.
Rotação de segredos
Secrets Manager: Oferece a capacidade de trocar segredos a qualquer momento e pode ser configurado para alternar regularmente dependendo de seus requisitos. Ele fornece integração completa de rotação de chaves com alguns serviços AWS, como RDS, Redshift, DocumentDB. Para outros serviços, a AWS permite escrever uma lógica de rotação de chave personalizada usando uma função AWS Lambda.
Parameter Store: Você pode escrever sua própria função que atualiza credenciais gerenciadas pelo Parameter Store e invocá-las por meio de um evento agendado do CloudWatch ou Eventbridge.
Acesso entre contas
Secrets Manager: Os segredos podem ser acessados de outra conta da AWS. É mais fácil compartilhar os segredos entre contas. Isso é útil se os segredos forem gerenciados centralmente a partir de outra conta da AWS ou benéfico para casos de uso em que um cliente precisa compartilhar um segredo específico com um parceiro.
Parameter Store: Não suportado.
Tamanho secreto
Secrets Manager: Pode armazenar até 10 KB de tamanho secreto.
Parameter Store: Os parâmetros padrão podem armazenar até 4.096 caracteres (tamanho de 4 KB) para cada entrada, e os parâmetros avançados podem armazenar até 8 KB de entradas.
Limites
Secrets Manager: Possui limitação de armazenamento de 500.000 segredos por região por conta.
Parameter Store: Possui limitação de armazenamento de 10.000 parâmetros padrão por região por conta.
Replicação de múltiplas regiões
Secrets Manager: Permite replicar facilmente seus segredos em várias regiões da AWS para oferecer suporte a aplicativos espalhados por essas regiões, bem como a cenários de recuperação de desastres.
Parameter Store: Não oferece suporte à replicação entre regiões pronta para uso.
Casos de uso
Escolha Secrets Manager se:
Você deseja armazenar apenas valores criptografados e uma maneira super fácil de gerenciar a rotação dos segredos. Por exemplo, para organizações que precisam ser compatíveis com PCI, onde a obrigação é alternar suas senhas a cada 90 dias, o AWS Secrets Manager torna esse processo muito fácil e contínuo.
Escolha Parameter Store se:
Você deseja uma opção mais barata para armazenar segredos criptografados ou não criptografados.