Cifrado de datos en reposo en AWS IoT Core - AWS IoT Core

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.

Cifrado de datos en reposo en AWS IoT Core

De forma predeterminada, todos los AWS IoT Core datos en reposo se cifran mediante claves AWS propias. AWS IoT Core también admite claves simétricas administradas por el cliente desde AWS Key Management Service (AWS KMS). Con las claves gestionadas por el cliente, puedes crear, poseer y gestionar las AWS KMS claves de tu AWS cuenta. AWS IoT Core utilizará sus claves de KMS para cifrar sus datos en reposo. Usted tiene el control total sobre estas claves de KMS, incluida la creación y el mantenimiento de sus políticas de claves. También puede configurar las políticas de IAM para los roles que acceden AWS KMS a fin de controlar los permisos de estas claves.

AWS claves propias

AWS las claves propias son un conjunto de claves de KMS que un AWS servicio posee y administra para su uso en varias AWS cuentas. AWS los servicios pueden usar claves AWS propias para proteger sus datos. De forma predeterminada, AWS IoT Core cifra los datos en reposo mediante claves AWS propias. El servicio administra estas claves. No puede ver, administrar ni usar las claves AWS propias. Sin embargo, no es necesario que realices ninguna acción para proteger estas claves.

Para obtener más información sobre las claves AWS propias, consulta las claves AWS propias en la Guía para AWS Key Management Service desarrolladores.

Claves administradas por el cliente

Las claves administradas por el cliente son claves de KMS de su AWS cuenta que usted crea, posee y administra. Usted tiene el control total sobre estas AWS KMS claves, incluida la creación y el mantenimiento de sus políticas clave. También puede configurar las políticas de IAM para los roles que acceden AWS KMS a fin de controlar los permisos de estas claves. Puede configurarlo AWS IoT Core para usar claves de KMS administradas por el cliente para cifrar sus datos.

Para obtener más información acerca de las claves administradas por el cliente, consulte Claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service .

Para habilitar la entrada de claves administradas por el cliente AWS IoT Core, sigue estos pasos:

Paso 1: Crear una clave administrada por el cliente

Puede crear una clave simétrica gestionada por el cliente mediante la AWS KMS consola o los comandos AWS KMS CLI. Lo keySpec debe ser SYMMETRIC_DEFAULT y lo keyUsage debe ser. ENCRYPT_DECRYPT

nota

AWS IoT Core solo admite AWS KMS claves con especificaciones SYMMETRIC_DEFAULT clave y uso de claves para ENCRYPT_DECRYPT claves administradas por el cliente.

El siguiente es un ejemplo de AWS CLI comando para crear una clave KMS que se pueda usar con las claves administradas AWS IoT Core por el cliente.

aws kms create-key --key-spec SYMMETRIC_DEFAULT --key-usage ENCRYPT_DECRYPT --region us-west-2

A continuación, se muestra un ejemplo del resultado del comando.

