Chiffrement des jeux
Lorsque vous spécifiez un dans kmsKeyArn un ensemble de données, le service chiffre tous les exemples stockés à l'aide du chiffrement côté serveur S3 avec KMS (). SSE-KMS Cela inclut des exemples dans le brouillon et dans toutes les versions publiées.
Le kmsKeyArn est immuable après la création du jeu de données : vous ne pouvez ni le modifier ni le supprimer.
Comment ça marche
Le chiffrement des ensembles de données utilise S3 SSE-KMS. Lorsque le service écrit ou lit le contenu d'un ensemble de données 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 lors de l'ingestion.
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 le jeu de données.
Politique clé requise
La politique clé suivante accorde les autorisations minimales requises pour le chiffrement des ensembles de données. Il comprend deux déclarations :
-
AllowCallerAccess— Accorde à l'utilisateur ou au rôle IAM qui appelle
CreateDatasetl'autorisation de valider et d'utiliser la clé. Le service effectue une vérification de fonctionnement à sec au moment de l'API pour vérifier que l'appelant dispose d'un accès KMS.111122223333Remplacez-le par votre identifiant de compte etMyDatasetRolepar le rôle ou l'utilisateur IAM qui gère les ensembles de données. -
AllowAgentCoreDatasetAccess— Accorde au principal du AgentCore service l'autorisation de chiffrer et de déchiffrer le contenu du jeu de données dans S3.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetAccess", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Note
Il s'agit de la politique minimale. Consultez la section Délimitation de l'accès pour connaître les conditions de sécurité recommandées.
Délimitation de l'accès
Vous pouvez ajouter des conditions pour limiter le moment où la clé peut être utilisée. Pour les ensembles de données, le service envoie le contexte suivant avec les opérations d'écriture KMS (GenerateDataKey) :
-
aws:SourceAccount— L'ID du AWS compte propriétaire de l'ensemble de données. -
aws:SourceArn— L'ARN de l'ensemble de données en cours de chiffrement. -
kms:EncryptionContext:aws:bedrock-agentcore:datasetArn— L'ARN du jeu de données comme contexte de chiffrement.
La politique suivante divise les autorisations en écriture (conditionnée) et en lecture (non conditionnée) :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyDatasetRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "AllowAgentCoreDatasetWrite", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "StringLike": { "aws:SourceArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*", "kms:EncryptionContext:aws:bedrock-agentcore:datasetArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/*" } } }, { "Sid": "AllowAgentCoreDatasetRead", "Effect": "Allow", "Principal": { "Service": "bedrock-agentcore.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
Important
N'ajoutez aws:SourceAccount aucune aws:SourceArn condition à la déclaration lue (Decrypt,DescribeKey). Les téléchargements de jeux de données utilisent des URL S3 présignées, et le client de téléchargement n'envoie pas d'en-têtes de contexte source. L'ajout de ces conditions aux opérations de lecture entraîne des échecs de téléchargement.
111122223333Remplacez-le par votre numéro de compte et us-east-1 par votre AWS région. Pour étendre la portée à un ensemble de données spécifique, remplacez le caractère générique par l'ID du jeu de données :arn:aws:bedrock-agentcore:us-east-1:111122223333:dataset/my-dataset-id.
Création d'un ensemble de données à l'aide d'une clé KMS gérée par le client
Spécifiez le kmsKeyArn paramètre lors de l'appel CreateDataset :
Exemple
Surveillance de l'utilisation du KMS pour les ensembles de données
Les noms d' CloudTrail événements suivants apparaissent pour les opérations KMS des ensembles de données :
-
GenerateDataKey— Lors de la création d'un jeu de données, de l'ajout d'exemples, de la mise à jour d'exemples ou de la publication d'une version. LeencryptionContextchamp contientaws:bedrock-agentcore:datasetArn. -
Decrypt— Lors de la lecture du contenu du jeu de données (GetDataset, ListDatasetExamples) ou lors du téléchargement d'URL présignées. -
DescribeKey— Lors de la validation de la clé lors de la création du jeu de données.
Comportement lorsqu'une clé n'est plus disponible
Si vous désactivez ou supprimez la clé KMS gérée par le client utilisée par un ensemble de données :
-
CreateDataset— Échoue lors de la validation avec
ValidationException. -
AddDatasetExamples, UpdateDatasetExamples, CreateDatasetVersion — Échoue
ValidationExceptionau moment de l'API. -
GetDataset— Impossible d'
ValidationExceptionindiquer que la clé KMS est désactivée ou supprimée. -
ListDatasetExamples— Impossible d'
ValidationExceptionindiquer que la clé KMS est désactivée ou supprimée. -
DeleteDataset— Succès car la suppression de l'objet S3 ne nécessite pas de déchiffrement KMS.