Cifrado de datos
Al especificar un kmsKeyArn en un conjunto de datos, el servicio cifra todos los ejemplos almacenados mediante el cifrado de S3 del lado del servidor con KMS (). SSE-KMS Esto incluye ejemplos del borrador y de todas las versiones publicadas.
kmsKeyArnEs inmutable tras la creación del conjunto de datos; no se puede cambiar ni eliminar.
Funcionamiento
El cifrado del conjunto de datos utiliza S3. SSE-KMS Cuando el servicio escribe o lee el contenido del conjunto de datos 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). De este modo, se detectan los problemas de permisos de forma inmediata, en lugar de que se produzcan errores de forma asíncrona durante la ingestión.
AgentCore Las evaluaciones solo admiten claves KMS de cifrado simétrico. La clave KMS debe estar en la misma AWS región que el conjunto de datos.
Política clave obligatoria
La siguiente política de claves otorga los permisos mínimos necesarios para el cifrado de conjuntos de datos. Incluye dos afirmaciones:
-
AllowCallerAccess— Otorga
CreateDatasetpermiso al usuario o rol de IAM que lo invoca para validar y usar la clave. El servicio realiza una comprobación preliminar en el momento de la API para comprobar que la persona que llama tiene acceso al KMS.111122223333Sustitúyalo por tu ID de cuenta yMyDatasetRolepor el rol o usuario de IAM que administra los conjuntos de datos. -
AllowAgentCoreDatasetAccess— Concede al AgentCore servicio principal el permiso para cifrar y descifrar el contenido del conjunto de datos en S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
nota
Esta es la política mínima. Consulte Limitar el acceso para conocer las condiciones de seguridad recomendadas.
Limitar el acceso
Puede añadir condiciones para restringir el momento en que se puede utilizar la clave. Para los conjuntos de datos, el servicio envía el siguiente contexto con las operaciones de escritura de KMS (GenerateDataKey):
-
aws:SourceAccount— El ID AWS de cuenta propietario del conjunto de datos. -
aws:SourceArn— El ARN del conjunto de datos que se va a cifrar. -
kms:EncryptionContext:aws:bedrock-agentcore:datasetArn— El conjunto de datos ARN como contexto de cifrado.
La siguiente política divide los permisos en de escritura (condicionados) y de lectura (no condicionados):
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetWrite", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*", "kms:EncryptionContext:aws:bedrock-agentcore:datasetArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*" } } }, { "Sid": "AllowAgentCoreDatasetRead", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
importante
No añada aws:SourceAccount ni aws:SourceArn condiciones a la declaración de lectura (Decrypt,DescribeKey). Las descargas de conjuntos de datos utilizan direcciones URL de S3 prefirmadas y el cliente de descarga no envía encabezados contextuales de origen. Si se agregan estas condiciones a las operaciones de lectura, se producen errores en la descarga.
111122223333Sustitúyalo por tu ID de cuenta y us-east-1 por tu AWS región. Para abarcar un conjunto de datos específico, reemplaza el comodín por el ID del conjunto de datos:arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/my-dataset-id.
Crear un conjunto de datos con una clave KMS administrada por el cliente
Especifique el kmsKeyArn parámetro al llamar aCreateDataset:
ejemplo
Supervisión del uso de KMS para conjuntos de datos
Los siguientes nombres de CloudTrail eventos aparecen para las operaciones de KMS del conjunto de datos:
-
GenerateDataKey— Al crear un conjunto de datos, añadir ejemplos, actualizar ejemplos o publicar una versión. ElencryptionContextcampo contieneaws:bedrock-agentcore:datasetArn. -
Decrypt— Al leer el contenido del conjunto de datos (GetDataset, ListDatasetExamples) o durante las descargas de URL prefirmadas. -
DescribeKey— Al validar la clave al crear el conjunto de datos.
Comportamiento cuando una clave deja de estar disponible
Si inhabilitas o eliminas la clave de KMS administrada por el cliente que se utiliza en un conjunto de datos:
-
CreateDataset— No se realiza la validación con
ValidationException. -
AddDatasetExamples, UpdateDatasetExamples, CreateDatasetVersion — Se produce un error
ValidationExceptionen el momento de la API. -
GetDataset— No se puede
ValidationExceptionindicar que la clave KMS está deshabilitada o eliminada. -
ListDatasetExamples— No se puede
ValidationExceptionindicar que la clave KMS está deshabilitada o eliminada. -
DeleteDataset— Se realiza correctamente porque la eliminación de objetos de S3 no requiere el descifrado de KMS.