AWS Secrets Manager - Rotación automática e integración con aplicaciones

Rote automáticamente contraseñas de RDS y Aurora con funciones Lambda y recupere secretos de forma transparente desde aplicaciones usando la biblioteca de caché del SDK. También cubre cuándo usar Parameter Store en su lugar.

Secrets Manager vs Systems Manager Parameter Store

Secrets Manager es un servicio para almacenar y gestionar con seguridad información sensible como contraseñas de bases de datos, claves de API y tokens OAuth. La mayor diferencia con el servicio similar Systems Manager Parameter Store (SecureString) es si cuenta o no con la función de rotación automática. Secrets Manager ofrece de forma estándar un mecanismo que rota automáticamente, mediante funciones de Lambda, las contraseñas de RDS, Aurora, Redshift y DocumentDB. Parameter Store es adecuado para gestionar valores de configuración y flags, y tiene la ventaja de una capa gratuita amplia frente a Secrets Manager, que cuesta 0.40 USD al mes por secreto (a fecha de agosto de 2026). Lo habitual es usar Secrets Manager para las credenciales que requieren rotación automática y Parameter Store para los demás valores de configuración.

Cómo funciona la rotación automática

La rotación automática es un mecanismo en el que una función de Lambda actualiza periódicamente el valor del secreto. En el caso de RDS y Aurora, puede utilizar las plantillas de Lambda para la rotación que proporciona AWS. La rotación se ejecuta en 4 pasos. createSecret genera una nueva contraseña, setSecret actualiza la contraseña de la base de datos, testSecret verifica la conexión con la nueva contraseña y finishSecret cambia la etiqueta de versión del secreto. El intervalo de rotación puede configurarse entre 1 y 365 días, y lo habitual es 30 o 90 días según la política de seguridad. Para evitar el tiempo de inactividad durante la rotación, se recomienda adoptar la estrategia de usuarios alternos (usar alternativamente 2 usuarios de base de datos).

Patrones de recuperación desde aplicaciones

El patrón básico para obtener secretos desde las aplicaciones es el método que usa la API GetSecretValue del SDK de AWS. En las funciones de Lambda, obtenga el secreto en la fase de inicialización de la función y almacénelo en caché en una variable global para evitar llamadas a la API en cada solicitud. Si utiliza las bibliotecas de caché que proporciona AWS (aws-secretsmanager-caching para Python, aws-secretsmanager-jdbc para Java), estas incorporan la caché basada en TTL y la actualización automática durante la rotación. En las tareas de ECS, si especifica el ARN de Secrets Manager en el campo secrets de la definición de tarea, se inyecta automáticamente como variable de entorno al iniciar el contenedor. En las plantillas de CloudFormation, con referencias dinámicas ({{resolve:secretsmanager:MySecret}}) puede referenciar el valor del secreto sin escribirlo directamente en la plantilla.

Precios de Secrets Manager

Los precios de Secrets Manager son de aproximadamente 0.40 USD al mes por secreto y de aproximadamente 0.05 USD por cada 10,000 llamadas a la API. También se generan cargos por la ejecución de la función de Lambda para la rotación automática, pero son pequeños si se considera la frecuencia de rotación (cada 30 a 90 días). Comparado con el SecureString de Parameter Store (los parámetros estándar son gratuitos), el costo es mayor, pero elija teniendo en cuenta el valor de la función de rotación automática. Reduzca el número de llamadas a la API con la biblioteca de caché de Lambda y optimice los costos.

Diseño de la rotación en la práctica

La rotación automática de secretos es un mecanismo que actualiza periódicamente las credenciales y contiene el riesgo en caso de filtración. Se usa con frecuencia para contraseñas de bases de datos y similares, y una función de Lambda se encarga del procesamiento de la rotación. En las configuraciones habituales que se integran con bases de datos puede utilizar funciones de rotación predefinidas, pero para sistemas propios implemente su propio procesamiento de rotación. En ocasiones también se adopta una estrategia que hace coexistir temporalmente las credenciales nuevas y las antiguas, para que la aplicación no falle en la autenticación ni siquiera durante la actualización. Es importante diseñar la frecuencia y el método de rotación de modo que puedan conciliarse los requisitos del sistema y la actualización sin interrupciones.

Uso compartido entre cuentas

En los sistemas que abarcan varias cuentas, hay situaciones en las que se desea compartir el mismo secreto. Secrets Manager puede permitir el acceso desde otras cuentas específicas mediante políticas basadas en recursos. Así, ya no es necesario gestionar por duplicado las mismas credenciales en cada cuenta, y también puede centralizar las actualizaciones. Al compartir, diseñe también los permisos de la clave de cifrado y haga que solo las cuentas autorizadas puedan descifrar. Restrinja al mínimo el alcance del acceso permitido y evite los usos compartidos innecesarios. Al combinar la gestión centralizada con un uso compartido adecuado, puede operar con seguridad las credenciales en todo el sistema distribuido.

Mejores prácticas de seguridad

Para manejar los secretos con seguridad, aplique a fondo algunos principios. Conceda los permisos de acceso a los secretos con el mínimo privilegio y solo a los roles que realmente los necesitan. Gestione adecuadamente la clave de cifrado usada para el cifrado en reposo y controle quién puede descifrar. Si registra quién obtuvo qué secreto y cuándo, y permite auditarlo, podrá detectar accesos sospechosos. No escriba las credenciales directamente en el código ni en los archivos de configuración; diseñe siempre la aplicación para obtenerlas en tiempo de ejecución. Al combinarlos, cierra las vías por las que pueden filtrarse las credenciales y logra una gestión robusta que limita el alcance del impacto incluso en caso de incidente.

Optimización de la obtención y supervisión de la operación

Si la aplicación obtiene los secretos con frecuencia, aumentan las llamadas a la API, lo que afecta a la latencia y a los costos. Si almacena en caché durante un tiempo determinado los valores obtenidos y los reutiliza, podrá reducir el número de llamadas. Diseñe la caché para que también se actualice correctamente cuando la rotación actualice el valor. En la operación, es importante supervisar que el procesamiento de la rotación no falle. Si no se da cuenta del fallo y sigue operando con las credenciales antiguas, existe el riesgo de que se produzca un error de autenticación en algún momento. Contar con un sistema que permita conocer mediante notificaciones el éxito o el fallo de la rotación y responder de inmediato ante un fallo conduce a una operación estable.

Resumen

Secrets Manager es un servicio que automatiza la gestión del ciclo de vida de las credenciales. Reduce en varias capas el riesgo de filtración de credenciales al imponer la actualización periódica de contraseñas con la rotación automática, controlar el acceso con políticas de IAM y cifrar con KMS. Elimina la costumbre de incrustar contraseñas en el código o en los repositorios y permite aplicar las mejores prácticas de seguridad en toda la organización.

Referencias (recursos oficiales de AWS)

Las fuentes primarias de esta página son el sitio web y la documentación oficiales de AWS. Consulta las páginas oficiales siguientes para conocer las especificaciones y los precios más recientes.

Si esta página y la documentación oficial difieren, prevalece la documentación oficial.

Compartir