{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": "2024-09-19T11:45:23.982000-07:00", "Enabled": true, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "Origin": "AWS_KMS", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], "MultiRegion": false } }

Para obtener más información, consulte Creación de una clave simétrica gestionada por el cliente en la Guía para AWS Key Management Service desarrolladores.

Política de claves

Al crear una clave gestionada por el cliente, puede especificar una política clave. Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Para obtener más información, consulte las políticas clave en la Guía para AWS Key Management Service desarrolladores.

AWS IoT Core utiliza una función de IAM en su cuenta para acceder a la clave gestionada por el cliente. Si utilizas una política de claves personalizada, asegúrate de que la función de IAM creada en esta clave tenga los siguientes permisos:

  • kms:DescribeKey

  • kms:Decrypt

  • kms:Encrypt

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptTo

  • kms:ReEncryptFrom

Paso 2: Crea una función de IAM para conceder AWS IoT Core permisos de uso de la clave KMS

Si quieres AWS IoT Core usar la clave de KMS que has creado para cifrar tus datos en reposo, también tienes que crear un rol de IAM en tu cuenta, que AWS IoT Core puedes asumir que accederá a la clave de KMS.

El rol debe tener la siguiente política de confianza para poder AWS IoT Core asumirlo.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:iot:us-west-2:111122223333:*" } } } }

Asegúrese de que las políticas de IAM asociadas a la función de IAM tengan los siguientes permisos en la clave de KMS:

  • kms:DescribeKey

  • kms:Decrypt

  • kms:Encrypt

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptTo

  • kms:ReEncryptFrom

A continuación, se muestra un ejemplo de política de IAM con los permisos necesarios para las claves administradas por el cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIoTToAccessKMSResource", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "Condition": { "StringEquals": { "kms:EncryptionContext:aws-crypto-ec:vendor": "iot.amazonaws.com" } } } ] }

Para obtener más información, consulte Crear un rol para delegar permisos a un usuario de IAM en la Guía del AWS Identity and Access Management usuario.

Paso 3: Opte por las claves gestionadas por el cliente AWS IoT Core

Tras completar todos los pasos anteriores, ejecute el comando update-encryption-configuration CLI para optar por utilizar las claves gestionadas por el cliente AWS IoT Core. Si opta por las claves administradas por el cliente, todos AWS IoT Core los recursos de su AWS cuenta se cifrarán con la AWS KMS clave especificada.

  1. Para habilitar el AWS IoT Core uso de claves administradas por el cliente AWS CLI, ejecute el comando update-encryption-configuration CLI.

    aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" --region us-west-2
  2. Para verificar el AWS IoT Core uso de las claves administradas por el cliente AWS CLI, ejecute el comando describe-encryption-configuration CLI:

    aws iot describe-encryption-configuration --region us-west-2

    Si ha activado las claves gestionadas por el cliente AWS IoT Core, el resultado puede tener el siguiente aspecto:

    { "encryptionType": "CUSTOMER_MANAGED_KMS_KEY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "configurationDetails": { "configurationStatus": "HEALTHY" }, "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }

    El lastModifiedDate campo indica la fecha en la que se actualizó por última vez la configuración de cifrado.

    Si no ha activado las claves administradas por el cliente, el resultado puede tener el siguiente aspecto:

    { "encryptionType": "AWS_OWNED_KMS_KEY", "lastModifiedDate": "2024-09-26T22:01:02.365000-07:00" }

Paso 4: Se requieren permisos adicionales para las operaciones AWS IoT Core del plano de control

Tras optar por las claves administradas por el cliente, todos los AWS IoT Core recursos que pertenecen a su AWS cuenta se cifran con la clave KMS proporcionada. Todas las operaciones del plano de control ahora requieren que la persona que llama tenga kms:Decrypt permisos sobre la clave KMS, además de los permisos necesarios para la operación específica en el AWS IoT Core recurso. Si la persona que llama no tiene kms:Decrypt permiso y realiza una llamada a la API que requiere el cifrado o descifrado de los datos (por ejemplo,GetPolicy), recibirá un. UnauthorizedException

Por ejemplo, cuando llamasGetPolicy, necesitas tanto iot:GetPolicy los permisos de la clave de KMS gestionada por el cliente como kms:Decrypt los permisos necesarios para que la llamada a la API se realice correctamente.

nota

Al actualizar los usuarios o funciones de IAM para conceder AWS KMS permisos sobre la clave utilizada en la configuración de cifrado, asegúrese de que la política de claves de KMS también conceda los permisos necesarios a los respectivos usuarios o funciones de IAM.

AWS KMS permisos para UpdateEncryptionConfiguration

La llamada a la UpdateEncryptionConfiguration API necesita los siguientes AWS KMS permisos en la clave de KMS para poder optar por las claves administradas por el cliente o modificar la configuración de la clave:

  • kms:DescribeKey

  • kms:Decrypt

  • kms:Encrypt

  • kms:GenerateDataKeyWithoutPlaintext

  • kms:ReEncryptTo

  • kms:ReEncryptFrom

AWS KMS permisos para todos los demás planos de control APIs

La mayoría de los planos de control APIs requieren kms:Decrypt permisos cuando las claves administradas por el cliente están habilitadas. Sin embargo, algunos APIs no requieren estos permisos adicionales:

APIs que no requieren AWS KMS permisos

Los List* y Delete* APIs no entran en este cubo. Los clientes siempre pueden invocar cualquier API List* o del plano de Delete* control y esas llamadas a la API se realizarán correctamente incluso si la persona que llama no tiene kms:Decrypt permiso. Estas llamadas a la API se realizarán correctamente aunque la clave gestionada por el cliente no esté en buen estado List* y Delete* APIs no se pueda descifrar.

  • Lista* APIs: todas las operaciones de listado (por ejemplo,,ListThings,ListPolicies) ListCertificates

  • Eliminar* APIs: todas las operaciones de eliminación (por ejemplo,,,DeleteThing) DeletePolicy DeleteCertificate

Paso 5: Administrar las claves

AWS IoT Core comprueba periódicamente la configuración de las claves gestionadas por el cliente para garantizar que las operaciones de cifrado y descifrado no se vean afectadas. Estas comprobaciones de estado se realizan una vez por minuto y verifican AWS IoT Core la capacidad de los usuarios para acceder y utilizar tanto la AWS KMS clave como la función de IAM asociada para las operaciones de cifrado y descifrado.

HEALTHY

AWS IoT Core puede acceder correctamente a la AWS KMS clave a través de la función de IAM especificada y realizar operaciones. encryption/decryption Todos los componentes funcionan correctamente.

UNHEALTHY

AWS IoT Core no puede acceder a la AWS KMS clave ni utilizarla. Esto impide nuevas operaciones de cifrado y puede afectar a la funcionalidad del servicio. El errorCode campo indica si el problema está relacionado con la clave o con la función de IAM.

Acciones de los clientes que pueden afectar al estado de salud clave

Varias acciones de los clientes pueden provocar que el estado de salud clave cambie de HEALTHY aUNHEALTHY:

Acciones relacionadas con las claves
  • Eliminar una AWS KMS clave: cuando planificas la eliminación de una clave, esta se encuentra en un Pending deletion estado y no se puede usar

  • Deshabilitar una AWS KMS clave: al deshabilitar una clave KMS, ya no se puede usar para operaciones de cifrado o descifrado

  • Programar la eliminación de la clave: la clave queda inutilizable cuando se completa la eliminación

  • Modificación de la política de claves: eliminar los permisos de acceso necesarios AWS IoT Core

  • Cambiar los permisos de uso de las claves: restringir AWS KMS las acciones necesarias

Acciones relacionadas con las funciones de IAM
  • Eliminar el rol de IAM: no AWS IoT Core se puede asumir el rol para acceder a la clave

  • Modificación de los permisos de los roles: se eliminan AWS KMS los permisos necesarios de la política de roles

  • Cambiar la política de confianza: impedir que el AWS IoT Core servicio asuma el rol

  • Añadir condiciones restrictivas: condiciones que AWS IoT Core impiden el uso del rol

Acciones a nivel de cuenta
  • Cambios en el acceso a las claves entre cuentas: modificación de los permisos de las claves en diferentes cuentas

  • Políticas de control de servicios (SCPs): políticas a nivel de la organización que restringen el acceso AWS KMS

  • Políticas de IAM a nivel de cuenta: políticas que anulan o entran en conflicto con el acceso a las claves

importante

Cualquier cambio en las AWS KMS claves, las funciones de IAM o las políticas que utilice AWS IoT Core debe probarse primero en los entornos de desarrollo. Supervise de cerca el estado de salud clave después de realizar cualquier cambio para garantizar que AWS IoT Core la funcionalidad no se vea afectada.

Actualización de la configuración de cifrado

Actualice la configuración de cifrado AWS IoT Core para cambiar de una clave administrada por el cliente a otra, o entre claves AWS propias y claves administradas por el cliente.

Para cambiar la configuración a una clave gestionada por el cliente diferente:

  1. Cree una nueva clave gestionada por el cliente siguiendo los pasos que se indican a continuaciónPaso 1: Crear una clave administrada por el cliente.

  2. Actualice su política de funciones de IAM para incluir los permisos tanto para las claves antiguas como para las nuevas durante el período de actualización.

  3. Actualice la configuración de cifrado para usar la nueva clave:

    aws iot update-encryption-configuration --encryption-type "CUSTOMER_MANAGED_KMS_KEY" \ --kms-access-role-arn "arn:aws:iam::111122223333:role/myrole" \ --kms-key-arn "arn:aws:kms:us-west-2:111122223333:key/new-key-id"

Para cambiar la configuración de claves administradas por el cliente a claves AWS propias:

aws iot update-encryption-configuration --encryption-type "AWS_OWNED_KMS_KEY"
nota

Al actualizar la configuración de cifrado para las nuevas claves administradas por el cliente, asegúrese de que tanto las claves antiguas como las nuevas permanezcan accesibles para que la operación se lleve a cabo correctamente.

Escenarios de falla e impactos comunes

En la siguiente tabla se describen los escenarios de error más comunes cuando se eliminan o desactivan las claves:

Escenario Impacto inmediato Consecuencias a largo plazo

Clave desactivada

Todas las encryption/decryption operaciones nuevas fallan inmediatamente

Interrupción del servicio hasta que se vuelva a activar o sustituir la llave

Se ha programado la eliminación de la clave

El estado de la clave cambia a pendiente de eliminación y todas encryption/decryption las operaciones fallarán

Fallo automático del servicio cuando se completa la eliminación

La clave se ha eliminado permanentemente

Fallo inmediato y permanente de todas las operaciones

Pérdida permanente de datos e incapacidad para recuperar los datos cifrados

La política de claves se modificó incorrectamente

AWS IoT Core pierde los permisos de acceso a la clave

El servicio fallará hasta que se corrija la política

Función de IAM eliminada

AWS IoT Core no puede asumir el rol para acceder a la clave

Fallo total del servicio de cifrado

La función de IAM se ha modificado incorrectamente

AWS IoT Core no puede asumir el rol o usar el rol para acceder a la clave

El servicio fallará hasta que se corrija la función de IAM

Prevención y mejores prácticas

Para evitar la eliminación o desactivación accidental de las claves y minimizar el riesgo de fallos en el servicio:

Implemente políticas clave del ciclo de vida

Establezca procedimientos claros para la creación, rotación y retirada de claves. Documente qué claves se utilizan con qué AWS IoT Core recursos y mantenga un inventario de las claves activas.

Utilice las políticas de IAM para restringir la eliminación de claves

Cree políticas de IAM que impidan que los usuarios no autorizados eliminen o deshabiliten las claves de cifrado críticas. Utilice condiciones que exijan una aprobación adicional para las operaciones de eliminación de claves.

Habilite el CloudTrail registro

Supervise todas las operaciones AWS KMS clave CloudTrail para detectar actividades de administración de claves no autorizadas o accidentales. Configure alertas para la eliminación de claves, la desactivación o los cambios en las políticas.

Pruebe los procedimientos de reemplazo de llaves

Pruebe periódicamente sus procedimientos de sustitución de llaves en entornos que no sean de producción para asegurarse de que puede recuperarse rápidamente de los fallos relacionados con las llaves.

Mantenga las copias de seguridad clave

Si bien no puede exportar el material AWS KMS clave, mantenga registros detallados de las claves ARNs, las políticas y las AWS IoT Core configuraciones asociadas para facilitar el reemplazo rápido de las claves si es necesario.

Controle el estado de las claves

Supervise continuamente la CMK.Health métrica y configure alertas automatizadas para detectar los cambios clave en el estado de salud. Implemente respuestas automatizadas para abordar rápidamente los principales problemas relacionados.

importante

Pruebe siempre los procedimientos de actualización clave en los entornos de desarrollo antes de implementarlos en producción. Tenga un plan de reversión documentado y asegúrese de que los procedimientos de reemplazo clave se puedan ejecutar rápidamente en caso de emergencia.

Paso 6: Monitorear la salud clave

Como parte de las comprobaciones AWS IoT Core periódicas, se emiten CloudWatch métricas y registros para proporcionar visibilidad del estado de la configuración clave gestionada por el cliente

AWS IoT Core emite la CMK.Health métrica al CloudWatch menos una vez cada minuto. La métrica proporciona información sobre el estado de las claves administradas por el cliente que se utilizan AWS IoT Core para cifrar y descifrar los datos.

La CMK.Health métrica puede tener los siguientes valores:

  • El valor AWS IoT Core es1: puede utilizar las claves de cifrado correctamente para cifrar y descifrar los datos.

  • El valor AWS IoT Core es0: no puede utilizar las claves de cifrado para cifrar y descifrar sus datos.

AWS IoT Core también emite registros AWS IoT V2 cuando cambia el estado de las claves de cifrado. Estos registros proporcionan detalles adicionales sobre la actualización del estado de salud. Para ver estos registros, debe habilitar los registros de la AWS IoT versión 2. Los HEALTHY registros se emiten a INFO nivel y los UNHEALTHY registros se emiten a ERROR nivel. Para obtener más información sobre los niveles de registro, consulte Niveles de registro.

Los siguientes ejemplos son entradas de CloudWatch registro emitidas AWS IoT Core para indicar la actualización del estado de las claves gestionadas por el cliente.

Para monitorear y responder de manera efectiva a los cambios clave en el estado de salud:

  1. Configure CloudWatch las alarmas para la CMK.Health métrica:

    aws cloudwatch put-metric-alarm --region us-west-2 \ --alarm-name "IoTCore-CMK-Health-Alert" \ --alarm-description "Alert when IoT Core CMK health is unhealthy" \ --metric-name "CMK.Health" \ --namespace "AWS/IoT" \ --statistic "Minimum" \ --period 300 \ --evaluation-periods 1 \ --threshold 1 \ --comparison-operator "LessThanThreshold" \ --alarm-actions "arn:aws:sns:us-west-2:111122223333:iot-alerts"
  2. Habilite AWS IoT el registro de la versión 2 para capturar eventos detallados de cambios en el estado de salud con códigos y mensajes de error.

  3. Compruebe el estado de la configuración para solucionar problemas:

    aws iot describe-encryption-configuration --region us-west-2
  4. Investigue el estado INSALUBRE examinando el errorCode campo:

    • KMS_KEY_VALIDATION_ERROR— Problema con la AWS KMS clave (deshabilitada, eliminada o problemas de política)

    • ROLE_VALIDATION_ERROR— Problema con la función de IAM (eliminada, problemas de política o problemas de confianza)

De INSALUBRE a SALUDABLE

Cuando el estado de las claves de cifrado se actualice de UNHEALTHY aHEALTHY, AWS IoT Core emitirá un mensaje de registro AWS IoT V2 con el siguiente formato.

{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "SUCCESS", "cmkStatus": "HEALTHY", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }

De SALUDABLE a INSALUBRE

Cuando el estado de las claves de cifrado se actualice de HEALTHY aUNHEALTHY, AWS IoT Core emitirá un mensaje de registro AWS IoT V2 con el siguiente formato.

{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "ERROR", "traceId": "8421693b-f4f0-4e4a-9235-0cff8bab897d", "accountId": "111122223333", "status": "FAILURE", "cmkStatus": "UNHEALTHY", "errorCode": "KMS_KEY_VALIDATION_ERROR / ROLE_VALIDATION_ERROR", "errorMessage": "Error message on why there was a failure", "kmsKeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "kmsAccessRoleArn": "arn:aws:iam::111122223333:role/myrole", "eventType": "CmkHealthCheck" }
aviso

Cuando la clave está en buen estadoUNHEALTHY, AWS IoT Core las operaciones fallan inmediatamente. Si esto ocurre, revise las configuraciones clave, los permisos de las funciones de IAM y las políticas. Supervise la CMK.Health métrica para ver si hay cambios de estado. Si las operaciones siguen fallando después de revisar sus configuraciones, póngase en contacto con el administrador de su cuenta o con el AWS Support Center para obtener asistencia adicional.

AWS CloudTrail eventos

También puede supervisar el uso AWS IoT Core de la clave KMS para las operaciones de cifrado y descifrado. AWS IoT Core realizará DescribeKey DecryptReEncrypt, y GenerateDataKeyWithoutPlaintext operaciones en su clave KMS para cifrar o descifrar los datos pertenecientes a su AWS cuenta almacenada en reposo.

Hay CloudTrail eventos paraDescribeKey, DecryptReEncrypt, y. GenerateDataKeyWithoutPlaintext Estos eventos supervisan AWS KMS las operaciones solicitadas AWS IoT Core para acceder a los datos cifrados por la clave gestionada por el cliente.

DecryptEjemplo de
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "*********************", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "userName": "*****" }, "attributes": { "creationDate": "2024-09-16T20:23:39Z", "mfaAuthenticated": "false" } }, "invokedBy": "iot.amazonaws.com" }, "eventTime": "2024-09-16T20:32:48Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "iot.amazonaws.com", "userAgent": "iot.amazonaws.com", "requestParameters": { "encryptionContext": { "kms-arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "aws-crypto-ec:vendor": "iot.amazonaws.com", "branch-key-id": "111122223333", "type": "branch:ACTIVE" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "1afb6d98-8388-455d-8b48-e62c9e0cf7f4", "eventID": "b59a5f16-0d98-46d8-a590-0e040a48b39b", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }