Exemplos de política de certificado - AWS IoT Core

Exemplos de política de certificado

Para dispositivos registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com um ID de cliente que corresponda ao nome de um objeto e para publicar em um tópico cujo nome seja igual ao certificateId do certificado que o dispositivo usou para se autenticar:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:CertificateId}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] } ] }

Para dispositivos não registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com IDs de cliente client1, client2 e client3 e para publicar em um tópico cujo nome seja igual ao certificateId do certificado que o dispositivo usou para se autenticar:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:CertificateId}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] } ] }

Para dispositivos registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com um ID de cliente que corresponda ao nome do objeto e para publicar em um tópico cujo nome seja igual ao campo CommonName do assunto do certificado que o dispositivo usou para se autenticar:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.CommonName}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] } ] }
nota

Neste exemplo, o nome comum do assunto do certificado é usado como o identificador do tópico, supondo-se que o nome comum do assunto seja exclusivo para cada certificado registrado. Se os certificados forem compartilhados entre vários dispositivos, o nome comum do assunto será o mesmo para todos os dispositivos que compartilham esse certificado, permitindo assim privilégios de publicação para o mesmo tópico em vários dispositivos (não recomendado).

Para dispositivos não registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com IDs de cliente client1, client2 e client3 e para publicar em um tópico cujo nome seja igual ao campo CommonName do assunto do certificado que o dispositivo usou para se autenticar:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${iot:Certificate.Subject.CommonName}"] }, { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] } ] }
nota

Neste exemplo, o nome comum do assunto do certificado é usado como o identificador do tópico, supondo-se que o nome comum do assunto seja exclusivo para cada certificado registrado. Se os certificados forem compartilhados entre vários dispositivos, o nome comum do assunto será o mesmo para todos os dispositivos que compartilham esse certificado, permitindo assim privilégios de publicação para o mesmo tópico em vários dispositivos (não recomendado).

Para dispositivos registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com um ID de cliente que corresponda ao nome do objeto e para publicar em um tópico cujo nome é prefixado com admin/ quando o certificado usado para autenticar o dispositivo tiver seu campo Subject.CommonName.2 definido como Administrator:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/*"], "Condition": { "StringEquals": { "iot:Certificate.Subject.CommonName.2": "Administrator" } } } ] }

Para dispositivos não registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com IDs de cliente client1, client2 e client3 e para publicar em um tópico cujo nome é prefixado com admin/ quando o certificado usado para autenticar o dispositivo tiver seu campo Subject.CommonName.2 definido como Administrator:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/*"], "Condition": { "StringEquals": { "iot:Certificate.Subject.CommonName.2": "Administrator" } } } ] }

Para dispositivos registrados no registro do AWS IoT Core, a política a seguir permite que um dispositivo use um nome de objeto para publicar em um tópico específico que consiste em admin/ seguido pelo ThingName quando o certificado usado para autenticar o dispositivo tiver qualquer um de seus campos Subject.CommonName definidos como Administrator:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin/${iot:Connection.Thing.ThingName}"], "Condition": { "ForAnyValue:StringEquals": { "iot:Certificate.Subject.CommonName.List": "Administrator" } } } ] }

Para dispositivos não registrados no registro do AWS IoT Core, a política a seguir concede permissão para se conectar ao AWS IoT Core com IDs de cliente client1, client2 e client3 para publicar no tópico admin quando o certificado usado para autenticar o dispositivo tiver qualquer um dos seus campos Subject.CommonName definidos como Administrator:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/client1", "arn:aws:iot:us-east-1:123456789012:client/client2", "arn:aws:iot:us-east-1:123456789012:client/client3" ] }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": ["arn:aws:iot:us-east-1:123456789012:topic/admin"], "Condition": { "ForAnyValue:StringEquals": { "iot:Certificate.Subject.CommonName.List": "Administrator" } } } ] }