View a markdown version of this page

Cifrar eventos en un bus de eventos personalizado - Amazon EventBridge

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.

Cifrar eventos en un bus de eventos personalizado

Un bus cifra todo lo que almacena: las cargas útiles de los eventos, los metadatos de los eventos, los filtros de suscriptores y la configuración de los objetivos de los suscriptores. De forma predeterminada, utiliza una clave propia AWS y usted no configura nada. En su lugar, si prefiere cifrar un bus con su propia AWS KMS clave, EncryptionConfiguration.KmsKeyIdentifier configúrelo al crear o actualizar el bus, por ejemploaws eventsv2 create-event-bus --name orders --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab, y añada las tres sentencias Redacción de la política de claves a la política de claves.

Elegir la clave que cifra un bus

Omite EncryptionConfiguration y EventBridge cifra el bus con AES de 256 bits con una clave propia. AWS No puede ver ni administrar esa clave, su uso no aparece en sus CloudTrail registros, no cuesta nada, no se descuenta de sus AWS KMS cuotas y AWS la rota mensualmente. DescribeEventBusdevuelve un no EncryptionConfiguration para un autobús de este tipo. Para obtener más información, consulte AWS owned keys en la AWS KMS Guía para desarrolladores de .

Configure EncryptionConfiguration.KmsKeyIdentifier y EventBridge cifre el bus con su clave gestionada por el cliente. A continuación, usted controla la política de claves, la rotación, la desactivación y la eliminación, y comprueba cada uso que se hace de la clave. CloudTrail La clave conlleva el pago AWS KMS mensual de la clave y los cargos por la solicitud. Dado que EventBridge cifra y descifra los eventos de forma local con una clave de sucursal en caché (consulteCómo usa tu llave el autobús), realiza algunas AWS KMS solicitudes por bus por ventana de caché más rotación; el recuento de solicitudes no aumenta con el volumen de eventos. Para obtener más información, consulte Precios de AWS KMS.

KmsKeyIdentifieracepta un identificador de clave, un ARN de clave, un nombre de alias, por ejemploalias/orders, o un ARN de alias. EventBridge califica un identificador de clave simple o un nombre de alias en tu cuenta y región, por lo que una clave de otra cuenta debe tener el nombre de su clave ARN completa. Un alias se convierte en su clave cuando creas o actualizas el bus, y las respuestas de creación y descripción devuelven el ARN de esa clave. Re-pointing el alias posterior no cambia la clave que usa un bus. La clave debe ser una clave de cifrado simétrica (SYMMETRIC_DEFAULTuso de la claveENCRYPT_DECRYPT); EventBridge rechaza las claves asimétricas y HMAC. Una clave multirregional funciona como una clave normal: asigne un nombre a la réplica en la región del autobús, ya que no EventBridge replica sus datos ni su material de claves en todas las regiones. Se admiten las claves con material clave importado y las claves almacenadas en un almacén de claves externo.

aws eventsv2 create-event-bus \ --name orders \ --encryption-configuration KmsKeyIdentifier=arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

La clave cifra las cargas útiles de los eventos y los metadatos que conserva el bus, las copias guardadas para cada suscriptor durante la entrega y los filtros de los suscriptores y la configuración de los objetivos. Hay cuatro elementos que no se cifran con su clave porque los EventBridge necesita para enrutar y buscar eventos: el nombre del bus, el ARN y el ID de la cuenta; el ID del grupo de eventos que solicita la entrega FIFO, por lo que no debe incluir datos confidenciales en él; el ID de deduplicación, que se EventBridge almacena como un hash unidireccional; y los resultados de las coincidencias internas y los números de secuencia. Los servicios de almacenamiento cifran los datos inactivos con sus propias claves.

Cómo usa tu llave el autobús

