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 elAWSvalor por el ARN real de su función de servicio de puerta de enlace. -
Condition— En lakms:ViaServicematriz,us-east-1sustitú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-arnReemplace los siguientes valores:-
Principal— Sustituya elAWSvalor por el ARN real de su función de servicio de puerta de enlace. -
Condition— Haga lo siguiente:-
En la
kms:ViaServicematriz,us-east-1sustitúyala por la AWS región real para la que deseas permitir que se descifre la clave. -
Sustituya el
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnvalor 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-arnReemplace los siguientes valores:-
Principal— Sustituya elAWSvalor por el ARN real de su función de servicio de puerta de enlace. -
Condition— Haga lo siguiente:-
En la
kms:ViaServicematriz,us-east-1sustitúyala por la AWS región real para la que deseas permitir que se descifre la clave. -
Sustituya el
kmsEncryptionContext:aws:bedrock-agentcore-gateway-arnvalor 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:SourceArnvalor, sustituyaus-east-1y123456789012los valores por su AWS región e ID de cuenta reales.