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.
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.
- 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.
- 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.
- 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.
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.
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.
- 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.
- 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.
- 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.
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.
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
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
AI Security Maturity Model