Secrets Manager vs Parameter Store: escolha
- ⬜🔭 X-Ray: tracing distribuído na AWS(AWS Developer Associate (DVA-C02))
Recomendamos completar os pré-requisitos antes de seguir, mas nada te impede de continuar.
Comparação
| Feature | Parameter Store (std) | Parameter Store (adv) | Secrets Manager |
|---|---|---|---|
| Preço | Grátis | $0.05/param/mês | $0.40/secret/mês |
| Tamanho | 4KB | 8KB | 64KB |
| Rotation nativa | Não | Não | Sim (RDS/etc) |
| Cross-account | Limitado | Limitado | Sim (resource policy) |
| Replication | Não | Não | Sim (cross-region) |
| TTL | Não | Não | N/A |
| CloudFormation/CDK | Sim | Sim | Sim |
- → GetParameter
- → com decrypt
- → GetSecretValue
- → cifra
- → cifra
- → registra acesso
- → antipadrão
- Compute
- Gestão e governança
- Segurança e identidade
- Fora da AWS
Três perguntas: é secreto? precisa rotacionar? quanto custa manter? Configuração comum vai para Parameter Store Standard, segredo estático para SecureString, e só o que exige rotação automática justifica Secrets Manager.
- Configuração comum é grátis. Parameter Store Standard guarda URL, feature flag e nome de recurso sem custo, com hierarquia por caminho (/app/prod/db-host). Usar Secrets Manager para isso é pagar por segredo o que não é segredo.
- Segredo sem rotação cabe no SecureString. SecureString cifra com KMS e custa uma fração do Secrets Manager. Serve para credencial de terceiro que não tem API de rotação — a maioria dos casos reais.
- Rotação automática é o divisor. Secrets Manager rotaciona sozinho e integra nativamente com RDS, Redshift e DocumentDB: ele troca a senha no banco E atualiza o segredo. Se o enunciado disser "rotação automática", é ele e mais nada.
- Busque em runtime, cacheie na memória. A função lê o segredo na inicialização (fora do handler) e reaproveita entre invocações. Ler a cada invocação multiplica chamada de API e latência sem ganho.
- Variável de ambiente não é cofre. Ela aparece no console, no template de deploy e em qualquer log de configuração. É o antipadrão que a questão oferece como alternativa tentadora porque é a mais simples de implementar.
import boto3, json
# Parameter Store — configuração. SecureString é grátis no nível padrão e cifra
# com o KMS. Não rotaciona sozinho: é o certo para o que muda por deploy.
ssm = boto3.client("ssm")
ssm.put_parameter(Name="/app/prod/url-api", Value="https://api.interna",
Type="String", Overwrite=True)
# Hierarquia é o que torna o Parameter Store operável: busque o ramo inteiro
# numa chamada, em vez de uma chamada por chave.
cfg = {p["Name"].split("/")[-1]: p["Value"] for p in
ssm.get_parameters_by_path(Path="/app/prod/", Recursive=True,
WithDecryption=True)["Parameters"]}
# Secrets Manager — credencial. Custa por segredo e por chamada, e entrega o que
# o Parameter Store não tem: ROTAÇÃO gerenciada, com Lambda trocando a senha no
# banco e no segredo na mesma transação. Se o requisito cita rotação, é este.
sm = boto3.client("secretsmanager")
sm.rotate_secret(SecretId="prod/rds/credencial",
RotationLambdaARN=LAMBDA_ROTACAO,
RotationRules={"AutomaticallyAfterDays": 30})
senha = json.loads(sm.get_secret_value(SecretId="prod/rds/credencial")["SecretString"])Onde isso entra no exame
A pergunta é quase sempre "qual dos dois": Secrets Manager quando há rotação automática ou credencial de banco; Parameter Store quando é configuração e o custo importa. Saiba que SecureString do Parameter Store também usa KMS — "só o Secrets Manager criptografa" é distrator.
Uma credencial de banco precisa ser rotacionada automaticamente a cada 30 dias, com a senha trocada no RDS e no armazenamento. Qual serviço?
Hierarchy organizada
Parameter Store suporta hierarchy: /app/prod/db/host. Get-parameters-by-path puxa tudo de um prefix. Padrão pra config env-aware. Combine com IAM resource-level permissions.
Perguntas frequentes
❓ Cofre de segredos ou armazenamento de parâmetros: como decidir?
❓ Como o código deve buscar o segredo?
❓ Como rotação automática não quebra a aplicação?
Fixando
Uma aplicação lê 40 parâmetros de configuração não-secretos. Qual opção é mais econômica?
Onde a leitura do segredo deve acontecer numa Lambda?
Terminou de ler?
Marcar como concluído registra o XP, mantém sua sequência e coloca 3 cartas deste módulo na fila de revisão espaçada.
Próximos passos sugeridos
Temas deste módulo
Discussão
Carregando comentários…