c6.6 Guarda las credenciales de la aplicación en Secrets Manager
Mantén las credenciales y las API keys de la aplicación en un almacén de secretos gestionado con cifrado y rotación, para que nunca se incrusten en el código o la configuración.
Guía de implementación
Cómo implementarlo en AWS
Guarda las credenciales y API keys de la aplicación en AWS Secrets Manager cifradas con una clave KMS gestionada por el cliente, habilita la rotación automática donde se soporte y usa políticas de IAM granulares para controlar qué usuarios y aplicaciones pueden recuperar secretos específicos.
Nunca incrustes los secretos de la app
Las aplicaciones de IA acumulan credenciales: claves de API de modelos de terceros, contraseñas de bases de datos, secretos de cliente OAuth, claves de firma de webhooks. En el momento en que cualquiera de estas se pega en el código, en una variable de entorno de un script de build o en una capa de imagen de contenedor, se convierte en algo que no puedes rotar de forma limpia, auditar con precisión ni revocar sin un redespliegue, y puede filtrarse por la salida de tu propio modelo o por los logs. AWS Secrets Manager las almacena cifradas con KMS, las rota según un calendario, audita cada lectura en CloudTrail y entrega el valor a tu carga de trabajo en runtime mediante una llamada de API autenticada por IAM.
Almacena el secreto, cifrado con tu clave
Crea el secreto cifrado con una clave administrada por el cliente para controlar tanto el acceso a la clave como al secreto:
aws secretsmanager create-secret \
--name "prod/ai-app/model-provider-api-key" \
--description "Third-party model API key for the AI app" \
--secret-string '{"apiKey":"REPLACE_ME"}' \
--kms-key-id "arn:aws:kms:us-east-1:111122223333:key/<key-id>"
Recupéralo en runtime, nunca en tiempo de build
La aplicación obtiene el secreto cuando se ejecuta, usando su rol de IAM: el valor nunca queda incrustado en la imagen ni en la configuración:
aws secretsmanager get-secret-value \
--secret-id "prod/ai-app/model-provider-api-key" \
--query SecretString --output text
Acota el permiso secretsmanager:GetSecretValue del rol de la app a este ARN de secreto específico, y añade una política de recurso en el secreto para que solo ese rol pueda leerlo.
Activa la rotación
Un secreto que nunca cambia es un riesgo permanente. Habilita la rotación automática para que un valor filtrado tenga una vida limitada:
aws secretsmanager rotate-secret \
--secret-id "prod/ai-app/model-provider-api-key" \
--rotation-rules '{"AutomaticallyAfterDays": 30}' \
--rotation-lambda-arn "arn:aws:lambda:us-east-1:111122223333:function:RotateModelApiKey"
Para credenciales nativas de AWS (como RDS), Secrets Manager ofrece rotación administrada; para claves de API de terceros, tú aportas una pequeña Lambda de rotación que llama a la API de rotación de claves del proveedor.
Nota de nomenclatura: usa un nombre de secreto claro tipo ruta (env/app/proposito), una clave de KMS administrada por el cliente, y acota tanto la política de IAM como la política de recurso del secreto al único rol de la app. Reemplaza los ARN de la clave y de la Lambda.Criterios de aceptación
Las credenciales de la app viven en Secrets Manager (cifradas con CMK) con rotación; la recuperación está restringida por IAM granular; no hay secretos en código/configuración.
Implementación práctica
Cómo se implementa este control en cada arquitectura de referencia:
Las credenciales y API keys de la aplicación viven en Secrets Manager (cifradas con CMK, rotadas) en la cuenta de aplicación, recuperables solo por los roles que las necesitan — nunca en código ni configuración.
- Guarda las credenciales y API keys de la aplicación en AWS Secrets Manager cifradas con una clave KMS gestionada por el cliente.
- Habilita la rotación automática donde se soporte.
- Usa políticas de IAM granulares para controlar qué usuarios y aplicaciones pueden recuperar secretos específicos.
Cómo validar: Las credenciales de la app viven en Secrets Manager (cifradas con CMK) con rotación; la recuperación está restringida por IAM granular; no aparecen secretos en código/configuración.
Evita: API keys en variables de entorno o en un archivo de configuración en el repo. Guárdalas en Secrets Manager y recupéralas en tiempo de ejecución.
Secrets Manager (cifrado con CMK, rotado) guarda las credenciales de la app en la cuenta, con IAM granular controlando la recuperación.
- Guarda las credenciales y API keys en Secrets Manager cifradas con la clave gestionada por el cliente.
- Habilita la rotación automática donde se soporte.
- Restringe la recuperación con políticas de IAM granulares.
Cómo validar: Las credenciales viven en Secrets Manager (cifradas con CMK) con rotación; la recuperación está restringida por IAM; no hay secretos en código/configuración.
Evita: Hardcodear secretos 'solo por ahora'. Ponlos en Secrets Manager desde el inicio y rótalos.
Amenazas que atiende
- Credenciales o API keys expuestas en el código o en variables de entorno.
- Credenciales obsoletas de larga vida que no se pueden rotar.
Servicios AWS
Precios
AWS Secrets Manager factura por secreto al mes más por cada 10 000 llamadas a la API, con una prueba gratuita de 30 días. Almacena el secreto en caché en la aplicación (con un TTL corto) en lugar de llamar a GetSecretValue en cada solicitud para mantener bajos el costo y la latencia. Consulta Manage API keys for security-sensitive workloads.
Mapeos de frameworks
OWASP GenAI/LLM Top 10 (2026)
- LLM02 Sensitive Information Disclosure
NIST AI Risk Management Framework (AI 100-1)
- MANAGE.1 AI risks are prioritized, responded to and managed
AWS Well-Architected Generative AI Lens (Security)
- GENSEC01-BP03 Implement least privilege access to data stores
Recursos de aprendizaje
Referencias
- AWS SRA para IA — Capacidad 6, Protección de datos
AI Security Maturity Model