View a markdown version of this page

Cifrado en reposo para un aprendizaje reforzado en varios turnos - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cifrado en reposo para un aprendizaje reforzado en varios turnos

Opciones de cifrado en reposo

Multi-turn Los trabajos de aprendizaje por refuerzo en Amazon SageMaker AI cifran todos los datos en reposo. Los datos de entrada de entrenamiento, los datos de salida (incluidos los puntos de control del modelo y los artefactos del modelo entrenado) y los datos intermedios almacenados en Amazon S3 se cifran mediante el cifrado del lado del servidor. No necesita realizar ninguna configuración adicional para garantizar que sus datos estén cifrados en reposo.

Amazon SageMaker AI admite las siguientes opciones de cifrado para los trabajos de RL de varios turnos:

  • Server-side cifrado con clave AWS de KMS propia: de forma predeterminada, Amazon SageMaker AI cifra todos los datos intermedios y de salida del entrenamiento mediante una clave de AWS KMS propia. No se necesita configuración adicional.

  • Server-side cifrado con AWS KMS claves (SSE-KMS): si lo desea, puede especificar una clave de KMS administrada por el cliente para cifrar los datos de los resultados del entrenamiento en Amazon S3. Si los datos de entrada en Amazon S3 ya están cifrados con una clave gestionada por el cliente, el rol de ejecución debe tener permiso para descifrar esos datos.

Cifrar los datos en reposo mediante un sistema gestionado por el cliente AWS KMS claves

Cómo utiliza RL multiturno una clave KMS gestionada por el cliente

Cuando especifica una clave de KMS gestionada por el cliente en la configuración de salida de su trabajo de RL de varios turnos, Amazon SageMaker AI utiliza esa clave para cifrar los siguientes recursos en Amazon S3:

  • Datos de salida del entrenamiento, incluidos los artefactos de los modelos entrenados (pesos de los adaptadores LoRa)

  • Modelo intermedio input/output (puntos de control del modelo reanudables y datos de trayectoria)

  • Datos y trazas del experimento MLflow

Al especificar una clave de KMS gestionada por el cliente, Amazon SageMaker AI utiliza dos mecanismos para cifrar los datos:

  • Subvenciones: en el momento de la creación de empleo, Amazon SageMaker AI utiliza las credenciales de la persona que llama para crear una o dos subvenciones en la clave de KMS:

    • Subvención de escritura: se crea para cada trabajo en el que se especifique una clave gestionada por el cliente. Permite al servicio cifrar y descifrar el punto de control del trabajo actual y los datos temporales almacenados en la plataforma durante la formación.

    • Subsidio de lectura: creado solo para trabajos iterativos que se reanudan desde el punto de control de un trabajo anterior cuando el trabajo anterior también utilizaba una clave gestionada por el cliente. Permite que el servicio descifre los datos de los puntos de control del trabajo anterior. Esta autorización solo permite el descifrado y no permite escribir nuevos datos.

    Todas las concesiones se retiran automáticamente cuando se completa el trabajo, lo que garantiza que el servicio deje de tener acceso a la clave una vez finalizado el ciclo de vida del trabajo.

  • Función de ejecución: al guardar los datos de salida (artefactos del modelo, puntos de control) en su bucket de Amazon S3, Amazon SageMaker AI utiliza la función de ejecución que usted proporciona. El rol de ejecución debe tener permisos para usar la clave de KMS para el cifrado y el descifrado a través de Amazon S3.

Durante un trabajo de formación, se llevan a cabo las siguientes AWS KMS operaciones:

  • kms:GenerateDataKey— Se llama a través de Amazon S3 al escribir datos de salida cifrados (artefactos del modelo, puntos de control y registros).

  • kms:Decrypt— Se llama a través de Amazon S3 al leer datos de entrada cifrados o datos de salida previamente escritos.

  • kms:DescribeKey— Es llamado por la identidad de la persona que llama en el momento de crear el trabajo para verificar la configuración y el estado de la clave del KMS.

  • kms:CreateGrant— Se llama por la identidad de la persona que llama en el momento de la creación del empleo para dar permiso al servicio para almacenar datos temporales en la plataforma durante todo el ciclo de vida del trabajo.

El servicio no almacena en caché las claves de datos. Cada operación de lectura o escritura de Amazon S3 se llama de AWS KMS forma independiente a través de la integración del servicio Amazon S3.

