ENES

AWS Secrets Manager

Una caja fuerte para contraseñas y claves de API, para que nunca vivan en tu código.

Un archivo de configuración tachado a la izquierda, una caja fuerte con secretos con nombre en el medio, y una app pidiendo uno por nombre a la derecha

AWS Secrets Manager guarda los valores sensibles que necesita una aplicación: contraseñas de bases de datos, claves de API de servicios externos, claves privadas, tokens. Guardás un secreto bajo un nombre como prod/payments/stripe-key, y tu código lo pide por nombre en tiempo de ejecución a través de la API de AWS, con IAM decidiendo quién tiene permiso para leerlo. El valor está cifrado en reposo y nunca aparece en los logs.

El problema que ataca son los secretos en el lugar equivocado: adentro del código fuente, en un archivo de configuración subido a Git, en una variable de entorno que ve cualquiera que entre al servidor. Una vez que una contraseña llega a un repositorio es prácticamente pública, aunque después la borres. Secrets Manager además rota los secretos: para una base Amazon RDS puede cambiar la contraseña cada 30 días solo y actualizar el valor guardado, así una credencial filtrada dura poco.

Ejemplo: una función AWS Lambda necesita conectarse a una base de datos. Su rol de IAM permite secretsmanager:GetSecretValue sobre un secreto específico. Al arrancar, la función pide el secreto, se conecta, y lo cachea unos minutos. Cuando la contraseña rota, el próximo pedido trae la nueva. Ningún desarrollador ve jamás la contraseña de producción.

AWS también tiene Systems Manager Parameter Store, un lugar más simple y barato para valores de configuración (y para secretos que no necesitan rotación). Secrets Manager es la opción cuando importan la rotación y la auditoría.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de AWS