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, 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ê usar uma associação de coisas não exclusiva, o mesmo certificado poderá ser anexado 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 a associação de coisas não exclusiva estiver em vigor, quando você estiver substituindo nomes de coisas por variáveis de política de coisas, o valor de
clientId
na mensagem de conexão MQTT ou na 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 igual ao 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[
ondeattributeName
]attributeName
está o nome do atributo. O ID do cliente da WebSocket conexão MQTT/ 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 valorestrue
oufalse
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 do seu item ou se você anexar seu certificado exclusivamente a algo, o uso de variáveis de política na definição da política pode simplificar o gerenciamento de políticas. Em vez de criar políticas individuais para cada coisa de IoT, você pode definir uma única política usando as variáveis de política da coisa. Essa política pode ser aplicada dinamicamente a todos os dispositivos. Veja a seguir um exemplo de política para mostrar como ela 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 itens com um padrão de ID de cliente correspondente poderão se conectar.