View a markdown version of this page

Chiffrez votre AgentCore passerelle avec une clé KMS gérée par le client - Amazon Bedrock AgentCore

Chiffrez votre AgentCore passerelle avec une clé KMS gérée par le client

Par défaut, Gateway chiffre vos données au repos à l'aide d'une clé de service de gestion des AWS clés gérée par le service. Toutefois, vous pouvez éventuellement fournir votre propre clé KMS gérée par le client pour chiffrer les données au repos lorsque vous :

  • Créez une passerelle.

  • Mettez à jour les configurations d'une passerelle.

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

  • Faites pivoter la clé selon votre propre horaire

  • Contrôlez l'accès à la clé par le biais de politiques IAM

  • Désactiver ou supprimer la clé lorsqu'elle n'est plus nécessaire

  • Auditez l'utilisation des clés par le biais de CloudWatch journaux et AWS CloudTrail

Pour plus d'informations, consultez le Guide du développeur du service de gestion des AWS clés.

Note

Si vous choisissez d'utiliser une clé gérée par le client, vous êtes responsable de la gestion de la clé et de ses autorisations. Si la clé est désactivée ou supprimée, ou si Gateway perd l'autorisation d'utiliser la clé, vous perdrez l'accès aux données chiffrées.

Conditions préalables au chiffrement de votre passerelle AgentCore

Avant de chiffrer votre passerelle, assurez-vous de remplir les conditions préalables suivantes :

  • Vous avez accès à une clé KMS. Pour plus d'informations sur la création d'une clé KMS, consultez la section Création d'une clé KMS.

  • La clé KMS est associée à une politique clé qui autorise les autorisations suivantes :

    • Autorisations permettant au rôle de service de passerelle d'effectuer les actions suivantes :

      • km : CreateGrant

      • km : DescribeKey

      • kms:Decrypt

      • km : GenerateDataKey

    • (Si vous activez CloudWatch les journaux pour votre passerelle) Autorisations permettant au service CloudWatch Logs de déchiffrer la clé.

      Pour plus d'informations sur le contrôle des autorisations IAM pour une clé KMS, consultez la section Accès aux clés KMS et autorisations dans le Guide du développeur du service de gestion des AWS clés.

Exemple de politique clé

L'exemple de politique suivant fournit les autorisations nécessaires pour chiffrer une passerelle et utiliser une passerelle cryptée. La quatrième instruction permet également d'enregistrer dans CloudWatch les journaux l'utilisation des clés pour la passerelle cryptée. La politique contient des clés de condition conformes aux meilleures pratiques de sécurité.

{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowServiceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] } } }, { "Sid": "AllowServiceRoleDecryptKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowServiceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/GatewayServiceRole" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "bedrock-agentcore.us-east-1.amazonaws.com" ], "kms:GrantConstraintType": "EncryptionContextSubset" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey" ] }, "StringLike": { "kms:EncryptionContext:aws:bedrock-agentcore-gateway:arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/GatewayId" } } }, { "Sid": "AllowKMSDecryptionLogging", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:123456789012:*" } } } ] }

La politique contient les déclarations suivantes :

  • AllowServiceRoleDescribeKKey— Permet au principal spécifié de décrire la clé si la demande est faite par le biais du AgentCore service. Remplacez les valeurs dans les champs suivants :

    • Principal— Remplacez la AWS valeur par l'ARN réel de votre rôle de service de passerelle.

    • Condition— Dans le kms:ViaService tableau, us-east-1 remplacez-le par la AWS région pour laquelle vous souhaitez autoriser la description de la clé.

  • AllowServiceRoleDecryptKey— Permet au principal spécifié de déchiffrer la clé si la demande est faite via le AgentCore service et si l'ARN de la passerelle à laquelle la demande est faite correspond à celui du kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn champ. Remplacez les valeurs suivantes :

    • Principal— Remplacez la AWS valeur par l'ARN réel de votre rôle de service de passerelle.

    • Condition— Procédez comme suit :

      • Dans le kms:ViaService tableau, remplacez-le us-east-1 par la AWS région réelle pour laquelle vous souhaitez autoriser le déchiffrement de la clé.

      • Remplacez la kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valeur par l'ARN réel de votre passerelle.

  • AllowServiceRoleCreateGrant— Permet au principal spécifié de créer une autorisation pour une clé si la demande est faite via le AgentCore service et si l'ARN de la passerelle à laquelle la demande est faite correspond à celui du kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn champ. Remplacez les valeurs suivantes :

    • Principal— Remplacez la AWS valeur par l'ARN réel de votre rôle de service de passerelle.

    • Condition— Procédez comme suit :

      • Dans le kms:ViaService tableau, remplacez-le us-east-1 par la AWS région réelle pour laquelle vous souhaitez autoriser le déchiffrement de la clé.

      • Remplacez la kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valeur par l'ARN réel de votre passerelle (si vous souhaitez autoriser).

  • AllowKMSDecryptionLogging— Permet au principal spécifié de déchiffrer une clé KMS gérée par le client afin d'auditer l'utilisation des clés via les journaux. CloudWatch Dans la kms:EncryptionContext:SourceArn valeur, remplacez us-east-1 et 123456789012 les valeurs par votre AWS région et votre identifiant de compte réels.

Exemple
Console
  1. ====== Pour chiffrer votre passerelle avec une clé KMS gérée par le client

  2. Suivez les étapes de la console décrites dans la section Créer une AgentCore passerelle Amazon Bedrock et développez la clé KMS (section facultative).

  3. Choisissez Personnaliser les paramètres de chiffrement (avancés).

  4. Sélectionnez une clé KMS et confirmez ses détails.

    Note

    Si vous ne voyez pas votre clé KMS, consultez les conditions préalables au chiffrement de votre AgentCore passerelle et vérifiez que les autorisations sont correctement configurées.

  5. Suivez les étapes restantes de la console.

CLI
  1. Pour chiffrer votre passerelle à l'aide de la AWS CLI, incluez-le kms-key-arn lorsque vous envoyez l'une des demandes suivantes via un client du plan AgentCore de contrôle. :

    • créer une passerelle

    • passerelle de mise à jour

      L'exemple suivant montre un exemple de demande CLI pour créer une passerelle avec une clé AWS KMS spécifiée à l'aide de l'kms-key-arnargument :

      aws bedrock-agentcore-control create-gateway \ --name "MyGateway" \ --role-arn "arn:aws:iam::123456789012:role/GatewayRole" \ --protocol-type "MCP" \ --kms-key-arn "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" \ --authorizer-type "CUSTOM_JWT" \ --authorizer-configuration '{ "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } }'
Python (Boto3)
  1. Pour chiffrer votre passerelle à l'aide du SDK AWS Python (Boto3), incluez-le kms-key-arn lorsque vous envoyez l'une des demandes suivantes via un AgentCore client du plan de contrôle. :

    • créer_gateway

    • gateway de mise à jour

      L'exemple suivant montre un exemple de demande Boto3 pour créer une passerelle avec une clé AWS KMS spécifiée à l'aide de l'kmsKeyArnargument :

      import boto3 # Create client agentcore_client = boto3.client('bedrock-agentcore-control') # Create gateway and specify gateway = agentcore_client.create_gateway( name="MyGateway", roleArn="arn:aws:iam::123456789012:role/GatewayRole", protocolType="MCP", kmsKeyArn="arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" authorizerType="CUSTOM_JWT", authorizerConfiguration= { "customJWTAuthorizer": { "allowedAudience": ["myAudience"], "discoveryUrl": "https://example.com/.well-known/openid-configuration" } } )