View a markdown version of this page

Chiffrement des évaluations par lots - Amazon Bedrock AgentCore

Chiffrement des évaluations par lots

Lorsque vous spécifiez une kmsKeyArn évaluation par lots, le service chiffre tous les artefacts de sortie stockés dans S3 à l'aide du chiffrement côté serveur S3 avec KMS (). SSE-KMS Cela inclut la configuration de la source de données, les métadonnées de session et les résultats de l'évaluation.

Le kmsKeyArn est spécifié au moment de la création viaStartBatchEvaluation.

Comment ça marche

Le chiffrement des évaluations par lots utilise S3 SSE-KMS. Lorsque le service écrit ou lit les résultats d'évaluation par lots dans S3, S3 appelle KMS au nom du service pour chiffrer ou déchiffrer les données. Le principal du service (bedrock-agentcore.amazonaws.com) doit disposer des autorisations KMS dans la politique clé.

Au moment de l'API, le service vérifie que l'appelant dispose des autorisations KMS à l'aide d'une vérification à sec (Forward Access Sessions). Cela permet de détecter immédiatement les problèmes d'autorisation plutôt que d'échouer de manière asynchrone pendant le flux de travail d'évaluation par lots.

Le service confirme également qu'il peut fonctionner kms:GenerateDataKey avec ses propres informations d'identification afin de s'assurer que la politique des clés accorde au principal du service les autorisations requises pour écrire une sortie cryptée.

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'évaluation du lot.

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

La politique clé suivante fournit les autorisations minimales requises pour le chiffrement des évaluations par lots. La stratégie comporte trois déclarations :

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

  • AllowCallerCryptoOps— Permet à l'utilisateur ou au rôle IAM de chiffrer et de déchiffrer, selon le contexte de chiffrement.

  • AllowServicePrincipalAccess— Permet au principal du AgentCore service de chiffrer et de déchiffrer les données d'évaluation par lots dans S3, 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/MyBatchEvaluationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyBatchEvaluationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*" } } }, { "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:batch-evaluate/*" } } } ] }

La politique contient les déclarations suivantes :

  • AllowCallerAccess— Accorde au rôle IAM l'kms:DescribeKeyautorisation de valider les clés au moment de la création de l'évaluation par lots. 111122223333Remplacez-le par votre identifiant de compte et MyBatchEvaluationRole par le rôle ou l'utilisateur IAM qui lance les évaluations par lots.

  • AllowCallerCryptoOps— Accorde le rôle kms:GenerateDataKey et les kms:Decrypt autorisations IAM, dans le cadre du contexte de aws:bedrock-agentcore:batchEvaluationArn chiffrement. Remplacez 111122223333MyBatchEvaluationRole, et us-east-1 par vos valeurs. Pour autoriser l'accès à toutes les évaluations par lots de votre compte, utilisez un caractère générique avec StringLike :arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/*.

  • AllowServicePrincipalAccess— Accorde le principal du AgentCore service kms:GenerateDataKey et kms:Decrypt les autorisations nécessaires au chiffrement et au déchiffrement des données d'évaluation par lots dans S3. 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.

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:batchEvaluationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:batch-evaluate/batch-evaluation-id" }

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

Démarrage d'une évaluation par lots avec une clé KMS gérée par le client

Spécifiez le kmsKeyArn paramètre lors de l'appel StartBatchEvaluation :

Exemple
AgentCore CLI

Avec la AgentCore CLI, utilisez l'--kms-keyoption permettant de spécifier un ARN de clé KMS unique pour chiffrer les résultats d'évaluation par lots. La AgentCore CLI utilise le --kms-key drapeau, qui est différent de l'--kms-key-arnindicateur de la AWS CLI et du paramètre boto3kmsKeyArn.

agentcore run batch-evaluation \ -r MyAgent \ -e Builtin.Correctness \ --kms-key arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab
AWS CLI
aws bedrock-agentcore start-batch-evaluation \ --batch-evaluation-name "MyEncryptedBatchEval" \ --kms-key-arn "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --evaluators '[{"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.Helpfulness"}]' \ --data-source-config '{ "cloudwatchLogs": { "logGroupNames": ["/aws/bedrock-agentcore/sessions/my-agent"], "serviceNames": ["my-agent.DEFAULT"], "filterConfig": { "timeRange": { "startTime": "2025-01-01T00:00:00Z", "endTime": "2025-01-02T00:00:00Z" } } } }'
Python (Boto3)
import boto3 client = boto3.client('bedrock-agentcore') response = client.start_batch_evaluation( batchEvaluationName='MyEncryptedBatchEval', kmsKeyArn='arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab', evaluators=[{'evaluatorArn': 'arn:aws:bedrock-agentcore:::evaluator/Builtin.Helpfulness'}], dataSourceConfig={ 'cloudwatchLogs': { 'logGroupNames': ['/aws/bedrock-agentcore/sessions/my-agent'], 'serviceNames': ['my-agent.DEFAULT'], 'filterConfig': { 'timeRange': { 'startTime': '2025-01-01T00:00:00Z', 'endTime': '2025-01-02T00:00:00Z' } } } } ) print(f"Batch Evaluation ID: {response['batchEvaluationId']}")

Surveillance de l'utilisation du KMS pour les évaluations par lots

Les noms CloudTrail d'événements suivants apparaissent pour les opérations KMS d'évaluation par lots :

  • GenerateDataKey— Lors de l'écriture d'une sortie d'évaluation par lots chiffrée dans S3 (configuration de la source de données, métadonnées de session, résultats d'évaluation). Le encryptionContext champ contientaws:bedrock-agentcore:batchEvaluationArn.

  • Decrypt— Lors de la lecture de la sortie d'évaluation par lots chiffrée de S3.

  • DescribeKey— Lors de la validation de la clé au moment de la création de l'évaluation par lots.

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é devient indisponible

Si vous désactivez ou supprimez la clé KMS gérée par le client utilisée lors d'une évaluation par lots :

  • StartBatchEvaluation— Échec lors de la validation avecValidationException.

  • GetBatchEvaluation— Renvoie des métadonnées (nom, statut, horodatage) mais les résultats d'évaluation stockés dans des objets S3 chiffrés ne peuvent pas être lus par le service.

  • ListBatchEvaluations— Succès car le listage renvoie uniquement des métadonnées et ne nécessite aucune opération KMS.

  • StopBatchEvaluation— Succès car l'arrêt ne nécessite pas de déchiffrer les données.

  • DeleteBatchEvaluation— Succès car la suppression de l'objet S3 ne nécessite pas de déchiffrement KMS.

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

Les opérations du cycle de vie d'évaluation par lots décrites ci-dessus correspondent aux commandes de la AgentCore CLI. Les archive commandes stop et ciblent la tâche via l'-i, --id <id>option. La view batch-evaluation commande prend l'ID comme argument positionnel :

  • StartBatchEvaluationagentcore run batch-evaluation --kms-key <arn> (utilisation -r/--runtime et-e/--evaluator)

  • GetBatchEvaluationagentcore view batch-evaluation <id>

  • ListBatchEvaluationsagentcore view batch-evaluation ou agentcore batch-evaluations history

  • StopBatchEvaluationagentcore stop batch-evaluation -i <id>

  • DeleteBatchEvaluationagentcore archive batch-evaluation -i <id>