Chiffrement des recommandations
Lorsque vous spécifiez une recommandation, kmsKeyArn le service chiffre la configuration de la recommandation et le résultat de la recommandation à l'aide du chiffrement d'enveloppe avec le SDK de AWS chiffrement. Toutes les autres métadonnées de recommandation (nom, type, statut) restent cryptées avec la clé AWS détenue.
Le kmsKeyArn est spécifié au moment de la création viaStartRecommendation.
Comment ça marche
Le chiffrement des recommandations utilise le SDK AWS de chiffrement pour le chiffrement des enveloppes. Lorsque le service écrit ou lit des données de recommandation, il appelle KMS pour générer ou déchiffrer des clés de données. Le résultat de la recommandation est également stocké dans S3 en SSE-KMS utilisant la même clé gérée par le client.
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 de recommandation.
Lorsque le flux de travail de recommandation s'exécute de manière asynchrone, le principal de service (bedrock-agentcore.amazonaws.com) déchiffre la configuration et chiffre le résultat. Le directeur du service doit disposer kms:GenerateDataKey d'une kms:Decrypt autorisation dans la politique clé.
AgentCore les optimisations 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 la recommandation.
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 recommandations. La stratégie comporte trois déclarations :
-
AllowCallerAccess— Permet à l'utilisateur ou au rôle IAM de valider la clé via
DescribeKey. -
AllowCallerCryptoOps— Permet à l'utilisateur ou au rôle IAM de chiffrer et de déchiffrer, en fonction du contexte de chiffrement.
-
AllowServicePrincipalAccess— Permet au principal du AgentCore service de chiffrer et de déchiffrer les données de recommandation pendant le flux de travail de recommandation asynchrone, défini par compte source et ARN source.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCallerAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowCallerCryptoOps", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRecommendationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*" } } }, { "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:recommendation/*" } } } ] }
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 la recommandation.111122223333Remplacez-le par votre identifiant de compte etMyRecommendationRolepar le rôle ou l'utilisateur IAM qui lance les recommandations. -
AllowCallerCryptoOps— Accorde le rôle
kms:GenerateDataKeyet leskms:Decryptautorisations IAM, dans le cadre du contexte deaws:bedrock-agentcore:recommendationArnchiffrement. Remplacez111122223333MyRecommendationRole, etus-east-1par vos valeurs. Pour autoriser l'accès à toutes les recommandations de votre compte, utilisez un caractère générique avecStringLike:arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/*. -
AllowServicePrincipalAccess— Accorde le principal du AgentCore service
kms:GenerateDataKeyetkms:Decryptles autorisations nécessaires pour chiffrer et déchiffrer les données de recommandation pendant le flux de travail asynchrone. Délimité par compte source et ARN source (aws:SourceArn) pour éviter les attaques secondaires confuses. Remplacezus-east-1et111122223333par 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 optimisations incluent le contexte de chiffrement suivant dans toutes les opérations KMS :
{ "aws:bedrock-agentcore:recommendationArn": "arn:aws:bedrock-agentcore:us-east-1:111122223333:recommendation/recommendation-id" }
Vous pouvez utiliser ce contexte de chiffrement dans des conditions de politique clés pour limiter les opérations KMS à des recommandations 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.
Commencer une recommandation avec une clé KMS gérée par le client
Spécifiez le kmsKeyArn paramètre lors de l'appel StartRecommendation :
Exemple
Surveillance de l'utilisation du KMS pour obtenir des recommandations
Les noms CloudTrail d'événements suivants apparaissent pour les opérations KMS recommandées :
-
GenerateDataKey— Lors du lancement d'une recommandation (configuration de chiffrement) et lorsque le flux de travail de recommandation est terminé (chiffrement du résultat). LeencryptionContextchamp contientaws:bedrock-agentcore:recommendationArn. -
Decrypt— Lorsque le flux de travail de recommandation traite la configuration ou lorsqu'il récupère les résultats des recommandations. -
DescribeKey— Lors de la validation de la clé au moment de la création de la recommandation.
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 une recommandation :
-
StartRecommendation— Échoue lors de la validation avec
ValidationException. -
GetRecommendation— Impossible d'
ValidationExceptionindiquer que la clé KMS est désactivée ou supprimée. -
ListRecommendations— Succès car le listage renvoie uniquement des métadonnées et ne nécessite aucune opération KMS.
-
DeleteRecommendation— Succès car la suppression ne nécessite pas le déchiffrement des données de recommandation.