AI Security Maturity Model·AWS v1.0.0

Arrastra para explorar · pellizca para ampliar

Fundacional Protección de datosCapa de defensa en profundidad: Identidad y datos Capacidad 2 · Personalización de modelosCaso de uso: IA que construyes 👤 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.

c2.1 Cifra el job de personalización, los datos y el modelo con una CMK

Cifra los datos de entrenamiento/validación, las métricas de salida y el modelo personalizado resultante con una clave KMS gestionada por el cliente que tú posees, para que los artefactos de personalización nunca sean legibles con una clave por defecto.

Fundacional
Mejorada
Avanzada
Esfuerzo: Bajo Impacto: Alto Scopes de IA generativaDe la AWS Generative AI Security Scoping Matrix.: 4 · Modelos ajustados (fine-tuned); 5 · Modelos entrenados por ti

Guía de implementación

Cómo implementarlo en AWS

Crea una clave KMS gestionada por el cliente y especifícala al lanzar el job de personalización de Bedrock (o SageMaker) para que los archivos de entrada, las métricas de salida y el modelo personalizado se cifren con ella. Usa la política de clave para otorgar su uso solo a los roles que ejecutan el job e invocan el modelo.

Qué cifrar en un trabajo de personalización

Un trabajo de personalización toca varios artefactos sensibles: los datos de entrenamiento y validación en S3, las métricas de salida y el modelo personalizado resultante. De forma predeterminada, el modelo personalizado se cifra con una clave propiedad de AWS que no puedes inspeccionar. Pasar tu propia clave administrada por el cliente (CMK) pone todo esto bajo una clave cuyo acceso controlas y auditas, algo importante porque un modelo afinado puede memorizar y luego revelar fragmentos de sus datos de entrenamiento.

Deja que Bedrock use tu clave para el trabajo

Bedrock crea un grant sobre tu CMK para que el trabajo asíncrono pueda cifrar/descifrar artefactos mientras se ejecuta. Tu política de clave debe permitir al principal de servicio de Bedrock las operaciones necesarias, acotadas a Bedrock con kms:ViaService:

{
  "Sid": "AllowBedrockCustomizationUseOfKey",
  "Effect": "Allow",
  "Principal": { "Service": "bedrock.amazonaws.com" },
  "Action": [
    "kms:Encrypt",
    "kms:Decrypt",
    "kms:GenerateDataKey",
    "kms:CreateGrant",
    "kms:DescribeKey"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": { "kms:ViaService": "bedrock.us-east-1.amazonaws.com" }
  }
}

Referencia la clave al crear el trabajo

Pasa la CMK como customModelKmsKeyId en el trabajo de personalización para que el modelo resultante se cifre con ella:

aws bedrock create-model-customization-job \
  --job-name "finetune-support-bot" \
  --custom-model-name "support-bot-v1" \
  --role-arn "arn:aws:iam::111122223333:role/BedrockCustomizationRole" \
  --base-model-identifier "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1" \
  --custom-model-kms-key-id "arn:aws:kms:us-east-1:111122223333:key/<key-id>" \
  --training-data-config '{"s3Uri":"s3://my-bedrock-training-data/train.jsonl"}' \
  --output-data-config '{"s3Uri":"s3://my-bedrock-custom-output/"}' \
  --hyper-parameters '{"epochCount":"2"}'

No olvides los buckets de datos

Cifrar el modelo es solo la mitad del trabajo: el bucket de datos de entrenamiento debe usar la misma CMK para el cifrado del lado del servidor, y el rol de servicio de personalización necesita kms:Decrypt sobre esa clave (una causa común de fallos de "acceso denegado" en el trabajo). Haz coincidir la clave en los datos, el trabajo y la salida para que nada recaiga en una clave predeterminada.

Nota de nomenclatura: reemplaza el ARN de la clave, el ARN del rol, el id de cuenta y la región. Usa una CMK local a la región que coincida con el valor de kms:ViaService.

Criterios de aceptación

El job de personalización, sus buckets S3 y el modelo personalizado se cifran con una clave gestionada por el cliente; la política de clave limita el descifrado/uso a roles aprobados.

