View a markdown version of this page

Chiffrement au repos pour les AgentCore évaluations - Amazon Bedrock AgentCore

Chiffrement au repos pour les AgentCore évaluations

Note

Cette page couvre le chiffrement des clés géré par le client pour les évaluateurs personnalisés. Pour le chiffrement des ensembles de données, voir Chiffrement des ensembles de données.

Options de chiffrement

Amazon Bedrock AgentCore Evaluations chiffre toutes les données inactives par défaut à l'aide d'une clé AWS détenue sans frais supplémentaires. Vous ne pouvez pas consulter, gérer ou auditer l'utilisation de cette clé.

Vous pouvez éventuellement chiffrer les données sensibles de l'évaluateur à l'aide d'une clé gérée par le client. Lorsque vous spécifiez une clé AWS KMS gérée par le client sur un évaluateur personnalisé, le service chiffre les instructions de l'évaluateur et l'échelle d'évaluation à l'aide du chiffrement d'enveloppe avec le AWS SDK de chiffrement. Toutes les autres métadonnées de l'évaluateur (nom, niveau, configuration du modèle, statut) restent cryptées avec la clé AWS détenue.

L'utilisation d'une clé gérée par le client vous permet de mieux contrôler le processus de chiffrement, notamment de :

  • Création et gestion de la clé, notamment en définissant des politiques clés

  • Faites pivoter la clé selon votre propre horaire

  • Désactiver ou supprimer la clé pour contrôler l'accès aux données cryptées

  • Auditez l'utilisation des clés via AWS CloudTrail

Pour plus d'informations, consultez la section Clés gérées par le client dans le Guide du développeur du service de gestion des AWS clés.

Comment AgentCore Evaluations utilise une clé KMS gérée par le client

Lorsque vous spécifiez une clé gérée par le client sur un évaluateur personnalisé, le service utilise les informations d'identification de l'appelant (via des sessions d'accès direct) pour chiffrer et déchiffrer les instructions et l'échelle d'évaluation de l'évaluateur. L'appelant doit avoir kms:GenerateDataKeykms:Decrypt, et des kms:DescribeKey autorisations sur la clé.

Pour l'évaluation en ligne, le service déchiffre les instructions de l'évaluateur de manière asynchrone à l'aide de son propre principal de service (). bedrock-agentcore.amazonaws.com Le directeur du service doit avoir kms:Decrypt l'autorisation requise dans la politique clé.

Note

AgentCore Les évaluations n'utilisent pas les autorisations KMS ni les clés de données de cache. Les configurations d'évaluation en ligne n'acceptent aucun kmsKeyArn paramètre ; elles héritent du chiffrement CMK des évaluateurs auxquels elles font référence.

Configuration d'une clé KMS gérée par le client

AgentCore Les évaluations ne prennent en charge que les clés KMS de chiffrement symétriques. La clé KMS doit se trouver dans la même AWS région que l'évaluateur. Pour plus d'informations sur la création d'une clé KMS symétrique, consultez la section Création de clés KMS de chiffrement symétrique dans le Guide du développeur du service de gestion des AWS clés.

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

La politique clé suivante fournit les autorisations minimales requises pour les AgentCore évaluations. La stratégie comporte trois déclarations :

  • AllowCallerAccess— Permet à l'utilisateur ou au rôle IAM de valider la clé viaDescribeKey, dans le cadre défini par. kms:ViaService

  • AllowCallerCryptoOps— Permet à l'utilisateur ou au rôle IAM de chiffrer et de déchiffrer, dans le cadre du contexte de kms:ViaService chiffrement.

  • AllowServicePrincipalDecrypt— Permet au principal du AgentCore service de déchiffrer lors de l'évaluation en ligne, en fonction du compte source et de l'ARN source.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock-agentcore.us-east-1.amazonaws.com" } } }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "bedrock-agentcore.us-east-1.amazonaws.com", "kms:EncryptionContext:aws:bedrock-agentcore:evaluatorArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/my-evaluator-id" } } }, { "Sid": "AllowServicePrincipalDecrypt", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333", "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/my-evaluator-id" } } } ] }

La politique contient les déclarations suivantes :

  • AllowCallerAccess— Accorde l'kms:DescribeKeyautorisation du rôle IAM, limitée aux demandes effectuées via le AgentCore service ()kms:ViaService. 111122223333Remplacez-le par votre identifiant de compte, MyEvaluationRole par le rôle ou l'utilisateur IAM qui gère les évaluateurs et us-east-1 par votre AWS région.

  • AllowCallerCryptoOps— Accorde le rôle kms:GenerateDataKey et kms:Decrypt les autorisations IAM, dans le cadre du kms:ViaService contexte de aws:bedrock-agentcore:evaluatorArn chiffrement. Remplacez 111122223333MyEvaluationRole,us-east-1, et my-evaluator-id par vos valeurs. Pour autoriser l'accès à tous les évaluateurs de votre compte, utilisez un caractère générique avec StringLike :. arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/ Notez que lorsque vous utilisez un caractère générique, vous devez remplacer l'opérateur de condition par « StringEquals à »StringLike, car il est StringEquals traité comme un caractère littéral.

  • AllowServicePrincipalDecrypt— Accorde au AgentCore service principal l'kms:Decryptautorisation de déchiffrer les données de l'évaluateur lors de l'exécution de l'évaluation en ligne. Délimité par compte source et ARN source (aws:SourceArn) pour éviter les attaques secondaires confuses. Remplacez us-east-1 et 111122223333 par votre région et votre numéro de compte.

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

Pour chiffrer un évaluateur personnalisé, spécifiez le kmsKeyArn paramètre lors de l'appel. CreateEvaluator

