Chiffrement des ressources de l’agent à l’aide de clés gérées par le client (CMK) - Amazon Bedrock

Chiffrement des ressources de l’agent à l’aide de clés gérées par le client (CMK)

Vous pouvez à tout moment créer une clé gérée par le client pour chiffrer les informations de votre agent à l’aide des informations d’agent suivantes fournies lors de la création de votre agent.

Note

Les ressources d’agent suivantes ne seront cryptées que pour les agents créés après le 22 janvier 2025.

Action Champs activés par CMK Description
CreateAgent instruction Indique à l’agent ce qu’il doit faire et comment il doit interagir avec les utilisateurs
basePromptTemplate Définit le modèle d’invite par lequel remplacer le modèle d’invite par défaut
CreateAgentActionGroup description Description du groupe d’action
apiSchema Contient les détails de l’apiSchema du groupe d’actions de l’agent, ou les données utiles au format JSON ou YAML définissant le schéma
s3 Contient des détails sur l’objet Amazon S3 contenant l’apiSchema du groupe d’actions de l’agent
functionSchema Contient les détails du schéma de fonction du groupe d’actions de l’agent ou des données utiles au format JSON-YAML définissant le schéma
AssociateAgentKnowledgeBase description Description des raisons pour lesquelles l’agent doit utiliser la base de connaissances
AssociateAgentCollaborator collaborationInstruction Instructions pour l’agent collaborateur

Pour utiliser une clé gérée par le client, procédez comme suit :

  1. Créez une clé gérée par le client avec AWS Key Management Service.

  2. Créez une stratégie de clé et attachez-la à la clé gérée par le client

Création d’une clé gérée par le client

Vous pouvez créer une clé symétrique gérée par le client à l’aide de la console de gestion AWS ou des API AWS Key Management Service.

Assurez-vous d’abord que vous disposez des autorisations CreateKey, puis suivez les étapes de la rubrique Création d’une clé symétrique gérée par le client dans le Guide du développeur AWS Key Management Service.

Stratégie de clé : les stratégies de clé contrôlent l’accès à votre clé gérée par le client. Chaque clé gérée par le client doit avoir exactement une stratégie de clé, qui contient des instructions qui déterminent les personnes pouvant utiliser la clé et comment elles peuvent l’utiliser. Lorsque vous créez votre clé gérée par le client, vous pouvez spécifier une stratégie de clé. Pour plus d’informations, consultez Gestion de l’accès à la clé gérée par le client dans le Guide du développeur AWS Key Management Service.

Si vous avez créé votre agent après le 22 janvier 2025 et que vous souhaitez utiliser une clé gérée par le client pour chiffrer les informations de votre agent, assurez-vous que l’utilisateur ou le rôle qui appelle les opérations d’API de l’agent dispose des autorisations suivantes dans la stratégie de clé :

  • kms:GenerateDataKey : renvoie une clé de données symétrique unique à utiliser en dehors d’AWS KMS.

  • KMS:Decrypt : déchiffre le texte chiffré par une clé KMS.

La création de la clé renvoie un Arn pour la clé que vous pouvez utiliser en tant que customerEncryptionKeyArn, lors de la création de votre agent.

Création d’une stratégie de clé et association à la clé gérée par le client

Si vous chiffrez les ressources d’agent à l’aide d’une clé gérée par le client, vous devez configurer une stratégie basée sur l’identité et une stratégie basée sur les ressources pour permettre à Amazon Bedrock de chiffrer et de déchiffrer les ressources de l’agent en votre nom.

Politique basée sur l’identité

Attacher la stratégie suivante basée sur l’identité à un rôle IAM ou à un utilisateur avec les autorisations requises pour envoyer des appels à des API d’agent qui chiffrent et déchiffrent les ressources de l’agent en votre nom. Cette stratégie valide que l’utilisateur effectuant un appel d’API dispose des autorisations AWS KMS. Remplacez ${region}, ${account-id}, ${agent-id} et ${key-id} par les valeurs appropriées.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EncryptAgents", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }

Politique basée sur une ressource

Attacher la stratégie basée sur les ressources suivante à votre clé AWS KMS uniquement si vous créez des groupes d’action dans lesquels le schéma d’Amazon S3 est chiffré. Il n’est pas nécessaire d’attacher une stratégie basée sur les ressources pour les autres cas d’utilisation.

Pour attacher la stratégie basée sur les ressources suivante, modifiez la portée des autorisations si nécessaire et remplacez les valeurs ${region}, ${account-id}, ${agent-id} et ${key-id} par les valeurs appropriées.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Allow account root to modify the KMS key, not used by Amazon Bedrock.", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}" }, { "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/${key-id}", "Condition": { "StringEquals": { "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:us-east-1:123456789012:agent/${agent-id}" } } } ] }

Modification de la clé gérée par le client

Les agents Amazon Bedrock ne prennent pas en charge le rechiffrement des agents versionnés lorsque la clé gérée par le client associée à l’agent DRAFT est modifiée ou lorsque vous passez d’une clé gérée par le client à une clé détenue par AWS. Seules les données pour la ressource DRAFT seront rechiffrées avec la nouvelle clé.

Assurez-vous de ne pas supprimer les autorisations pour les clés d’un agent versionné si vous l’utilisez pour traiter des données de production.

Pour afficher et vérifier les clés utilisées par une version, appelez GetAgentVersion et vérifiez customerEncryptionKeyArn dans la réponse.