View a markdown version of this page

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

Cifre su AgentCore puerta de enlace con una clave 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 gestionada por el servicio. Sin embargo, si lo desea, puede proporcionar su propia clave KMS administrada por el cliente para cifrar los datos en reposo si:

  • Cree una puerta de enlace.

  • Actualice las configuraciones de una puerta de enlace.

El uso de una clave gestionada por el cliente le proporciona un mayor control sobre el proceso de cifrado, incluida la posibilidad de:

  • Gire la clave según su propio horario

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

  • Desactive o elimine 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 de AWS Key Management Service.

nota

Si decide usar una clave administrada por el cliente, usted es responsable de administrar la clave y sus permisos. Si la clave se deshabilita o se elimina, o si Gateway pierde el permiso para usarla, usted 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 KMS. Para obtener información sobre cómo crear una clave de KMS, consulte Crear una clave de KMS.

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

    • Permisos que permiten a la función 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 utilizar una puerta de enlace cifrada. La cuarta afirmación también permite a CloudWatch Logs registrar el uso de claves para la puerta de enlace cifrada. La política contiene claves de condición para cumplir con las mejores prácticas 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 que el director especificado describa 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 desee permitir que se describa la clave.

  • AllowServiceRoleDecryptKey— Permite que el principal especificado descifre 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 deseas 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 deseas permitir que se descifre la clave.

      • Sustituya el kmsEncryptionContext:aws:bedrock-agentcore-gateway-arn valor por el ARN real de la puerta de enlace (si lo desea permitir).

  • AllowKMSDecryptionLogging— Permite al director especificado descifrar una clave KMS administrada por el cliente para auditar el uso de la clave a través de los registros. CloudWatch En el kms:EncryptionContext:SourceArn valor, sustituya us-east-1 y 123456789012 los valores por su AWS región e ID de cuenta reales.

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

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

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

  4. Seleccione una clave KMS y confirme sus detalles.

    nota

    Si no ve su clave KMS, consulte los requisitos previos para cifrar la AgentCore puerta de enlace y compruebe que los permisos estén configurados correctamente.

  5. Continúe con el resto de los pasos de la consola.

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

    • create_gateway

    • update_gateway

      El siguiente ejemplo muestra un ejemplo de solicitud de Boto3 para crear una puerta de enlace con una clave 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" } } )