Cifrado de recomendaciones
Al especificar una recomendación, kmsKeyArn el servicio cifra la configuración de la recomendación y el resultado de la recomendación mediante el cifrado de sobres con el SDK de AWS cifrado. Todos los demás metadatos de recomendación (nombre, tipo, estado) permanecen cifrados con la clave AWS propia.
kmsKeyArnSe especifica en el momento de la creación medianteStartRecommendation.
Funcionamiento
El cifrado recomendado utiliza el SDK de AWS cifrado para el cifrado de sobres. Cuando el servicio escribe o lee los datos de recomendación, llama a KMS para generar o descifrar las claves de datos. El resultado de la recomendación también se almacena en S3 SSE-KMS con la misma clave administrada por el cliente.
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 el flujo de trabajo de recomendación.
Cuando el flujo de trabajo de recomendaciones se ejecuta de forma asíncrona, el principal de servicio (bedrock-agentcore.amazonaws.com) descifra la configuración y cifra el resultado. El director del servicio debe tener un kms:Decrypt permiso en la política kms:GenerateDataKey de claves.
AgentCore las optimizaciones solo admiten claves KMS de cifrado simétrico. La clave KMS debe estar en la misma AWS región que la recomendación.
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 recomendado. 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 recomendación durante el flujo de trabajo de recomendación asíncrono, según el alcance de la cuenta de origen y el ARN de origen.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } }, { "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:recommendation/*" } } } ] }
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 recomendación.111122223333Sustitúyalo por tu ID de cuenta yMyRecommendationRolepor el rol o usuario de IAM que inicia las recomendaciones. -
AllowCallerCryptoOps— Otorga la función
kms:GenerateDataKeyykms:Decryptlos permisos de IAM, según elaws:bedrock-agentcore:recommendationArncontexto de cifrado. Sustituya111122223333MyRecommendationRoley por susus-east-1valores. Para permitir el acceso a todas las recomendaciones de tu cuenta, usa un comodín conStringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*. -
AllowServicePrincipalAccess— Otorga al director del AgentCore servicio
kms:GenerateDataKeyykms:Decryptlos permisos para cifrar y descifrar los datos de las recomendaciones durante el flujo de trabajo asincrónico. Analizado 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 optimizaciones incluyen el siguiente contexto de cifrado en todas las operaciones de KMS:
{ "aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/recommendation-id" }
Puede usar este contexto de cifrado en las condiciones de la política clave para restringir las operaciones de KMS a recomendaciones específicas, como se muestra en la AllowCallerCryptoOps declaración del ejemplo de política clave anterior. Tenga en cuenta que se AllowServicePrincipalAccess utiliza aws:SourceArn para el ámbito más que para el contexto de cifrado.
Comenzar una recomendación con una clave KMS administrada por el cliente
Especifique el kmsKeyArn parámetro al llamar aStartRecommendation:
ejemplo
Supervisar el uso de KMS para obtener recomendaciones
Aparecen los siguientes nombres de CloudTrail eventos para las operaciones de KMS recomendadas:
-
GenerateDataKey— Al iniciar una recomendación (configuración de cifrado) y cuando finaliza el flujo de trabajo de recomendación (cifrado del resultado). ElencryptionContextcampo contiene.aws:bedrock-agentcore:recommendationArn -
Decrypt— Cuando el flujo de trabajo de recomendaciones procesa la configuración o cuando recupera los resultados de las recomendaciones. -
DescribeKey— Al validar la clave en el momento de crear la recomendación.
Comportamiento cuando una clave deja de estar disponible
Si inhabilitas o eliminas la clave de KMS administrada por el cliente utilizada por una recomendación:
-
StartRecommendation— No se realiza la validación con
ValidationException. -
GetRecommendation— No se puede
ValidationExceptionindicar que la clave KMS está desactivada o eliminada. -
ListRecommendations— Se realiza correctamente porque el listado solo devuelve metadatos y no requiere operaciones de KMS.
-
DeleteRecommendation— Se realiza correctamente porque la eliminación no requiere descifrar los datos de recomendación.