View a markdown version of this page

Chiffrement du bundle de configuration - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chiffrement du bundle de configuration

Lorsque vous spécifiez un élément kmsKeyArn sur un bundle de configuration, le service chiffre les configurations des composants (instructions système, descriptions des outils et autre contenu de configuration) à l'aide du chiffrement d'enveloppe. Toutes les autres métadonnées du bundle (nom, description, ID de version, horodatages) restent cryptées avec la clé AWS détenue.

Comment ça marche

Le chiffrement du bundle de configuration utilise le chiffrement des enveloppes avec les informations d'identification de l'appelant. Lorsque vous créez ou mettez à jour un bundle avec unkmsKeyArn, le service utilise vos informations d'identification (via des sessions d'accès direct) pour générer une clé de chiffrement des données (DEK) à partir de KMS. Le service chiffre les configurations des composants localement à l' AES-GCM aide de ce DEK, puis stocke le DEK chiffré avec le bundle. Lorsque vous récupérez le bundle, le service déchiffre le DEK à l'aide de vos informations d'identification et déchiffre les composants.

L'appelant doit disposer des kms:ReEncrypt* autorisations kms:GenerateDataKeykms:Decrypt,kms:DescribeKey, et sur la touche.

AgentCore Les optimisations ne prennent en charge que les clés KMS de chiffrement symétrique. La clé KMS doit se trouver dans la même AWS région que le bundle de configuration.

Configuration des autorisations pour utiliser une clé KMS gérée par le client

La politique de clé suivante fournit les autorisations minimales requises pour le chiffrement du bundle de configuration. La politique possède deux énoncés:

  • AllowCallerAccess— Permet à l'utilisateur ou au rôle IAM de valider la clé viaDescribeKey.

  • AllowCallerCryptoOps— Permet à l'utilisateur ou au rôle IAM de générer des clés de données, de déchiffrer et de rechiffrer (pour la rotation des clés), en fonction du contexte de chiffrement.

{ "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 politique contient les déclarations suivantes :

  • AllowCallerAccess— Accorde au rôle IAM l'kms:DescribeKeyautorisation de valider la clé lors de la création ou de la mise à jour du bundle. Remplacez-le 111122223333 par votre identifiant de compte et MyConfigBundleRole par le rôle IAM ou l'utilisateur qui gère les ensembles de configuration.

  • AllowCallerCryptoOps— Octroie le rôle kms:GenerateDataKey IAM et kms:ReEncrypt* les autorisations, en fonction du contexte de aws:bedrock-agentcore:configurationBundleArn chiffrement. kms:Decrypt L'kms:ReEncrypt*autorisation est requise pour la rotation des clés (modification de la clé KMS sur un bundle existant). Remplacez 111122223333MyConfigBundleRole, et us-east-1 par vos valeurs. Pour autoriser l'accès à tous les packs de configuration de votre compte, utilisez un caractère générique avec StringLike :. arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/*

Limiter l'accès à la clé KMS gérée par le client

Vous pouvez utiliser le contexte de chiffrement pour limiter l'accès à la clé gérée par le client. AgentCore les optimisations incluent le contexte de chiffrement suivant dans toutes les opérations KMS :

{ "aws:bedrock-agentcore:configurationBundleArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:configuration-bundle/bundle-id" }

Vous pouvez utiliser ce contexte de chiffrement dans des conditions de politique clé pour limiter les opérations KMS à des ensembles de configuration spécifiques, comme indiqué dans la AllowCallerCryptoOps déclaration de l'exemple de politique clé ci-dessus.

Création d'un bundle de configuration avec une clé KMS gérée par le client

Pour chiffrer un bundle de configuration, spécifiez le kmsKeyArn paramètre lors de l'appel CreateConfigurationBundle.

Exemple
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']}")

Modification de la configuration de chiffrement d'un bundle existant

Vous pouvez modifier la configuration de chiffrement d'un bundle existant en utilisant UpdateConfigurationBundle  :

  • Ajouter un chiffrement  : spécifiez un kmsKeyArn sur un bundle qui a été créé sans chiffrement. Le service génère un nouveau DEK et chiffre les configurations des composants.

  • Touche de rotation  : spécifiez une autre touchekmsKeyArn. Le service réenveloppe le DEK existant de l'ancienne clé vers la nouvelle clé en utilisant. kms:ReEncrypt L'appelant doit disposer des autorisations sur les deux touches. Si l'ancienne clé n'est pas disponible (autorisations désactivées, supprimées ou manquantes), la mise à jour échouera.

Note

Vous ne pouvez pas supprimer le chiffrement par clé gérée par le client d'un ensemble de configuration une fois celui-ci ajouté.

Surveillance de l'utilisation de KMS pour les packs de configuration

Les noms CloudTrail d'événements suivants apparaissent pour les opérations KMS du bundle de configuration :

  • GenerateDataKey— Lors de la création d'un bundle avec une clé gérée par le client ou lors de l'ajout d'un chiffrement à un bundle existant. Le encryptionContext champ contientaws:bedrock-agentcore:configurationBundleArn.

  • Decrypt— Lors de la récupération du contenu d'un bundle (GetConfigurationBundle, GetConfigurationBundleVersion) ou lors de la mise à jour d'un bundle chiffré.

  • ReEncrypt— Lorsque vous tournez la clé KMS sur un bundle existant via UpdateConfigurationBundle.

  • DescribeKey— Lors de la validation de la clé lors de la création ou de la mise à jour du bundle.

Comportement lorsqu'une clé devient indisponible

Si vous désactivez ou supprimez la clé KMS gérée par le client utilisée par un bundle de configuration :

  • CreateConfigurationBundle— Échoue lors de la validation avecValidationException.

  • UpdateConfigurationBundle— Échoue car le service ne peut pas déchiffrer le DEK existant pour rechiffrer les nouveaux composants. La rotation des touches échoue également car l'ancienne clé n'est pas disponible pour le remballage.

  • GetConfigurationBundle / GetConfigurationBundleVersion— Échoue car le service ne peut pas déchiffrer le DEK ou les configurations des composants.

  • ListConfigurationBundles / ListConfigurationBundleVersions— Réussite car la liste renvoie uniquement des métadonnées et ne nécessite aucune opération KMS.

  • DeleteConfigurationBundle— Réussite car la suppression ne nécessite pas de déchiffrer les données du bundle.

Pour rétablir l'accès, réactivez la clé ou mettez à jour la politique de clé pour accorder les autorisations requises.