View a markdown version of this page

Cifre su AgentCore puerta de enlace con una clave de KMS administrada por el cliente - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cifre su AgentCore puerta de enlace con una clave de KMS administrada por el cliente

De forma predeterminada, Gateway cifra los datos en reposo mediante una clave del servicio de administración de AWS claves administrada por el servicio. Sin embargo, si lo desea, puede proporcionar su propia clave de KMS administrada por el cliente para cifrar los datos en reposo cuando:

  • Crea una puerta de enlace.

  • Actualice las configuraciones de una puerta de enlace.

El uso de una clave gestionada por el cliente le brinda más control sobre el proceso de cifrado, lo que incluye la posibilidad de:

  • Cambie la clave según su propio cronograma

  • Controle el acceso a la clave mediante políticas de IAM

  • Deshabilita o elimina la clave cuando ya no sea necesaria

  • Audite el uso de la clave mediante CloudWatch registros y AWS CloudTrail

Para obtener más información, consulte la Guía para desarrolladores del servicio de administración de AWS claves.

nota

Si eliges usar una clave gestionada por el cliente, eres responsable de administrar la clave y sus permisos. Si la clave se deshabilita o se elimina, o si Gateway pierde el permiso para usarla, perderá el acceso a los datos cifrados.

Requisitos previos para cifrar la puerta de enlace AgentCore

Antes de cifrar la puerta de enlace, asegúrese de cumplir los siguientes requisitos previos:

  • Tiene acceso a una clave de KMS. Para obtener información sobre la creación de una clave de KMS, consulte Crear una clave de KMS.

  • La clave de KMS tiene una política de claves adjunta que permite los siguientes permisos:

    • Permisos que permiten al rol de servicio de puerta de enlace realizar las siguientes acciones:

      • kms: CreateGrant

      • km: DescribeKey

      • kms:Decrypt

      • km: GenerateDataKey

    • (Si habilita CloudWatch los registros para su puerta de enlace) Permisos que permiten al servicio de CloudWatch registros descifrar la clave.

      Para obtener más información sobre cómo controlar los permisos de IAM para una clave de KMS, consulte el acceso y los permisos de las claves de KMS en la Guía para desarrolladores del servicio de administración de AWS claves.

Política de claves de ejemplo

El siguiente ejemplo de política proporciona los permisos necesarios para cifrar una puerta de enlace y usar una puerta de enlace cifrada. La cuarta instrucción también permite registrar en CloudWatch los registros el uso de las claves para la puerta de enlace cifrada. La política contiene claves de condición para cumplir con las prácticas recomendadas de seguridad.

{ "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 política contiene las siguientes declaraciones:

  • AllowServiceRoleDescribeKKey— Permite al principal especificado describir la clave si la solicitud se realiza a través del AgentCore servicio. Sustituya los valores en los siguientes campos:

    • Principal— Sustituya el AWS valor por el ARN real de su función de servicio de puerta de enlace.

    • Condition— En la kms:ViaService matriz, us-east-1 sustitúyalo por la AWS región real para la que desea permitir que se describa la clave.

  • AllowServiceRoleDecryptKey— Permite al principal especificado descifrar la clave si la solicitud se realiza a través del AgentCore servicio y si el ARN de la puerta de enlace a la que se realiza la solicitud coincide con el del campo. kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn Reemplace los siguientes valores:

    • Principal— Sustituya el AWS valor por el ARN real de su función de servicio de puerta de enlace.

    • Condition— Haga lo siguiente:

      • En la kms:ViaService matriz, us-east-1 sustitúyala por la AWS región real para la que desea permitir que se descifre la clave.

      • Sustituya el kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valor por el ARN real de su puerta de enlace.

  • AllowServiceRoleCreateGrant— Permite al principal especificado crear una concesión para una clave si la solicitud se realiza a través del AgentCore servicio y si el ARN de la puerta de enlace a la que se realiza la solicitud coincide con el del campo. kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn Reemplace los siguientes valores:

    • Principal— Sustituya el AWS valor por el ARN real de su función de servicio de puerta de enlace.

    • Condition— Haga lo siguiente:

      • En la kms:ViaService matriz, us-east-1 sustitúyala por la AWS región real para la que desea permitir que se descifre la clave.

      • Sustituya el kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valor por el ARN real de su puerta de enlace (si quiere permitirlo).

  • AllowKMSDecryptionLogging— Permite al principal especificado descifrar una clave de KMS administrada por el cliente para auditar el uso de la clave mediante registros. CloudWatch En el kms:EncryptionContext:SourceArn valor, sustituya «us-east-1y123456789012» por su AWS región y su ID de cuenta reales.

ejemplo
Console
  1. ====== Para cifrar su puerta de enlace con una clave de KMS administrada por el cliente

  2. Siga los pasos de la consola que se indican en Crear una AgentCore puerta de enlace de Amazon Bedrock y amplíe la clave de KMS (sección opcional).

  3. Seleccione Personalizar la configuración de cifrado (avanzada).

  4. Seleccione una clave de KMS y confirme sus detalles.

    nota

    Si no ves tu clave de KMS, consulta los requisitos previos para cifrar la AgentCore puerta de enlace y comprueba que los permisos estén configurados correctamente.

  5. Continúe con los pasos restantes de la consola.

CLI
  1. Para cifrar la puerta de enlace mediante la AWS CLI, incluya la kms-key-arn cuando envíe cualquiera de las siguientes solicitudes a través de un cliente del plano AgentCore de control. :

    • crear puerta de enlace

    • puerta de enlace de actualización

      El siguiente ejemplo muestra un ejemplo de solicitud de CLI para crear una puerta de enlace con una clave de AWS KMS especificada mediante el kms-key-arn argumento:

      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. Para cifrar la puerta de enlace mediante el SDK de AWS Python (Boto3), inclúyala kms-key-arn al enviar cualquiera de las siguientes solicitudes a través de un AgentCore cliente del plano de control. :

    • create_gateway

    • update_gateway

      El siguiente ejemplo muestra un ejemplo de solicitud de Boto3 para crear una puerta de enlace con una clave de AWS KMS especificada mediante el argumento: kmsKeyArn

      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" } } )