Cuando configuras una clave gestionada por el cliente, EventBridge creas una clave de sucursal para el bus: una clave intermedia, que se almacena en una tabla gestionada por el servicio y que contiene tu AWS KMS clave, siguiendo el conjunto de claves jerárquicas del SDK de AWS cifrado. EventBridge obtiene una clave de datos de la clave de sucursal para cada evento, por lo que cifra y descifra los eventos de forma local sin necesidad de realizar una llamada por evento. AWS KMS

  • Cuando publicas un evento, lo EventBridge cifra con la clave de sucursal del bus antes de escribirlo en el almacenamiento.

  • Cuando EventBridge entrega un evento, lo descifra para evaluar los filtros y entregarlo. El objetivo recibe el evento descifrado; el cifrado en el destino es responsabilidad del servicio de destino.

  • EventBridge almacena en caché la clave de sucursal en la memoria durante un máximo de 15 minutos. Cuando la caché caduca, recurre a kms:Decrypt tu clave para volver a desempaquetar la clave de bifurcación.

  • EventBridge crea una nueva versión de la clave de sucursal aproximadamente cada 30 días y conserva las versiones anteriores, de modo que los eventos escritos anteriormente permanecen legibles durante el período de retención del bus.

EventBridge llega a tu clave por dos rutas, y la política de claves debe permitir ambas. Para las comprobaciones que ejecuta mientras la llamada a la API está en curso, utiliza las credenciales reenviadas desde la llamada. En lo que respecta a las tareas que realiza una vez que se devuelve la llamada, como la entrega de eventos y la administración de la clave de sucursal, actúa como la principal del events.amazonaws.com servicio, ya que tus credenciales ya no están disponibles.

Redacción de la política de claves

