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

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.