AWS Secrets Manager: credenciales y rotación segura
Secrets Manager guarda contraseñas, tokens y otros secretos que una aplicación necesita utilizar sin incluirlos en el código o en plantillas públicas.
Por qué importa en una infraestructura moderna
Una Lambda que llama a un servicio externo puede consultar un secreto concreto con su rol IAM. Si la función solo necesita permisos AWS y no hay credenciales externas, añadir Secrets Manager no es obligatorio.
Cómo utilizarlo correctamente
Restringe secretsmanager:GetSecretValue al secreto preciso, no imprimas valores en logs y revisa su cifrado KMS. La rotación automática depende del tipo de credencial y su integración: no todos los proveedores externos permiten una rotación directa. Guarda solo referencias seguras en CloudFormation.
¿Cuándo conviene utilizar AWS Secrets Manager?
Es útil cuando resuelve una necesidad real de arquitectura; incluir todos los servicios en una plantilla solo porque existen añade complejidad, permisos y costes. Empieza con el flujo más pequeño posible, documenta las responsabilidades, trabaja primero en pruebas y crea alarmas de coste y operación.
Infraestructura como código con CloudFormation
Cuando haya que repetir el despliegue, usa una plantilla versionada que describa los recursos pertinentes y sus relaciones. Revisa los permisos antes de ejecutar cambios. Para aprender se puede empezar desde la consola de AWS y pasar a AWS CLI después.
Artículos de esta serie
- AWS CloudFormation: plantillas YAML, pilas y despliegues
- Amazon SNS: qué es un tema y para qué sirve
- Amazon SQS: colas, reintentos y mensajes fallidos
- AWS Lambda: cómo procesar eventos sin servidor propio
- AWS IAM: permisos, roles y mínimo privilegio
- AWS KMS: cuándo necesitas claves de cifrado
- AWS Secrets Manager: credenciales y rotación segura
Referencia oficial
Documentación de AWS sobre AWS Secrets Manager.
¿Qué es un secreto y por qué no va en el YAML?
Un secreto puede ser la contraseña de una base de datos, un token de servicio o una clave para integrar una API externa. Incrustarlo en una plantilla CloudFormation, un repositorio o una imagen de contenedor puede difundirlo entre personas y sistemas no autorizados. Secrets Manager permite guardar esos valores con controles de acceso y recuperarlos desde aplicaciones autorizadas.
Ejemplo: Lambda necesita un token externo
Una Lambda procesa un evento de una cola SQS y debe llamar a una API externa con un token. Su rol IAM recibe permiso secretsmanager:GetSecretValue únicamente para el secreto pertinente. El código obtiene el valor en tiempo de ejecución y lo usa sin registrarlo en logs ni devolverlo al cliente.
import boto3
client = boto3.client("secretsmanager")
def load_token(secret_id):
data = client.get_secret_value(SecretId=secret_id)
return data["SecretString"]Este ejemplo muestra solo la lectura: no incluye gestión de errores, parseo de JSON, cacheo seguro ni lógica de negocio. El entorno real requiere permisos IAM, región y gestión adecuada del formato del secreto. No publiques el ARN ni los valores si revelan datos privados.
Rotación: no todos los secretos se pueden cambiar igual
Secrets Manager facilita la rotación y admite automatización en distintos escenarios, pero una API externa puede exigir un procedimiento propio. Si el token nuevo invalida el anterior, diseña una transición sin interrumpir el servicio; comprueba errores, registra el resultado y contempla recuperación. La rotación mal diseñada puede causar una caída aunque el almacenamiento sea seguro.
Secrets Manager frente a KMS e IAM
IAM define quién puede leer el secreto. KMS participa en su protección criptográfica. Secrets Manager almacena el dato secreto y administra aspectos de su ciclo de vida. No hay que añadir los tres manualmente a todas las aplicaciones: los roles IAM son habituales; Secrets Manager solo cuando existen credenciales que guardar, y una clave KMS propia solo cuando hay motivos para asumir su complejidad.
Costes y eliminación de una pila
Secrets Manager puede generar cargos por secreto y llamadas API. Define el tratamiento al borrar una pila: eliminar accidentalmente un secreto utilizado por otros entornos puede cortar integraciones. Configura retención o separación entre ciclos de vida cuando corresponda. Monitorea accesos y evita permisos amplios.
Guías relacionadas de Laraflex
CloudFormation · Amazon SNS · Amazon SQS · AWS Lambda · AWS IAM · AWS KMS
Consulta la documentación oficial de AWS para ampliar y contrastar los detalles técnicos.
Comments (0)
No comments yet.
Leave a Comment