Agregue tres instrucciones a la política de claves: una que permita a los responsables validar la clave, otra que les permita pasar las comprobaciones de EventBridge acceso con sus credenciales y otra para el principal de events.amazonaws.com servicio. Cada AWS KMS solicitud EventBridge de un bus contiene la clave de contexto de cifrado aws:events:event-busv2:arn junto con el ARN del bus en ambas rutas de acceso, por lo que la segunda y la tercera sentencia se refieren a un bus. El ARN de un bus termina en un sufijo que se EventBridge genera en el momento de la creación, así que compáralo con StringLike un final. /* Incluya también sus propias declaraciones clave de administración en la política. Sustituya la cuenta, la región, el rol y el nombre del bus en el siguiente ejemplo.

{ "Version": "2012-10-17", "Id": "eventbridge-custom-event-bus-key-policy", "Statement": [ { "Sid": "AllowKeyValidationThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyUseThroughEventBridge", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleRole" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "events.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } }, { "Sid": "AllowEventBridgeServicePrincipal", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:events:event-busv2:arn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } } } ] }

AllowKeyValidationThroughEventBridgepermite a sus directores validar la clave cuando crean o actualizan un bus. EventBridge llama kms:DescribeKey con sus credenciales para confirmar que la clave existe, es simétrica y está habilitada. DescribeKeyno toma ningún contexto de cifrado, por lo que esta declaración no lo tiene; la kms:ViaService limita a las solicitudes que se reciben. EventBridge

AllowKeyUseThroughEventBridgeautoriza las comprobaciones de acceso que EventBridge se realizan con sus credenciales antes de aceptar una configuración de claves y antes de escribir o leer los datos cifrados por usted, de modo que no pueda configurar una clave que no pueda utilizar el trabajo posterior y asincrónico del servicio. Las comprobaciones son simulacros AWS KMS : autorizan, pero no cifran ni descifran nada. Se facturan como AWS KMS solicitudes estándar y se deducen de tus cuotas de solicitudes; AWS KMS consulta la sección Cómo probar tus permisos en la AWS KMS Guía para desarrolladores. Cada operación comprueba las acciones que lleva a cabo su trabajo posterior:

  • CreateEventBuscon una clave gestionada por el clientekms:GenerateDataKeyWithoutPlaintext, comprueba kms:ReEncryptFromkms:ReEncryptTo, ykms:Decrypt, las acciones que realizan la creación de claves de sucursal y su posterior lectura.

  • UpdateEventBusque cambia la clave comprueba kms:Decrypt la clave actual kms:Encrypt y kms:Decrypt la nueva.

  • PutEventsy PutRawEvents en un autobús con una verificación de llaves gestionada por el clientekms:Decrypt. Un productor que no puede leer los acontecimientos del autobús tampoco puede escribirlos. Sin él, la llamada de publicación falla al AccessDeniedException asignar nombresKMS_ACCESS_DENIED.

  • CreateSubscribery UpdateSubscriber kms:Decrypt compruébelo, porque la configuración del suscriptor está cifrada con la clave del bus.

Por lo tanto, esta declaración debe cubrir todos los roles que creen o actualicen el bus, publiquen en él o generen suscriptores en él. Principal Enumera los ARN de las funciones o nombra al director raíz de la cuenta para delegar la decisión en las políticas de IAM de tu cuenta.

AllowEventBridgeServicePrincipalautoriza la ejecución del trabajo como EventBridge servicio una vez finalizada la llamada. kms:GenerateDataKeyWithoutPlaintextkms:ReEncryptFrom, y kms:ReEncryptTo crea la clave de bifurcación del bus y sus nuevas versiones al girar. kms:Decryptdesenvuelve la clave de sucursal para enviar los eventos, cargar la configuración del suscriptor y devolver la configuración descifrada al describir las llamadas. kms:Decryptkms:Encryptvuelve a empaquetar la clave de sucursal cuando cambias la clave del bus.

La clave puede estar en otra cuenta, por ejemplo, en una cuenta de seguridad central. Incluya las tres afirmaciones en la política de esa clave, con las funciones de la cuenta de bus como las principales de las dos primeras y el ARN del bus de la cuenta de bus en los valores del contexto de cifrado. Las funciones de la cuenta bus también necesitan políticas de identidad de IAM que permitan realizar las mismas AWS KMS acciones en el ARN clave, ya que el AWS KMS acceso entre cuentas requiere permiso por ambas partes. Asigne un nombre a la clave por el ARN de su clave completa.

Definir el alcance de la política clave en un solo bus

Para limitar una afirmación a un autobús, condicionala. kms:EncryptionContext:aws:events:event-busv2:arn Antes de que exista el autobús, StringLike utilícelo con un final/*, como en la política anterior. En el caso de un autobús existente, puedes hacer coincidir el ARN exacto con el que se DescribeEventBus devuelve. StringEquals Todas las solicitudes que realices con tus credenciales también se rellenarán kms:ViaService con un signoevents.region.amazonaws.com, por lo que puedes restringir a tus directores a que solo usen la clave de acceso directo. EventBridge

Las solicitudes que EventBridge realices como director de servicio se incluyen aws:SourceArn en el ARN del autobús y aws:SourceAccount en la cuenta del autobús. Añádelas para que AllowEventBridgeServicePrincipal EventBridge puedas usar tu clave solo en tus propios autobuses.

"Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:events:us-east-1:111122223333:event-busv2/orders/*" } }

Las operaciones individuales de publicación y entrega utilizan la clave de sucursal almacenada en caché y no vuelven a comprobar la política de claves por evento. Un cambio en la política de claves, incluido uno que elimine el acceso, afecta a EventBridge la gestión de datos de un bus cuando la clave de sucursal almacenada en caché caduca, en un plazo de 15 minutos.

Cambiar o quitar la llave de un autobús

Llama UpdateEventBus para cambiar un autobús de la llave propia a una clave AWS gestionada por el cliente, de una clave gestionada por el cliente a otra o de vuelta a la AWS clave propia. Para volver a la clave AWS que tenía, envía la clave EncryptionConfiguration actual y vacía, como--encryption-configuration '{}'. Si se omite EncryptionConfiguration por completo, el autobús conservará su clave actual.

El bus entra UPDATING mientras EventBridge vuelve a colocar la clave de bifurcación en la nueva clave y, a continuación, vuelve a. ACTIVE La clave de sucursal en sí misma no cambia, por lo que no EventBridge vuelve a cifrar ningún evento almacenado, el cambio se completa rápidamente, independientemente de lo que contenga el bus, y los eventos escritos anteriormente permanecen legibles independientemente del estado de la clave anterior. Una vez DescribeEventBus que muestre el bus ACTIVE con la nueva clave, puede deshabilitar la clave anterior.

Si EventBridge no puede usar la nueva clave, el bus se instala UPDATE_FAILED y sigue funcionando con la clave anterior: sigue aceptando y entregando eventos, y DescribeEventBus sigue informando sobre la clave anterior. La llave que ha fallado nunca se convierte en la llave del bus. UpdateEventBusVuelva a llamar con una clave que pueda usarse o con la misma clave después de corregir su política y el autobús volverá a funcionarACTIVE. Un bus cuya clave no se crea correctamente pasa a StateReason asignar un nombre a la AWS KMS denegación; ese estado solo DeleteEventBus acepta y UpdateEventBus se rechaza con un mensaje en el que se indican los estados que sí acepta. CREATE_FAILED [ACTIVE, UPDATE_FAILED] Corrija la política de claves, elimine el bus y vuelva a crearlo. Para ver los estados, consulteLos estados de los buses y lo que permite cada uno.

Si habilita la rotación automática de teclas en la clave, AWS KMS gira el material de respaldo detrás del ARN de la misma clave. La clave de bifurcación permanece envuelta por el material que la empaquetó por última vez, y la siguiente versión de la clave de bifurcación, que se crea aproximadamente cada 30 días, utiliza el material actual. Por lo tanto, una AWS KMS rotación llega a tu autobús en aproximadamente un mes.

Cuando la llave quede inutilizable

Si inhabilitas la clave, programas su eliminación o EventBridge eliminas el acceso a ella, el bus seguirá funcionando hasta que la clave de rama almacenada en caché caduque, en un plazo de 15 minutos. A continuación, se produce un error al publicar en el bus, se produce un error de AWS KMS acceso y la entrega se detiene. EventBridge no descarta los eventos que ya ha aceptado ni los envía a colas de espera; los detiene y los vuelve a intentar, ya que un error de acceso a una clave es una condición que se puede corregir. Cuando se restablece el acceso, la publicación y la entrega se reanudan por sí solas. No se pierde ningún evento a menos que la interrupción dure más que el período de retención del autobús.

La eliminación de la clave es permanente. Tras AWS KMS eliminar la clave configurada en un bus, ya no EventBridge se puede desempaquetar la clave de sucursal del bus y todos los eventos que aún estén almacenados en el bus son ilegibles durante el resto del período de retención. Desactive primero la clave, confirme el efecto y solo después programe la eliminación; consulte Eliminar AWS KMS claves en la AWS KMS Guía para desarrolladores. DeleteEventBusno necesita la clave: funciona correctamente cuando la clave se desactiva o se elimina.

Supervisar el uso de la clave en CloudTrail

Cada solicitud EventBridge que se hace a su cliente con la clave gestionada se registra en CloudTrail; consulte Registrar las llamadas a la AWS KMS API con CloudTrail. En la siguiente tabla se enumeran los eventos que se pueden esperar.

eventName Cuando Identidad de llamada
DescribeKey Validación de claves al crear y actualizar el bus Su director, a través de EventBridge
Decrypt,Encrypt,GenerateDataKeyWithoutPlaintext, ReEncrypt (ensayo en seco) Las comprobaciones de acceso se realizan en el bus: creación y actualización, publicación y creación y actualización de suscriptores Su director, a través de EventBridge
GenerateDataKeyWithoutPlaintext, ReEncrypt Creación de claves de sucursal en bus create y rotación de claves de sucursal aproximadamente cada 30 días events.amazonaws.com
Decrypt Las claves de sucursal se desempaquetan cuando la caché caduca: entrega del evento, carga de la configuración del suscriptor, descripción de las llamadas events.amazonaws.com
Decrypt y Encrypt La clave de sucursal se vuelve a empaquetar cuando se UpdateEventBus cambia la clave events.amazonaws.com

CloudTrail graba una ReEncrypt llamada como un evento; tanto los permisos como kms:ReEncryptFrom los kms:ReEncryptTo permisos la autorizan. Una entrada ejecutada en seco que DryRunOperationException se muestra es una comprobación de acceso correcta, no un error en la configuración; una que se muestra AccessDeniedException significa que la persona que llama no tiene el permiso que se está comprobando. La requestParameters.encryptionContext de todas las entradas se incluye en el ARN aws:events:event-busv2:arn de tu bus. Las entradas de la clave de sucursal también contienen los campos del conjunto de claves jerárquicas: branch-key-id (el ARN del bus),,, typecreate-time, tablename y. hierarchy-version kms-arn Per-event el cifrado y el descifrado utilizan claves de datos derivadas localmente de la clave de sucursal almacenada en caché, por lo que los eventos individuales no aparecen en ellas. CloudTrail

Cifrado en tránsito

Todas las llamadas a la API Custom Event Bus van a un punto final HTTPS y cada solicitud debe firmarse con tus credenciales. eventsv2.region.amazonaws.com Un punto final FIPS está disponible donde lo necesites. eventsv2-fips.region.amazonaws.com Para obtener EventBridge información sobre la protección de datos en general, consulteEventBridge Seguridad de Amazon.