Configuración de una clave KMS administrada por el cliente

Multi-turn Los trabajos de RL solo admiten AWS KMS claves simétricas. Multi-region las claves no son compatibles.

Configurar los permisos para usar una clave KMS administrada por el cliente

Para utilizar una clave de KMS gestionada por el cliente con trabajos de RL de varios turnos, debe configurar los permisos tanto para la función de ejecución de IAM como para la política de claves de KMS.

Permisos de rol de ejecución

La función de ejecución de IAM que se transfiere a la CreateJob API debe tener los siguientes permisos. AWS KMS Estos permisos permiten al trabajo de formación cifrar los datos de salida y descifrar los datos de entrada a través de Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "KMSPermissionsForS3Encryption", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } } ] }
  • kms:Decrypt— Necesario para leer los datos de entrada cifrados y los datos de salida previamente escritos de Amazon S3.

  • kms:GenerateDataKey— Necesario para cifrar los datos de salida (artefactos del modelo, puntos de control) escritos en Amazon S3.

La kms:ViaService condición restringe el uso de la clave a las solicitudes que llegan a través de Amazon S3, lo que impide que la clave se utilice para otros fines.

Política de claves de KMS

La política de claves de KMS predeterminada ya permite que los roles de IAM de la misma cuenta usen la clave. Si lo desea, puede añadir la siguiente declaración para reducir aún más el acceso y permitir que solo el rol de ejecución utilice la clave a través de Amazon S3:

{ "Sid": "AllowMTRLJobEncryption", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/SageMakerExecutionRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com" } } }

Para que la persona que llama pueda crear subvenciones y describir la clave, añada la siguiente declaración a la política clave:

{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "account-id" }, "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }

Crear un trabajo de RL de varios turnos con una clave KMS administrada por el cliente

Para cifrar los datos de salida con la clave KMS gestionada por el cliente, especifique la clave ARN en KmsKeyArn el campo de OutputDataConfig la solicitud. CreateJob Para obtener más información, consulte la referencia CreateJobde la API de SageMaker IA.

El siguiente ejemplo muestra cómo especificar una clave KMS enOutputDataConfig:

{ "OutputDataConfig": { "S3OutputPath": "s3://your-bucket/output/", "KmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }

Si los datos de entrada en Amazon S3 están cifrados con una clave gestionada por el cliente (SSE-KMS), asegúrese de que el rol de ejecución tenga kms:Decrypt permiso para esa clave. Puede usar la misma clave para el cifrado de entrada y de salida, o claves diferentes.

Limitar el acceso a la clave KMS administrada por el cliente

Puede utilizar los siguientes mecanismos para restringir el acceso a la clave de KMS administrada por el cliente:

sagemaker: clave de OutputKmsKeyArn condición

Utilice la clave de sagemaker:OutputKmsKeyArn condición de la política de IAM de la persona que llama para controlar qué clave KMS se puede especificar para el cifrado de los resultados del trabajo. Esto permite a los administradores exigir que solo se utilicen las claves aprobadas al crear trabajos de RL de varios turnos. Para ver la lista completa de claves de condición de SageMaker IA, consulta Acciones, recursos y claves de condición de Amazon SageMaker AI.

"Condition": { "ArnEquals": { "sagemaker:OutputKmsKeyArn": "arn:aws:kms:region:account-id:key/key-id" } }
Protección de suplente confuso

Utilice las claves de aws:SourceAccount condición aws:SourceArn o las claves de condición de su política de claves de KMS para evitar el confuso problema de los diputados. Esto garantiza que solo las solicitudes que se originen en su cuenta o recurso específico puedan usar la clave.

"Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:region:account-id:job/*" } }

Contexto de cifrado para trabajos de RL de varios turnos

Cuando un trabajo de RL de varios turnos cifra los datos con la clave de KMS gestionada por el cliente, Amazon SageMaker AI incluye un contexto de cifrado en cada AWS KMS solicitud realizada a través de Amazon S3. Un contexto de cifrado es un conjunto de pares clave-valor que proporcionan datos autenticados (AAD) adicionales para las operaciones. AWS KMS El contexto de cifrado se registra AWS CloudTrail y se puede usar en las políticas de claves de KMS y en las restricciones de concesión para restringir aún más el acceso.

Amazon SageMaker AI utiliza el siguiente par clave-valor del contexto de cifrado para los trabajos de formación de RL de varios turnos:

{ "aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/job-name" }

Para los trabajos de evaluación de RL de varios turnos, el contexto de cifrado utiliza:

{ "aws:sagemaker:agent-rft-evaluation-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFTEvaluation/job-name" }

El contexto de cifrado está vinculado a la tarea específica que crea los datos cifrados. Cada trabajo cifra su propia salida con su propio ARN en el contexto de cifrado. Esto proporciona un enlace criptográfico entre los datos cifrados y el trabajo que los generó.

Uso del contexto de cifrado en las políticas clave

El contexto de cifrado se aplica automáticamente a través de las restricciones de concesión que Amazon SageMaker AI crea en el momento de la creación de empleo. No necesita añadir condiciones de contexto de cifrado a su política de claves de KMS para que el cifrado funcione correctamente.

Si añade condiciones de contexto de cifrado a la kms:CreateGrant declaración de su política de claves de KMS, debe permitir becas tanto para el puesto actual como para el anterior en cadenas de formación iterativas. El siguiente ejemplo permite a Amazon SageMaker AI crear subvenciones con el ARN de cualquier puesto de formación en el contexto del cifrado:

{ "Sid": "AllowCreateGrantForCaller", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/CallerRole" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "sagemaker.*.amazonaws.com", "kms:EncryptionContext:aws:sagemaker:finetuning-job-arn": "arn:aws:sagemaker:region:account-id:job/AgentRFT/*" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }
nota

Si se limita kms:CreateGrant a un único ARN de trabajo específico en el contexto del cifrado, la formación iterativa fallará porque Amazon SageMaker AI también crea una autorización de lectura con el ARN del trabajo anterior como contexto de cifrado. Utilice un patrón comodín para permitir subvenciones para cualquier puesto de su cuenta.

El contexto de cifrado en la formación iterativa

Cuando ejecuta trabajos de formación iterativos (en los que un trabajo posterior se reanuda desde el punto de control de un trabajo anterior), el contexto de cifrado de cada trabajo contiene el ARN propio de ese trabajo. Amazon SageMaker AI gestiona automáticamente dos AWS KMS becas para apoyar la formación iterativa:

  • Concesión de escritura: permite que el trabajo actual cifre sus propios datos de punto de control utilizando el ARN del trabajo actual como contexto de cifrado.

  • Concesión de lectura: permite que el trabajo actual descifre los datos del punto de control del trabajo anterior utilizando el ARN del trabajo anterior como contexto de cifrado.

Ambas concesiones se retiran automáticamente cuando se completa el trabajo. No es necesario añadir ninguna declaración de política clave adicional para que la formación iterativa pueda trabajar con claves gestionadas por el cliente.

Contexto de cifrado en AWS CloudTrail

Al revisar CloudTrail los registros para ver las llamadas a la AWS KMS API realizadas por trabajos de RL de varios turnos, el contexto de cifrado aparece en el requestParameters campo de la entrada del registro. Puede usar esta información para determinar qué trabajo realizó una operación específica de cifrado o descifrado de sus datos.

Supervisar la interacción de RL de varios giros con AWS KMS

Puede utilizarla AWS CloudTrail para supervisar las llamadas a la AWS KMS API realizadas en nombre de sus trabajos de RL de varios turnos. Los siguientes nombres de CloudTrail eventos son relevantes para monitorear el uso de las claves de KMS:

  • Decrypt— Se registra cuando el trabajo lee datos cifrados de Amazon S3.

  • GenerateDataKey— Se registra cuando el trabajo escribe datos cifrados en Amazon S3.

  • CreateGrant— Se registra cuando la persona que llama crea una subvención en el momento de la creación del empleo.

  • DescribeKey— Se registra cuando el trabajo describe la clave KMS para la validación.

En las entradas de CloudTrail registro de estos eventos, busque los siguientes valores:

  • solicitud Parameters.granteePrincipal: en el CreateGrant caso de los eventos, muestra el director del servicio que recibió la concesión (job.sagemaker.amazonaws.com).

Para obtener más información sobre el registro de las llamadas a la AWS KMS API, consulta Cómo registrar las llamadas a la AWS KMS API AWS CloudTrail en la Guía para AWS KMS desarrolladores.