Implementación práctica

Cómo se implementa este control en cada arquitectura de referencia:

Una clave gestionada por el cliente en la cuenta de IA generativa (o en una cuenta de entrenamiento dedicada de la OU) cifra las entradas, salidas y el modelo personalizado resultante del job.

  1. Crea una clave KMS gestionada por el cliente y pásala al job de personalización de Bedrock (o SageMaker) para que los archivos de entrada, las métricas de salida y el modelo personalizado se cifren con ella.
    Cuenta de IA generativa AWS KMS Amazon Bedrock Amazon SageMaker
  2. Acota la política de clave para que solo el rol de servicio de personalización y el rol de invocación puedan usar la clave, y habilita la rotación.
    Cuenta de IA generativa AWS KMS IAM
  3. Cifra los buckets S3 de entrenamiento/validación con la misma clave y mantén a los administradores de la clave en el equipo de plataforma, separados del rol del job.
    Cuenta de IA generativa AWS KMS Amazon S3

Cómo validar: El job, sus buckets S3 y el modelo personalizado muestran la clave gestionada por el cliente; la política de clave limita el uso a los roles de job e invocación; la rotación está habilitada.

Evita: Cifrar los buckets pero dejar que Bedrock use la clave por defecto para el artefacto del modelo. Cifra toda la cadena —entradas, métricas y el modelo— con tu propia clave.

OU de IA generativa (multi-cuenta) →

Una clave gestionada por el cliente en la cuenta cifra el job de personalización, sus datos y el modelo personalizado, con uso acotado solo al rol del job.

  1. Crea una clave KMS dedicada gestionada por el cliente y aplícala al job de personalización para que entradas, métricas de salida y el modelo personalizado se cifren con ella.
    Capa de IA generativa (rol IAM) AWS KMS Amazon Bedrock Amazon SageMaker
  2. Restringe el uso de la clave en la política de clave al rol de servicio de personalización y al rol de invocación; habilita la rotación.
    Capa de IA generativa (rol IAM) AWS KMS IAM
  3. Mantén la administración de la clave separada de los roles en ejecución y del job para que no puedan deshabilitarla ni cambiarla.
    Capa de aplicación (rol IAM) AWS KMS IAM

Cómo validar: El job de personalización, los buckets y el modelo personalizado usan la clave gestionada por el cliente; solo los roles de job/invocación pueden usarla; la rotación está habilitada.

Evita: Reutilizar una clave de propósito general con política amplia para los artefactos de entrenamiento. Usa una clave dedicada acotada a los roles de personalización e invocación.

Cuenta única (punto de entrada) →

Amenazas que atiende

  • Datos de entrenamiento sensibles o artefactos del modelo personalizado legibles si las claves por defecto o el almacenamiento se comprometen.
  • Uso no autorizado del modelo personalizado para inferencia.

Servicios AWS

AWS KMS Amazon S3 Amazon Bedrock

Precios

La CMK conlleva una pequeña tarifa mensual más cargos por solicitud de KMS durante el trabajo. Son menores frente al costo de cómputo de la personalización; el beneficio es que los datos de entrenamiento y el modelo afinado quedan bajo una clave que controlas y auditas. Consulta Encryption of model customization jobs and artifacts.

Mapeos de frameworks

OWASP GenAI/LLM Top 10 (2026)

  • LLM05 Data and Model Poisoning

NIST AI Risk Management Framework (AI 100-1)

  • MANAGE.1 AI risks are prioritized, responded to and managed

AWS Security Hub — AI Security Best Practices

  • SageMaker.17 SageMaker feature group offline stores should be encrypted with AWS KMS keys
  • SageMaker.18 SageMaker feature group online stores with standard storage should be encrypted with AWS KMS keys
  • SageMaker.21 SageMaker notebook instances should be encrypted with customer managed AWS KMS keys
  • SageMaker.23 SageMaker inference experiments should have instance storage volume encrypted with customer managed AWS KMS keys
  • SageMaker.24 SageMaker inference experiments should have data storage encrypted with customer managed AWS KMS keys

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 2, Protección de datos