Autorizar tus dispositivos para usar AWS IoT Jobs de forma segura en el plano de los datos - 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.

Autorizar tus dispositivos para usar AWS IoT Jobs de forma segura en el plano de los datos

Para autorizar que tus dispositivos interactúen de forma segura con AWS IoT Jobs en el plano de datos, debes usar AWS IoT Core políticas. AWS IoT Core las políticas de empleo son documentos JSON que contienen declaraciones de políticas. Estas políticas también utilizan los elementos Efecto, Acción y Recurso y siguen una convención similar a la de las políticas de IAM. Para obtener más información sobre los elementos, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.

Las políticas se pueden usar con los protocolos MQTT y HTTPS y deben usar la autenticación mutua TCP o TLS para autenticar los dispositivos. A continuación, se muestra cómo utilizar estas políticas en los distintos protocolos de comunicación.

aviso

Te recomendamos que no utilices permisos comodín, como "Action": ["iot:*"] en tus políticas o AWS IoT Core políticas de IAM. El uso de permisos comodín no es una práctica recomendada de seguridad. Para obtener más información, consulte Políticas de AWS IoT demasiado permisivas.

AWS IoT Core políticas para el protocolo MQTT

AWS IoT Core las políticas del protocolo MQTT le otorgan permisos para usar las acciones de la API MQTT del dispositivo de trabajos. Las operaciones de la API MQTT se utilizan para trabajar con temas MQTT que están reservados para los comandos de trabajos. Para obtener más información sobre estas operaciones de API, consulte Operaciones de la API MQTT de dispositivos de Jobs.

Las políticas MQTT utilizan acciones de política como iot:Connect, iot:Publish, iot:Subscribe y iot:Receieve para trabajar con los temas de los trabajos. Estas políticas le permiten conectarse al agente de mensajes, suscribirse a los temas MQTT de trabajos y enviar y recibir mensajes MQTT entre sus dispositivos y la nube. Para obtener más información sobre estas acciones, consulte AWS IoT Core acciones políticas.

Para obtener información sobre los temas de AWS IoT Jobs, consulte. Temas de trabajos

El siguiente ejemplo muestra cómo puede utilizar iot:Publish y iot:Subscribe para publicar trabajos y ejecuciones de trabajos y suscribirse a ellos.

En el ejemplo, sustituya:

  • regioncon su Región de AWS, comous-east-1.

  • account-idcon tu Cuenta de AWS número, por ejemplo57EXAMPLE833.

  • thing-namecon el nombre de tu negocio de IoT al que te diriges a los trabajos, por ejemploMyIoTThing.

JSON
{ "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/events/job/*", "arn:aws:iot:region:account-id:topic/$aws/events/jobExecution/*", "arn:aws:iot:region:account-id:topic/$aws/things/thing-name/jobs/*" ] } ], "Version": "2012-10-17" }

AWS IoT Core políticas para el protocolo HTTPS

AWS IoT Core las políticas del plano de datos también pueden utilizar el protocolo HTTPS con el mecanismo de autenticación TLS para autorizar sus dispositivos. En el plano de datos, las políticas utilizan el prefijo iotjobsdata: para autorizar las operaciones de la API de trabajos que los dispositivos pueden realizar. Por ejemplo, la acción de política iotjobsdata:DescribeJobExecution concede al usuario permiso para usar la API DescribeJobExecution.

nota

Las acciones de política del plano de datos deben usar el prefijo iotjobsdata:. En el plano de control, las acciones deben usar el prefijo iot:. Para ver un ejemplo de política de IAM cuando se utilizan acciones de política tanto del plano de control como del plano de datos, consulte Ejemplo de política de IAM tanto para el plano de control como para el plano de datos.

En la siguiente tabla se muestra una lista de acciones AWS IoT Core políticas y permisos para autorizar a los dispositivos a utilizar las acciones de la API. Para obtener una lista de las operaciones de API que puede realizar en el plano de datos, consulteAPI HTTP de dispositivos de Jobs.

nota

Estas acciones de política de ejecución de trabajo se aplican únicamente al punto de conexión HTTP TLS. Si utiliza el punto de conexión MQTT, debe utilizar las acciones de política MQTT definidas anteriormente.

AWS IoT Core acciones políticas en el plano de datos
Acción de política Operación de la API Tipos de recurso Descripción
iotjobsdata:DescribeJobExecution DescribeJobExecution
  • job

  • thing

Representa el permiso para recuperar una ejecución de trabajo. El permiso iotjobsdata:DescribeJobExecution se comprueba cada vez que se presenta una solicitud para recuperar la ejecución de un trabajo.
iotjobsdata:GetPendingJobExecutions GetPendingJobExecutions thing Representa el permiso para recuperar la lista de trabajos que no están en un estado final para un objeto. El permiso iotjobsdata:GetPendingJobExecutions se comprueba cada vez que se presenta una solicitud para recuperar la lista.
iotjobsdata:StartNextPendingJobExecution StartNextPendingJobExecution thing Representa el permiso para obtener e iniciar la próxima ejecución de trabajo pendiente para un objeto, es decir, para actualizar una ejecución de trabajo con un estado QUEUED a IN_PROGRESS. El permiso iotjobsdata:StartNextPendingJobExecution se comprueba cada vez que se presenta una solicitud para iniciar la siguiente ejecución de trabajo pendiente.
iotjobsdata:UpdateJobExecution UpdateJobExecution thing Representa el permiso para actualizar una ejecución de trabajo. El permiso iotjobsdata:UpdateJobExecution se comprueba cada vez que se presenta una solicitud para actualizar el estado de una ejecución de trabajo.

A continuación, se muestra un ejemplo de una AWS IoT Core política que otorga permiso para realizar las acciones en las operaciones de la API del plano de datos para cualquier recurso. Puede limitar la política a un recurso específico, como un objeto de IoT. En el ejemplo, sustituya:

  • regioncon tus Región de AWS , comous-east-1.

  • account-idcon tu Cuenta de AWS número, por ejemplo57EXAMPLE833.

  • thing-namecon el nombre del IoT, comoMyIoTthing.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iotjobsdata:GetPendingJobExecutions", "iotjobsdata:StartNextPendingJobExecution", "iotjobsdata:DescribeJobExecution", "iotjobsdata:UpdateJobExecution" ], "Effect": "Allow", "Resource": "arn:aws:iot:region:account-id:thing/thing-name" } ] }

Un ejemplo de cuándo debe usar estas políticas puede ser cuando los dispositivos de IoT usan una política de AWS IoT Core para acceder a una de estas operaciones de API, como el siguiente ejemplo de la API DescribeJobExecution:

GET /things/thingName/jobs/jobId?executionNumber=executionNumber&includeJobDocument=includeJobDocument&namespaceId=namespaceId HTTP/1.1