View a markdown version of this page

Cifrado del paquete de configuración - Base amazónica AgentCore

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 del paquete de configuración

Al especificar un kmsKeyArn en un paquete de configuración, el servicio cifra las configuraciones de los componentes (las solicitudes del sistema, las descripciones de las herramientas y otro contenido de la configuración) mediante el cifrado de sobres. Todos los demás metadatos del paquete (nombre, descripción, identificadores de versión, marcas de tiempo) permanecen cifrados con la clave propia. AWS

Funcionamiento

El cifrado del paquete de configuración utiliza el cifrado de sobres con las credenciales de la persona que llama. Al crear o actualizar un paquete con unkmsKeyArn, el servicio utiliza sus credenciales (mediante sesiones de acceso directo) para generar una clave de cifrado de datos (DEK) a partir de KMS. El servicio cifra las configuraciones de los componentes de forma local AES-GCM con esa DEK y, a continuación, almacena la DEK cifrada junto con el paquete. Cuando recuperas el paquete, el servicio descifra la DEK con tus credenciales y descifra los componentes.

La persona que llama debe tenerkms:GenerateDataKey, kms:Decryptkms:DescribeKey, y kms:ReEncrypt* permisos sobre la clave.

AgentCore las optimizaciones solo admiten claves de KMS de cifrado simétrico. La clave de KMS debe estar en la misma AWS región que el paquete de configuración.

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

La siguiente política de claves proporciona los permisos mínimos necesarios para el cifrado del paquete de configuración. La política tiene dos instrucciones:

  • AllowCallerAccess— Permite al usuario o rol de IAM validar la clave medianteDescribeKey.

  • AllowCallerCryptoOps— Permite al usuario o rol de IAM generar claves de datos, descifrarlas y volver a cifrarlas (para la rotación de claves), según el contexto de cifrado.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyConfigBundleRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*" } } } ] }

La política contiene las siguientes declaraciones:

  • AllowCallerAccess— Concede al rol de IAM kms:DescribeKey permiso para validar la clave en el momento de la creación o actualización del paquete. 111122223333Sustitúyalo por el identificador de su cuenta y MyConfigBundleRole por el rol o usuario de IAM que administra los paquetes de configuración.

  • AllowCallerCryptoOps— Otorga la función kms:GenerateDataKey y los kms:ReEncrypt* permisos de IAM en función del contexto de cifrado. kms:Decrypt aws:bedrock-agentcore:configurationBundleArn El kms:ReEncrypt* permiso es necesario para la rotación de claves (cambiar la clave de KMS en un paquete existente). Sustituya 111122223333 y us-east-1 por sus valores. MyConfigBundleRole Para permitir el acceso a todos los paquetes de configuración de su cuenta, utilice un comodín conStringLike:. arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*

Limitar el acceso a la clave de KMS administrada por el cliente

Puede usar el contexto de cifrado para restringir 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:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/bundle-id" }

Puede usar este contexto de cifrado en las condiciones clave de la política para restringir las operaciones de KMS a paquetes de configuración específicos, como se muestra en la AllowCallerCryptoOps declaración del ejemplo de política de claves anterior.

Crear un paquete de configuración con una clave de KMS administrada por el cliente

Para cifrar un paquete de configuración, especifique el kmsKeyArn parámetro al realizar la llamada CreateConfigurationBundle.

ejemplo
AWS CLI
aws bedrock-agentcore-control create-configuration-bundle \ --bundle-name "MyEncryptedBundle" \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --components '{ "arn:aws:bedrock-agentcore:us-east-1:111122223333:runtime/my-agent": { "configuration": { "systemPrompt": "You are a helpful assistant.", "modelId": "anthropic.claude-3-sonnet" } } }'
Python (Boto3)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_configuration_bundle( bundleName='MyEncryptedBundle', kmsKeyArn='arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab', components={ 'arn:aws:bedrock-agentcore:us-east-1:111122223333:runtime/my-agent': { 'configuration': { 'systemPrompt': 'You are a helpful assistant.', 'modelId': 'anthropic.claude-3-sonnet' } } } ) print(f"Bundle ID: {response['bundleId']}")

Cambiar la configuración de cifrado de un paquete existente

Puede cambiar la configuración de cifrado de un paquete existente mediante UpdateConfigurationBundle:

  • Agregar cifrado: especifique un cifrado kmsKeyArn en un paquete que se creó sin uno. El servicio genera un DEK nuevo y cifra las configuraciones de los componentes.

  • Clave de rotación: especifique una diferente. kmsKeyArn El servicio vuelve a empaquetar el DEK existente de la clave anterior a la nueva clave utilizando. kms:ReEncrypt La persona que llama debe tener permisos en ambas claves. Si la clave anterior no está disponible (los permisos están deshabilitados, eliminados o faltan), la actualización fallará.

nota

No puede eliminar el cifrado de claves administradas por el cliente de un paquete de configuración una vez que se haya agregado.

Supervisión del uso de KMS para los paquetes de configuración

Los siguientes nombres de CloudTrail eventos aparecen para las operaciones de KMS del paquete de configuración:

  • GenerateDataKey— Al crear un paquete con una clave gestionada por el cliente o al añadir el cifrado a un paquete existente. El encryptionContext campo contieneaws:bedrock-agentcore:configurationBundleArn.

  • Decrypt— Al recuperar el contenido del paquete (GetConfigurationBundle, GetConfigurationBundleVersion) o al actualizar un paquete cifrado.

  • ReEncrypt— Al rotar la clave de KMS en un paquete existente a través UpdateConfigurationBundle de.

  • DescribeKey— Al validar la clave en el momento de la creación o actualización del paquete.

Comportamiento cuando una clave deja de estar disponible

Si inhabilitas o eliminas la clave de KMS administrada por el cliente que utiliza un paquete de configuración:

  • CreateConfigurationBundle— No se realiza la validación conValidationException.

  • UpdateConfigurationBundle— Falla porque el servicio no puede descifrar el DEK existente para volver a cifrar los nuevos componentes. La rotación de claves también falla porque la clave anterior no está disponible para volver a empaquetarla.

  • GetConfigurationBundle / GetConfigurationBundleVersion— Falla porque el servicio no puede descifrar el DEK ni las configuraciones de los componentes.

  • ListConfigurationBundles / ListConfigurationBundleVersions— Se ejecuta correctamente porque la lista solo devuelve metadatos y no requiere operaciones de KMS.

  • DeleteConfigurationBundle— Se realiza correctamente porque la eliminación no requiere descifrar los datos del paquete.

Para restablecer el acceso, vuelva a habilitar la clave o actualice la política de claves para conceder los permisos necesarios.