Variáveis AWS IoT Core políticas básicas - 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á.

Variáveis AWS IoT Core políticas básicas

AWS IoT Core define as seguintes variáveis básicas de política:

  • iot:ClientId: o ID do cliente usado para se conectar ao agente de mensagens do AWS IoT Core .

  • aws:SourceIp: o endereço IP do cliente conectado ao agente de AWS IoT Core mensagens.

A AWS IoT Core política a seguir mostra uma política que usa variáveis de política. aws:SourceIppode ser usado no elemento Condição da sua política para permitir que os diretores façam solicitações de API somente dentro de um intervalo de endereços específico. Para ver exemplos, consulte Como autorizar usuários e serviços em nuvem a usar trabalhos de AWS IoT.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}" ], "Condition": { "IpAddress": { "aws:SourceIp": "123.45.167.89" } } } ] }

Nesses exemplos, ${iot:ClientId} é substituído pelo ID do cliente conectado ao agente de AWS IoT Core mensagens quando a política é avaliada. Quando você usa variáveis de políticas, como ${iot:ClientId}, você pode abrir acidentalmente o acesso a tópicos não intencionais. Por exemplo, se você usa uma política que usa ${iot:ClientId} para especificar um filtro de tópico:

{ "Effect": "Allow", "Action": ["iot:Subscribe"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic" ] }

Um cliente pode se conectar usando + como o ID do cliente. Isso permitiria que o usuário se inscrevesse em qualquer tópico que correspondesse ao filtro de tópico my/+/topic. Para proteger contra essas falhas de segurança, use a ação da política iot:Connect para controlar quais IDs de cliente podem se conectar. Por exemplo, essa política permite que apenas clientes cujo ID é clientid1 se conectem:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/clientid1" ] } ] }
nota

Não é recomendável usar a variável de política ${iot:ClientId} com Connect. Não há verificação do valor de ClientId; portanto, um anexador com um ID de cliente diferente pode passar na validação, mas causar a desconexão. Como qualquer ClientId é permitido, definir um ID de cliente aleatório pode ignorar as políticas do grupo de objetos.