Variáveis de política de objetos - 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 de política de objetos

As variáveis de política de coisas permitem que você escreva AWS IoT Core políticas que concedam ou neguem permissões com base em propriedades de coisas, como nomes de coisas, tipos de coisas e valores de atributos de coisas. Você pode usar variáveis de política de coisas para aplicar a mesma política para controlar vários AWS IoT Core dispositivos. Para obter mais informações sobre o provisionamento de dispositivos, consulte Provisionamento de dispositivos.

Se você usa uma associação de coisa não exclusiva, pode anexar o mesmo certificado a várias coisas. Para manter uma associação clara e evitar possíveis conflitos, você deve combinar seu ID de cliente com o nome da coisa. Nesse caso, você obtém o nome da coisa do ID do cliente na Connect mensagem MQTT enviada quando uma coisa se conecta a. AWS IoT Core

Lembre-se do seguinte ao usar variáveis de política de objetos em políticas do AWS IoT Core .

  • Use a AttachThingPrincipalAPI para anexar certificados ou entidades principais (identidades autenticadas do Amazon Cognito) a uma coisa.

  • Se houver uma associação de coisa exclusiva implementada, quando você estiver substituindo nomes de coisas por variáveis de política de coisas, o valor de clientId na mensagem de conexão do MQTT ou a conexão TLS deverá corresponder exatamente ao nome da coisa.

As variáveis de política de objetos a seguir estão disponíveis:

  • iot:Connection.Thing.ThingName

    Isso se resume ao nome da coisa no AWS IoT Core registro para a qual a política está sendo avaliada. AWS IoT Core usa o certificado que o dispositivo apresenta ao se autenticar para determinar qual coisa usar para verificar a conexão. Essa variável de política só está disponível quando um dispositivo se conecta pelo MQTT ou pelo MQTT pelo WebSocket protocolo.

  • iot:Connection.Thing.ThingTypeName

    Isso resolve o tipo de objeto associado ao objeto para a qual a política está sendo avaliada. O ID do cliente da WebSocket conexão MQTT/ deve ser o mesmo que o nome da coisa. Essa variável de política está disponível somente ao se conectar pelo MQTT ou pelo MQTT pelo WebSocket protocolo.

  • iot:Connection.Thing.Attributes[attributeName]

    Isso resolve o valor do atributo especificado associado ao objeto para a qual a política está sendo avaliada. Um objeto pode ter até 50 atributos. Cada atributo está disponível como uma variável de política: iot:Connection.Thing.Attributes[attributeName] onde attributeName está o nome do atributo. O ID do cliente da MQTT/WebSocket conexão deve ser igual ao nome da coisa. Essa variável de política só está disponível ao se conectar pelo MQTT ou pelo MQTT pelo WebSocket protocolo.

  • iot:Connection.Thing.IsAttached

    iot:Connection.Thing.IsAttached: ["true"]determina que somente os dispositivos registrados AWS IoT e conectados ao principal possam acessar as permissões dentro da política. Você pode usar essa variável para impedir que um dispositivo se conecte AWS IoT Core se ele apresentar um certificado que não esteja anexado a uma coisa de IoT no AWS IoT Core registro. Essa variável tem valores true ou false indica que a coisa conectada está anexada ao certificado ou à identidade do Amazon Cognito no registro usando a API. AttachThingPrincipal O nome do objeto é usado como ID do cliente.

Se o ID do cliente corresponder ao nome da coisa ou se você anexar seu certificado exclusivamente a uma coisa, o uso de variáveis na definição da política pode simplificar o gerenciamento de políticas. Em vez de criar políticas individuais para cada coisa da IoT, você pode definir uma única política usando as variáveis de política da coisa. É possível aplicar essa política a todos os dispositivos de forma dinâmica. Veja a seguir um exemplo de política para mostrar como funciona. Para obter mais informações, consulte Associando qualquer AWS IoT coisa a uma conexão de cliente MQTT.

{ "Version":"2012-10-17", "Statement": [ { "Condition": { "StringLike": { "iot:ClientId": "*${iot:Connection.Thing.Attributes[envType]}" } }, "Effect": "Allow", "Action": "iot:Connect", "Resource": "arn:aws:iot:us-east-1:123456789012:client/*" } ] }

Esse exemplo de política permite que as coisas se conectem AWS IoT Core se o ID do cliente terminar com o valor do envType atributo. Somente coisas com um padrão de ID de cliente correspondente poderão se conectar.