AI Security Maturity Model·AWS v1.0.0

Arrastra para explorar · pellizca para ampliar

Mejorada Protección de datosCapa de defensa en profundidad: Identidad y datos Capacidad 6 · Aplicaciones de IACaso de uso: IA que responde 👤 ClienteModelo de Responsabilidad Compartida de AWS: quién implementa y opera este control. Cliente = es tuyo; AWS = lo opera AWS y tú lo heredas; Compartida = ambos tienen obligaciones.

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.

Fundacional
Mejorada
Avanzada
Esfuerzo: Bajo Impacto: Medio Scopes de IA generativaDe la AWS Generative AI Security Scoping Matrix.: 3 · Modelos preentrenados

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.

  1. Guarda las credenciales y API keys de la aplicación en AWS Secrets Manager cifradas con una clave KMS gestionada por el cliente.
    Cuenta de aplicación Secrets Manager AWS KMS
  2. Habilita la rotación automática donde se soporte.
    Cuenta de aplicación Secrets Manager
  3. Usa políticas de IAM granulares para controlar qué usuarios y aplicaciones pueden recuperar secretos específicos.
    Cuenta de aplicación IAM

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.

OU de IA generativa (multi-cuenta) →

Secrets Manager (cifrado con CMK, rotado) guarda las credenciales de la app en la cuenta, con IAM granular controlando la recuperación.

  1. Guarda las credenciales y API keys en Secrets Manager cifradas con la clave gestionada por el cliente.
    Capa de aplicación (rol IAM) Secrets Manager AWS KMS
  2. Habilita la rotación automática donde se soporte.
    Capa de aplicación (rol IAM) Secrets Manager
  3. Restringe la recuperación con políticas de IAM granulares.
    Capa de aplicación (rol IAM) IAM

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.

Cuenta única (punto de entrada) →

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

AWS Secrets Manager AWS KMS

Precios

Prueba gratuita · 30 días

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