Cifrado de evaluación por lotes
Al especificar una kmsKeyArn evaluación por lotes, el servicio cifra todos los artefactos de salida almacenados en S3 mediante el cifrado de S3 del lado del servidor con KMS (). SSE-KMS Esto incluye la configuración de la fuente de datos, los metadatos de la sesión y los resultados de la evaluación.
kmsKeyArnSe especifica en el momento de la creación medianteStartBatchEvaluation.
Funcionamiento
El cifrado de evaluación por lotes utiliza S3 SSE-KMS. Cuando el servicio escribe o lee el resultado de la evaluación por lotes en S3, S3 llama al KMS en nombre del servicio para cifrar o descifrar los datos. El principal del servicio (bedrock-agentcore.amazonaws.com) debe tener permisos de KMS en la política de claves.
En el momento de la API, el servicio valida que la persona que llama tiene permisos de KMS mediante una comprobación preliminar (sesiones de acceso directo). Esto detecta los problemas de permisos de forma inmediata, en lugar de fallar de forma asíncrona durante el flujo de trabajo de evaluación por lotes.
El servicio también comprueba que puede funcionar kms:GenerateDataKey con sus propias credenciales para garantizar que la política de claves conceda al director del servicio los permisos necesarios para escribir los resultados cifrados.
AgentCore Las evaluaciones solo admiten claves KMS de cifrado simétrico. La clave KMS debe estar en la misma AWS región que la evaluación por lotes.
Configurar los permisos para usar una clave KMS administrada por el cliente
La siguiente política de claves proporciona los permisos mínimos necesarios para el cifrado de la evaluación por lotes. La política tiene tres instrucciones:
-
AllowCallerAccess— Permite al usuario o rol de IAM validar la clave mediante
DescribeKey. -
AllowCallerCryptoOps— Permite al usuario o rol de IAM cifrar y descifrar, según el contexto de cifrado.
-
AllowServicePrincipalAccess— Permite al director del AgentCore servicio cifrar y descifrar los datos de evaluación por lotes en S3, desglosados por cuenta de origen y ARN de origen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } }, { "Sid": "AllowServicePrincipalAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } } ] }
La política contiene las siguientes declaraciones:
-
AllowCallerAccess— Otorga al rol de IAM
kms:DescribeKeypermiso para validar la clave en el momento de crear la evaluación del lote.111122223333Sustitúyalo por tu ID de cuenta yMyBatchEvaluationRolepor el rol o usuario de IAM que inicia las evaluaciones por lotes. -
AllowCallerCryptoOps— Otorga la función
kms:GenerateDataKeyykms:Decryptlos permisos de IAM, según elaws:bedrock-agentcore:batchEvaluationArncontexto de cifrado. Sustituya111122223333MyBatchEvaluationRoley por susus-east-1valores. Para permitir el acceso a todas las evaluaciones por lotes de su cuenta, utilice un comodín conStringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*. -
AllowServicePrincipalAccess— Otorga al director del AgentCore servicio
kms:GenerateDataKeyykms:Decryptpermisos para cifrar y descifrar los datos de evaluación de los lotes en S3. Seleccionado por cuenta de origen y ARN de origenaws:SourceArn() para evitar confusos ataques de diputados. Sustituyaus-east-1y111122223333por su región e ID de cuenta.
Limitar el acceso a la clave KMS administrada por el cliente
Puede usar el contexto de cifrado para limitar el acceso a la clave administrada por el cliente. AgentCore Las evaluaciones incluyen el siguiente contexto de cifrado en todas las operaciones de KMS:
{ "aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/batch-evaluation-id" }
Puede usar este contexto de cifrado en las condiciones de la política clave para restringir las operaciones de KMS a evaluaciones por lotes específicas, como se muestra en la AllowCallerCryptoOps declaración del ejemplo de política de claves anterior. Tenga en cuenta que se AllowServicePrincipalAccess utiliza aws:SourceArn para el ámbito más que para el contexto de cifrado.
Iniciar una evaluación por lotes con una clave KMS administrada por el cliente
Especifique el kmsKeyArn parámetro al llamar aStartBatchEvaluation:
ejemplo
Supervisión del uso del KMS para las evaluaciones por lotes
Los siguientes nombres de CloudTrail eventos aparecen para las operaciones de KMS de evaluación por lotes:
-
GenerateDataKey— Al escribir el resultado cifrado de la evaluación por lotes en S3 (configuración de la fuente de datos, metadatos de la sesión, resultados de la evaluación). ElencryptionContextcampo contieneaws:bedrock-agentcore:batchEvaluationArn. -
Decrypt— Al leer el resultado cifrado de la evaluación de lotes de S3. -
DescribeKey— Al validar la clave en el momento de crear la evaluación del lote.
Para obtener más información sobre la supervisión del uso de KMS, consulte Registrar las llamadas a la API de AWS KMS AWS CloudTrail en la Guía para desarrolladores del Servicio de administración de AWS claves.
Comportamiento cuando una clave deja de estar disponible
Si deshabilita o elimina la clave KMS administrada por el cliente utilizada en una evaluación por lotes:
-
StartBatchEvaluation— Falla en la validación con
ValidationException. -
GetBatchEvaluation— Devuelve metadatos (nombre, estado, marcas de tiempo), pero el servicio no puede leer los resultados de la evaluación almacenados en objetos S3 cifrados.
-
ListBatchEvaluations— Funciona correctamente porque la lista solo devuelve metadatos y no requiere operaciones de KMS.
-
StopBatchEvaluation— Se ejecuta correctamente porque la detención no requiere descifrar los datos.
-
DeleteBatchEvaluation— Se realiza correctamente porque la eliminación de objetos de S3 no requiere el descifrado de KMS.
Para restablecer el acceso, vuelva a habilitar la clave o actualice la política de claves para conceder los permisos necesarios.
Las operaciones del ciclo de vida de la evaluación por lotes descritas anteriormente se asignan a los comandos de la AgentCore CLI. Los archive comandos stop y se dirigen al trabajo mediante la -i, --id <id> opción. El view batch-evaluation comando toma el ID como argumento posicional:
-
StartBatchEvaluation—
agentcore run batch-evaluation --kms-key <arn>(usa-r/--runtimey-e/--evaluator) -
GetBatchEvaluation —
agentcore view batch-evaluation <id> -
ListBatchEvaluations—
agentcore view batch-evaluationoagentcore batch-evaluations history -
StopBatchEvaluation —
agentcore stop batch-evaluation -i <id> -
DeleteBatchEvaluation —
agentcore archive batch-evaluation -i <id>