Registrar llamadas a la API de OTA de AWS IoT con AWS CloudTrail - FreeRTOS

Registrar llamadas a la API de OTA de AWS IoT con AWS CloudTrail

FreeRTOS viene integrado en CloudTrail, un servicio que captura las llamadas a la API de OTA de AWS IoT y envía los archivos de registro al bucket de Amazon S3 que especifique. CloudTrail captura las llamadas a la API de su código a las API de OTA de AWS IoT. Con la información que recopila CloudTrail, puede determinar la solicitud a la OTA de AWS IoT que se realizó, la dirección IP de origen desde la que se realizó la solicitud, quién realizó la solicitud, cuándo se realizó, etcétera.

Para obtener más información acerca de CloudTrail, incluido cómo configurarlo y habilitarlo, consulte la Guía de usuario de AWS CloudTrail.

Información de FreeRTOS en CloudTrail

Cuando el registro de CloudTrail está habilitado en su cuenta de AWS, las llamadas a la API realizadas a las acciones de OTA de AWS IoT se rastrean en los archivos de registro de CloudTrail, donde se escriben con otros registros de servicios de AWS. CloudTrail determina cuándo debe crearse un nuevo archivo y escribir en él en función del periodo de tiempo y del tamaño del archivo.

CloudTrail registra las siguientes acciones de plano de control de OTA de AWS IoT:

nota

CloudTrail no registra las acciones del plano de datos (lado del dispositivo) de OTA de AWS IoT. Utilice CloudWatch para supervisarlas.

Cada entrada de registro contiene información sobre quién generó la solicitud. La información de identidad del usuario en la entrada de registro le ayuda a determinar lo siguiente:

  • Si la solicitud se realizó con las credenciales raíz o del usuario de IAM.

  • Si la solicitud se realizó con credenciales de seguridad temporales de un rol o fue un usuario federado.

  • Si la solicitud la realizó otro servicio de AWS.

Para obtener más información, consulte Elemento userIdentity de CloudTrail. AWS IoT se documentan en la Referencia de la API de OTA de AWS IoT.

Puede almacenar sus archivos de registro en su bucket de Amazon S3 durante todo el tiempo que desee, pero también puede definir reglas de ciclo de vida de Amazon S3 para archivar o eliminar archivos de registro automáticamente. De forma predeterminada, los archivos de registro se cifran con el cifrado del servidor (SSE) de Amazon S3.

Si desea recibir notificaciones cuando se entreguen los archivos de registro, puede configurar CloudTrail para que publique las notificaciones de Amazon SNS. Para obtener más información, consulte Configuración de notificaciones de Amazon SNS para CloudTrail.

También puede agregar archivos de registro de OTA de AWS IoT desde varias regiones de AWS y varias cuentas de AWS en un solo bucket de Amazon S3.

Para obtener más información, consulte Recepción de archivos de registro de CloudTrail de varias regiones y Recepción de archivos de registro de CloudTrail de varias cuentas.

Descripción de las entradas de archivos de registro de FreeRTOS

Los archivos de registro de CloudTrail pueden contener una o más entradas de registro. Cada entrada muestra varios eventos con formato JSON. Una entrada de registro representa una única solicitud de cualquier origen e incluye información sobre la acción solicitada, la fecha y la hora de la acción, los parámetros de la solicitud, etcétera. Las entradas de registro no son un rastro de la pila ordenada de las llamadas API públicas, por lo que no aparecen en ningún orden específico.

En el ejemplo siguiente, se muestra una entrada de registro de CloudTrail para ilustrar el registro de una llamada a la acción CreateOTAUpdate.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "EXAMPLE", "arn": "arn:aws:iam::your_aws_account:user/your_user_id", "accountId": "your_aws_account", "accessKeyId": "your_access_key_id", "userName": "your_username", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-08-23T17:27:08Z" } }, "invokedBy": "apigateway.amazonaws.com" }, "eventTime": "2018-08-23T17:27:19Z", "eventSource": "iot.amazonaws.com", "eventName": "CreateOTAUpdate", "awsRegion": "your_aws_region", "sourceIPAddress": "apigateway.amazonaws.com", "userAgent": "apigateway.amazonaws.com", "requestParameters": { "targets": [ "arn:aws:iot:your_aws_region:your_aws_account:thing/Thing_CMH" ], "roleArn": "arn:aws:iam::your_aws_account:role/Role_FreeRTOSJob", "files": [ { "fileName": "/sys/mcuflashimg.bin", "fileSource": { "fileId": 0, "streamId": "your_stream_id" }, "codeSigning": { "awsSignerJobId": "your_signer_job_id" } } ], "targetSelection": "SNAPSHOT", "otaUpdateId": "FreeRTOSJob_CMH-23-1535045232806-92" }, "responseElements": { "otaUpdateArn": "arn:aws:iot:your_aws_region:your_aws_account:otaupdate/FreeRTOSJob_CMH-23-1535045232806-92", "otaUpdateStatus": "CREATE_PENDING", "otaUpdateId": "FreeRTOSJob_CMH-23-1535045232806-92" }, "requestID": "c9649630-a6f9-11e8-8f9c-e1cf2d0c9d8e", "eventID": "ce9bf4d9-5770-4cee-acf4-0e5649b845c0", "eventType": "AwsApiCall", "recipientAccountId": "recipient_aws_account" }