Ejemplos de políticas de certificado - AWS IoT Core

Ejemplos de políticas de certificado

Para los dispositivos registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con un ID de cliente que coincide con un nombre de objeto y para publicar en un tema cuyo nombre sea igual al certificateId del certificado que el dispositivo utilizó para autenticarse:

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 los dispositivos no registrados en el registro de AWS IoT Core, la siguiente política concede permisos para conectarse a AWS IoT Core con los ID de cliente client1, client2 y client3, y para publicar en un tema cuyo nombre sea igual al certificateId del certificado que el dispositivo utilizó para autenticarse:

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 los dispositivos registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con un ID de cliente que coincide con el nombre de objeto y para publicar en un tema cuyo nombre sea igual al campo CommonName del sujeto del certificado que el dispositivo utilizó para autenticarse:

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

En este ejemplo, el nombre común del sujeto del certificado se utiliza como identificador de tema, partiendo del supuesto de que el nombre común del sujeto es único para cada certificado registrado. Si los certificados se comparten entre varios dispositivos, el nombre común del asunto es el mismo para todos los dispositivos que comparten este certificado, lo que permite publicar privilegios en el mismo tema desde varios dispositivos (no se recomienda).

Para los dispositivos no registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con los ID de cliente client1, client2 y client3, y para publicar en un tema cuyo nombre sea igual al campo CommonName del sujeto del certificado que el dispositivo utilizó para autenticarse:

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

En este ejemplo, el nombre común del sujeto del certificado se utiliza como identificador de tema, partiendo del supuesto de que el nombre común del sujeto es único para cada certificado registrado. Si los certificados se comparten entre varios dispositivos, el nombre común del asunto es el mismo para todos los dispositivos que comparten este certificado, lo que permite publicar privilegios en el mismo tema desde varios dispositivos (no se recomienda).

Para los dispositivos registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con un ID de cliente que coincide con un nombre de objeto y para publicar en un tema cuyo nombre tenga como prefijo admin/ cuando el certificado utilizado para autenticar el dispositivo tenga el campo Subject.CommonName.2 definido en 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 los dispositivos no registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con los ID de cliente client1, client2 y client3, y para publicar en un tema cuyo nombre tenga como prefijo admin/ cuando el certificado utilizado para autenticar el dispositivo tenga el campo Subject.CommonName.2 definido en 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 los dispositivos registrados en el registro de AWS IoT Core, la siguiente política permite a un dispositivo utilizar su nombre de objeto para publicar en un tema específico que consiste en admin/ seguido del ThingName cuando el certificado utilizado para autenticar el dispositivo tenga alguno de sus campos Subject.CommonName establecido en 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 los dispositivos no registrados en el registro de AWS IoT Core, la siguiente política concede permiso para conectarse a AWS IoT Core con los ID de cliente client1, client2 y client3, y para publicar en el tema admin cuando el certificado utilizado para autenticar el dispositivo tenga alguno de sus campos Subject.CommonName definido en 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" } } } ] }