Exemple
CLI
aws bedrock-agentcore-control create-evaluator \ --evaluator-name "MyEncryptedEvaluator" \ --level SESSION \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --evaluator-config '{ "llmAsAJudge": { "instructions": "Rate the session quality using {available_tools} and {context}", "ratingScale": { "categorical": [ {"label": "Good", "definition": "The agent performed well"}, {"label": "Bad", "definition": "The agent performed poorly"} ] }, "modelConfig": { "bedrockEvaluatorModelConfig": { "modelId": "us.anthropic.claude-sonnet-4-20250514-v1:0" } } } }'
Python (Boto3)
import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_evaluator( evaluatorName='MyEncryptedEvaluator', level='SESSION', kmsKeyArn='arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab', evaluatorConfig={ 'llmAsAJudge': { 'instructions': 'Rate the session quality using {available_tools} and {context}', 'ratingScale': { 'categorical': [ {'label': 'Good', 'definition': 'The agent performed well'}, {'label': 'Bad', 'definition': 'The agent performed poorly'} ] }, 'modelConfig': { 'bedrockEvaluatorModelConfig': { 'modelId': 'us.anthropic.claude-sonnet-4-20250514-v1:0' } } } } ) print(f"Evaluator ID: {response['evaluatorId']}")

Modification de la configuration de chiffrement sur un évaluateur existant

Vous pouvez modifier la configuration du chiffrement sur un évaluateur existant en utilisant UpdateEvaluator:

  • Ajouter un chiffrement — Spécifiez un kmsKeyArn sur un évaluateur créé sans un tel évaluateur. Le service chiffre les instructions et l'échelle d'évaluation à l'aide de la nouvelle clé.

  • Touche de rotation — Spécifiez une autre touchekmsKeyArn. Le service déchiffre les données avec l'ancienne clé et les chiffre à nouveau avec la nouvelle clé. L'appelant doit avoir des autorisations sur les deux touches. Si l'ancienne clé n'est pas disponible (désactivée, supprimée ou autorisations manquantes), la mise à jour échouera.

Note

Vous ne pouvez pas supprimer le chiffrement par clé géré par le client d'un évaluateur une fois qu'il a été ajouté.

Délimitation de 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 évaluations incluent le contexte de chiffrement suivant dans toutes les opérations KMS :

{ "aws:bedrock-agentcore:evaluatorArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:evaluator/evaluator-id" }

Vous pouvez utiliser ce contexte de chiffrement dans des conditions de politique clés pour limiter les opérations KMS à des évaluateurs spécifiques, comme indiqué dans l'AllowCallerCryptoOpsénoncé de l'exemple de politique clé ci-dessus. Notez que cela est AllowServicePrincipalDecrypt utilisé aws:SourceArn à des fins de cadrage plutôt que de contexte de chiffrement.

Suivi de l'interaction AgentCore des évaluations avec AWS KMS

Vous pouvez l'utiliser AWS CloudTrail pour suivre les demandes d'API KMS qu' AgentCore Evaluations effectue en votre nom. Les noms CloudTrail d'événements suivants apparaissent dans vos journaux :

  • GenerateDataKey— Lors de la création ou de la mise à jour d'un évaluateur avec une clé gérée par le client.

  • Decrypt— Lors de la récupération des données de l'évaluateur, lors d'une évaluation à la demande ou lors de l'exécution d'une évaluation en ligne.

  • DescribeKey— Lors de la validation de la clé lors de la création, de la mise à jour ou de la création de la configuration d'évaluation en ligne de l'évaluateur.

Dans les entrées du CloudTrail journal, le requestParameters.encryptionContext champ contient aws:bedrock-agentcore:evaluatorArn l'ARN de l'évaluateur. Pour les demandes faites par le directeur du service lors de l'évaluation en ligne, le userIdentity.invokedBy champ apparaîtbedrock-agentcore.amazonaws.com.

Pour plus d'informations sur la surveillance de l'utilisation de KMS, consultez la section Journalisation des appels d'API AWS KMS AWS CloudTrail dans le Guide du développeur du service de gestion des AWS clés.

Comportement lorsqu'une clé n'est plus disponible

Si vous désactivez ou supprimez votre clé KMS gérée par le client, ou si la politique en matière de clés n'accorde plus les autorisations requises :

  • GetEvaluator with ALL_DATA — Échoue car le service ne peut pas déchiffrer les instructions et l'échelle de notation.

  • GetEvaluator with METADATA_ONLY — Réussite car aucune opération KMS n'est requise.

  • Évaluation (à la demande) : échoue pour les CMK-encrypted évaluateurs car le service ne peut pas déchiffrer les instructions.

  • UpdateEvaluator (rotation des clés) — Échoue car le service ne peut pas déchiffrer les données existantes avec la clé non disponible avant de les rechiffrer avec la nouvelle clé.

  • CreateOnlineEvaluationConfig / UpdateOnlineEvaluationConfig— Échoue car le service ne peut pas valider l'accès de l'appelant via kms:DescribeKey et le kms:Decrypt dry-run.

  • Exécution de l'évaluation en ligne : échoue car le service ne peut pas déchiffrer les instructions de l'évaluateur pour la notation.

  • DeleteEvaluator— Succès car la suppression ne nécessite pas de déchiffrer les données de l'évaluateur.

  • DeleteOnlineEvaluationConfig— Succès car la suppression ne nécessite pas d'accès KMS.

Astuce

Utilisez includedData=METADATA_ONLY on GetEvaluator pour récupérer les métadonnées de l'évaluateur (nom, niveau, configuration du modèle, statut) sans avoir besoin d'autorisations KMS. Cela est utile pour surveiller et inventorier les flux de travail lorsque la clé n'est pas disponible.

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

Note

Pour plus d'informations sur le chiffrement par clé géré par le client pour les ensembles de données, consultez la section Chiffrement des ensembles de données.