Autorizar seus dispositivos a usar trabalhos de AWS IoT com segurança no plano de dados - AWS IoT Core

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Autorizar seus dispositivos a usar trabalhos de AWS IoT com segurança no plano de dados

Para autorizar seus dispositivos a interagir de forma segura com trabalhos de AWS IoT no plano de dados, você deve usar políticas AWS IoT Core. Políticas AWS IoT Core para trabalhos são documentos JSON contendo declarações de políticas. Essas políticas também usam elementos Efeito, Ação e Recurso e seguem uma convenção semelhante às políticas do IAM. Para obter mais informações sobre os elementos, consulte Referência de elementos de política JSON do IAM no Guia do usuário do IAM.

As políticas podem ser usadas com os protocolos MQTT e HTTPS e devem usar a autenticação mútua TCP ou TLS para autenticar os dispositivos. Veja a seguir como usar essas políticas nos diferentes protocolos de comunicação.

Atenção

Recomendamos que você não use permissões curinga, como "Action": ["iot:*"], em suas políticas AWS IoT Core ou políticas do IAM. Usar permissões curinga não é uma prática recomendada de segurança. Para obter mais informações, consulte Política de AWS IoT excessivamente permissiva.

Políticas AWS IoT Core do protocolo MQTT

As políticas AWS IoT Core do protocolo MQTT concedem a você permissões para usar as ações da API MQTT do dispositivo de trabalho. As operações da API MQTT são usadas para trabalhar com tópicos do MQTT reservados para comandos de trabalho. Para obter mais informações sobre essas operações de API, consulte MQTTAPIOperações de dispositivos de tarefas.

As políticas do MQTT usam ações de política como iot:Connect, iot:Publish, iot:Subscribe e iot:Receieve para trabalhar com os tópicos de trabalho. Essas políticas permitem que você se conecte ao agente de mensagens, assine os tópicos do MQTT de trabalhos e envie e receba mensagens do MQTT entre seus dispositivos e a nuvem. Para obter mais informações sobre essas ações, consulte AWS IoT Core ações políticas.

Para obter mais informações sobre tópicos de trabalhos de AWS IoT, consulte Tópicos de trabalhos.

O exemplo a seguir mostra como você pode usar iot:Publish e iot:Subscribe para publicar e assinar trabalhos e execuções de trabalhos.

No exemplo, substitua:

  • region pela sua Região da AWS, como us-east-1.

  • account-id por seu número de Conta da AWS, como 57EXAMPLE833.

  • thing-name pelo nome de suo objeto de IoT para a qual você está segmentando trabalhos, como MyIoTThing.

{ "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" }

Políticas AWS IoT Core para o protocolo HTTPS

As políticas AWS IoT Core no plano de dados também podem usar o protocolo HTTPS com o mecanismo de autenticação TLS para autorizar seus dispositivos. No plano de dados, as políticas usam o prefixo iotjobsdata: para autorizar operações de API de trabalhos que os dispositivos podem realizar. Por exemplo, a ação de política iotjobsdata:DescribeJobExecution concede ao usuário permissão para usar a API DescribeJobExecution.

nota

As ações da política do plano de dados devem usar o prefixo iotjobsdata:. No ambiente de gerenciamento, as ações devem usar o prefixo iot:. Para ver um exemplo de política do IAM quando as ações de política do ambiente de gerenciamento e do plano de dados são usadas, consulte Exemplo de política do IAM para ambiente de gerenciamento e plano de dados.

A tabela a seguir mostra uma lista de ações da política AWS IoT Core e permissões para autorizar dispositivos a utilizar as ações da API. Para obter uma lista das operações de API que você pode realizar no plano de dados, consulte Dispositivo Jobs HTTP API.

nota

Essas ações da política de execução de trabalhos se aplicam apenas ao endpoint HTTP TLS. Se você usar o endpoint MQTT, deverá usar as ações de política do MQTT definidas anteriormente.

Ações de política AWS IoT Core no plano de dados
Ação de política Operação de API Tipos de recursos Descrição
iotjobsdata:DescribeJobExecution DescribeJobExecution
  • trabalho

  • objeto

Representa a permissão para recuperar uma execução de trabalho. A permissão iotjobsdata:DescribeJobExecution é verificada sempre que é feita uma solicitação para recuperar uma execução de trabalho.
iotjobsdata:GetPendingJobExecutions GetPendingJobExecutions objeto Representa a permissão para recuperar a lista de trabalhos que não estão em status terminal para um objeto. A permissão iotjobsdata:GetPendingJobExecutions é verificada sempre que é feita uma solicitação para recuperar a lista.
iotjobsdata:StartNextPendingJobExecution StartNextPendingJobExecution objeto Representa a permissão para obter e iniciar a próxima execução de trabalho pendente para um objeto. Isto é, para atualizar uma execução de trabalho com status QUEUED para IN_PROGRESS. A permissão iotjobsdata:StartNextPendingJobExecution é verificada sempre que é feita uma solicitação para iniciar a próxima execução de trabalho pendente.
iotjobsdata:UpdateJobExecution UpdateJobExecution objeto Representa a permissão para atualizar uma execução de trabalho. A permissão iotjobsdata:UpdateJobExecution é verificada sempre que é feita uma solicitação para atualizar o estado de uma execução de trabalho.

Veja a seguir um exemplo de uma política AWS IoT Core que concede permissão para realizar as ações nas operações da API do plano de dados para qualquer recurso. Você pode definir o escopo de sua política para um recurso específico, como um objeto de IoT. No seu exemplo, substitua:

  • region pela sua Região da AWS, como us-east-1.

  • account-id por seu número de Conta da AWS, como 57EXAMPLE833.

  • thing-name pelo nome do objeto de IoT, como MyIoTthing.

{ "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" } ] }

Um exemplo de quando você deve usar essas políticas pode ser quando seus dispositivos de IoT usam uma política AWS IoT Core para acessar uma dessas operações de API, como o exemplo a seguir da API DescribeJobExecution:

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