Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Ejemplos de política de publicación/suscripción
La política que utilices depende de la forma a la que te conectes AWS IoT Core. Puedes conectarte AWS IoT Core mediante un MQTT clienteHTTP, o WebSocket. Cuando se conecta con un MQTT cliente, se autentica con un certificado X.509. Cuando se conecta a través HTTP del WebSocket protocolo, se autentica con Signature Version 4 y Amazon Cognito.
En el caso de los dispositivos registrados, recomendamos que utilice variables de política de objetos para las acciones de Connect
y que los asocie a la entidad principal que se utiliza para la conexión.
Uso de caracteres comodín en las políticas y políticas MQTT AWS IoT Core
MQTTy AWS IoT Core las políticas tienen caracteres comodín diferentes y debe elegirlos tras considerarlos detenidamente. Son caracteres comodín +
y #
se utilizan en los filtros de MQTT temas para suscribirse a varios nombres de temas. MQTT AWS IoT Core las políticas utilizan *
y ?
como caracteres comodín y siguen las convenciones de IAM las políticas. En un documento de política el *
representa cualquier combinación de caracteres y un signo de interrogación ?
representa cualquier carácter único. En los documentos de política, los caracteres MQTT comodín #
se consideran caracteres sin ningún significado especial. +
Para describir varios nombres de temas y filtros de temas en el resource
atributo de una política, utilice los caracteres ?
comodín *
y los caracteres comodín en lugar de los caracteres MQTT comodín.
Al elegir los caracteres comodín que se van a usar en un documento de política, tenga en cuenta que el *
carácter no se limita a un único nivel de tema. El +
personaje se limita a un único nivel de tema en un filtro de MQTT tema. Para limitar una especificación comodín a un único nivel de filtro de MQTT tema, considere la posibilidad de utilizar varios ?
caracteres. Para obtener más información sobre el uso de caracteres comodín en un recurso de políticas y más ejemplos de sus coincidencias, consulte Uso de caracteres comodín en un recurso. ARNs
En la siguiente tabla se muestran los distintos caracteres comodín que se utilizan en las políticas de los clientes MQTT y en AWS IoT Core las políticas correspondientes. MQTT
Carácter comodín |
Es un MQTT carácter comodín |
Ejemplo en MQTT |
¿Es un carácter comodín de AWS IoT Core política |
Ejemplo de AWS IoT Core políticas para clientes MQTT |
# |
Sí |
some/# |
No |
N/A |
+ |
Sí |
some/+/topic |
No |
N/A |
* |
No |
N/A |
Sí |
topicfilter/some/*/topic
topicfilter/some/sensor*/topic
|
? |
No |
N/A |
Sí |
topic/some/?????/topic
topicfilter/some/sensor???/topic
|
Políticas para publicar, suscribirse y recibir mensajes hacia/desde temas específicos
A continuación se muestran ejemplos de dispositivos registrados y no registrados para publicar, suscribirse y recibir mensajes hacia/desde el tema denominado «some_specific_topic». Los ejemplos también destacan que Publish
y Receive
utilizan “topic” como recurso y Subscribe
utiliza “topicfilter” como recurso.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. También proporciona permisos Publish
, Subscribe
y Receive
para el tema denominado “some_specific_topic”.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/some_specific_topic"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/some_specific_topic"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/some_specific_topic"
]
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no están registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante clientId 1, clientId 2 o clientId 3. También proporciona permisos Publish
, Subscribe
y Receive
para el tema denominado “some_specific_topic”.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/some_specific_topic"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/some_specific_topic"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/some_specific_topic"
]
}
]
}
Políticas para publicar, suscribirse y recibir mensajes hacia/desde temas con un prefijo específico
A continuación se muestran ejemplos de dispositivos registrados y no registrados para publicar, suscribirse y recibir mensajes hacia/desde temas con el prefijo «topic_prefix».
Observe el uso del carácter comodín *
en este ejemplo. Si bien *
es útil proporcionar permisos para varios nombres de temas en una sola declaración, puede tener consecuencias no deseadas, ya que se otorgan a los dispositivos más privilegios de los necesarios. Por lo tanto, le recomendamos que utilice el carácter comodín solo *
después de considerarlo detenidamente.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. También proporciona permisos Publish
, Subscribe
y Receive
para los temas con el prefijo «topic_prefix».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/topic_prefix*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/topic_prefix*"
]
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no están registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante clientId 1, clientId 2 o clientId 3. También proporciona permisos Publish
, Subscribe
y Receive
para los temas con el prefijo «topic_prefix».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/topic_prefix*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/topic_prefix*"
]
}
]
}
Políticas para publicar, suscribirse y recibir mensajes hacia/desde temas específicos de cada dispositivo
A continuación se muestran ejemplos de dispositivos registrados y no registrados para publicar, suscribirse y recibir mensajes hacia/desde temas específicos de un determinado dispositivo.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. Da permiso para publicar en un tema de objeto específico (sensor/device/${iot:Connection.Thing.ThingName}
) y también para suscribirse y recibir información del tema de objeto específico (command/device/${iot:Connection.Thing.ThingName}
). Si el nombre del objeto en el registro es «cosa1", el dispositivo podrá publicarlo en el tema «sensor/dispositivo/cosa1". El dispositivo también podrá suscribirse y recibir información sobre el tema «comando/dispositivo/cosa1".
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/sensor/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/command/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/command/device/${iot:Connection.Thing.ThingName}"
]
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no estén registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante 1, 2 o clientId 3. clientId clientId Da permiso para publicar en un tema de cliente específico (sensor/device/${iot:ClientId}
) y también para suscribirse y recibir información del tema de cliente específico (command/device/${iot:ClientId}
). Si el dispositivo se conecta clientId como clientId 1, podrá publicar en el tema «clientIdsensor/dispositivo/ 1". El dispositivo también podrá suscribirse al tema y recibir información sobre él. device/clientId1/command
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/sensor/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/command/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/command/device/${iot:Connection.Thing.ThingName}"
]
}
]
}
Políticas para publicar, suscribirse y recibir mensajes hacia/desde temas con un atributo en el nombre del tema
A continuación se muestra un ejemplo de dispositivos registrados para publicar, suscribirse y recibir mensajes hacia/desde temas cuyos nombres incluyen atributos de objetos.
Los atributos Thing solo existen para los dispositivos registrados en AWS IoT Core
el Registro. No existe un ejemplo correspondiente a los dispositivos no registrados.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. Da permiso para publicar en el tema (sensor/${iot:Connection.Thing.Attributes[version]}
) y suscribirse y recibir información del tema (command/${iot:Connection.Thing.Attributes[location]}
) si el nombre del tema incluye atributos de objeto. Si el nombre del objeto en el registro es «version=v1
y»location=Seattle
, el dispositivo podrá publicar en el tema «sensor/v1" y suscribirse al tema «Command/Seattle» y recibir mensajes desde el tema.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/sensor/${iot:Connection.Thing.Attributes[version]}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/command/${iot:Connection.Thing.Attributes[location]}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/command/${iot:Connection.Thing.Attributes[location]}"
]
}
]
}
- Unregistered devices
-
Como los atributos de cosas solo existen para los dispositivos registrados en el AWS IoT Core registro, no existe un ejemplo correspondiente para los dispositivos no registrados.
Políticas para denegar la publicación de mensajes en subtemas del nombre de un tema
A continuación, se muestran ejemplos de dispositivos registrados y no registrados para publicar mensajes en todos los temas, excepto en algunos subtemas.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. Da permiso para publicar en todos los temas con el prefijo «departament/», pero no en el subtema «department/admins».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/department/*"
]
},
{
"Effect": "Deny",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/department/admins"
]
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no están registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante clientId 1, clientId 2 o clientId 3. Da permiso para publicar en todos los temas con el prefijo «departament/», pero no en el subtema «department/admins».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/department/*"
]
},
{
"Effect": "Deny",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/department/admins"
]
}
]
}
Políticas para denegar la recepción de mensajes de subtemas del nombre de un tema
A continuación se muestran ejemplos para que dispositivos registrados y no registrados se suscriban y reciban mensajes de temas con prefijos específicos, excepto determinados subtemas.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. La política permite a los dispositivos suscribirse a cualquier tema con el prefijo «topic_prefix». Al utilizar NotResource
en la declaración para iot:Receive
, permitimos que el dispositivo reciba mensajes de todos los temas a los que esté suscrito, excepto los temas con el prefijo «topic_prefix/restricted». Por ejemplo, con esta política, los dispositivos pueden suscribirse a «topic_prefix/topic1» e incluso a «topic_prefix/restricted»; sin embargo, solo recibirán mensajes del tema «topic_prefix/topic1» y no mensajes del tema «topic_prefix/restricted».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/topic_prefix/*"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"NotResource": "arn:aws:iot:us-east-1:123456789012:topic/topic_prefix/restricted/*"
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no están registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante clientId 1, clientId 2 o clientId 3. La política permite a los dispositivos suscribirse a cualquier tema con el prefijo «topic_prefix». Al utilizar NotResource
en la declaración para iot:Receive
, permitimos que el dispositivo reciba mensajes de todos los temas a los que esté suscrito, excepto los temas con el prefijo «topic_prefix/restricted». Por ejemplo, con esta política, los dispositivos pueden suscribirse a «topic_prefix/topic1" e incluso a «topic_prefix/restricted». Sin embargo, solo recibirán mensajes del tema «topic_prefix/topic1" y no del tema «topic_prefix/restricted».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/topic_prefix/*"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"NotResource": "arn:aws:iot:us-east-1:123456789012:topic/topic_prefix/restricted/*"
}
]
}
Políticas para suscribirse a temas con caracteres comodín MQTT
MQTTLos caracteres comodín + y # se tratan como cadenas literales, pero no se tratan como caracteres comodín cuando se utilizan en las políticas. AWS IoT Core Los caracteres InMQTT, + y # se tratan como caracteres comodín solo cuando se suscribe a un filtro de temas, sino como cadenas literales en todos los demás contextos. Le recomendamos que utilice estos MQTT caracteres comodín únicamente como parte de las AWS IoT Core políticas tras considerarlos detenidamente.
A continuación se muestran ejemplos de elementos registrados y no registrados que utilizan MQTT caracteres comodín en las políticas. AWS IoT Core Estos caracteres comodín se tratan como cadenas literales.
- Registered devices
-
En el caso de los dispositivos registrados en el AWS IoT Core registro, la siguiente política permite conectarse con dispositivos clientId que coincidan con el nombre de un elemento del registro. La política permite que los dispositivos se suscriban a los temas «department/+/employees» y «location/#». Como los términos + y # se tratan literalmente como cadenas en AWS IoT Core las políticas, los dispositivos pueden suscribirse al tema «departamento/+/empleados», pero no al tema «departamento/ingeniería/empleados». Del mismo modo, los dispositivos pueden suscribirse al tema «location/#» pero no al tema «location/Seattle». Sin embargo, una vez que el dispositivo se suscriba al tema «departament/+/employees», la política le permitirá recibir mensajes sobre el tema «department/engineering/employees». Del mismo modo, una vez que el dispositivo se suscriba al tema «location/#», también recibirá mensajes del tema «location/Seattle».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/department/+/employees"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/location/#"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:us-east-1:123456789012:topic/*"
}
]
}
- Unregistered devices
-
En el caso de los dispositivos que no estén registrados en el AWS IoT Core registro, la siguiente política permite que los dispositivos se conecten mediante 1, 2 o 3. clientId clientId clientId La política permite que los dispositivos se suscriban a los temas de «department/+/employees» y «location/#». Como los números + y # se tratan literalmente como cadenas en AWS IoT Core las políticas, los dispositivos pueden suscribirse al tema «departamento/+/empleados», pero no al tema «departamento/ingeniería/empleados». Del mismo modo, los dispositivos pueden suscribirse al tema «location/#» pero no a «location/Seattle». Sin embargo, una vez que el dispositivo se suscriba al tema «departament/+/employees», la política le permitirá recibir mensajes sobre el tema «department/engineering/employees». Del mismo modo, una vez que el dispositivo se suscriba al tema «location/#», también recibirá mensajes del tema «location/Seattle».
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/clientId1",
"arn:aws:iot:us-east-1:123456789012:client/clientId2",
"arn:aws:iot:us-east-1:123456789012:client/clientId3"
]
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/department/+/employees"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:123456789012:topicfilter/location/#"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:us-east-1:123456789012:topic/*"
}
]
}
Políticas para y clientes HTTP WebSocket
Cuando se conecta a través HTTP del WebSocket protocolo, se autentica con Signature Version 4 y Amazon Cognito. Las identidades de Amazon Cognito pueden ser autenticadas o no autenticadas. Las identidades autenticadas pertenecen a los usuarios que se han autenticado mediante un proveedor de identidad compatible. Las identidades no autenticadas suelen pertenecer a usuarios invitados que no se autentiquen con un proveedor de identidades. Amazon Cognito proporciona un identificador y AWS credenciales únicos para admitir identidades no autenticadas. Para obtener más información, consulte Autorización con identidades de Amazon Cognito.
Para las siguientes operaciones, AWS IoT Core utiliza AWS IoT Core políticas asociadas a las identidades de Amazon Cognito a través de. AttachPolicy
API Esto reduce los permisos asociados al grupo de identidades de Amazon Cognito con identidades autenticadas.
-
iot:Connect
-
iot:Publish
-
iot:Subscribe
-
iot:Receive
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
Esto significa que una identidad de Amazon Cognito necesita el permiso de la política de IAM roles y de la AWS IoT Core política. Adjunta la política de IAM roles al grupo y la AWS IoT Core política a la identidad de Amazon Cognito a través del. AWS IoT Core
AttachPolicy
API
Los usuarios autenticados y no autenticados son tipos de identidad diferentes. Si no adjuntas una AWS IoT política a Amazon Cognito Identity, un usuario autenticado no podrá obtener la autorización AWS IoT y no tendrá acceso a AWS IoT los recursos ni a las acciones.
Para otras AWS IoT Core operaciones o para identidades no autenticadas, AWS IoT Core no limita los permisos asociados a la función del grupo de identidades de Amazon Cognito. Para las identidades autenticadas y sin autenticar, esta es la política más permisiva que recomendamos asociar al rol del grupo de Amazon Cognito.
HTTP
Para permitir que las identidades de Amazon Cognito no autenticadas publiquen mensajes HTTP sobre un tema específico de Amazon Cognito Identity, adjunte la siguiente política al rol del IAM grupo de Amazon Cognito Identity:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish",
],
"Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${cognito-identity.amazonaws.com:sub}"]
}
]
}
Para permitir la autenticación de usuarios, asocie la política anterior al rol del grupo de Amazon Cognito Identity y a Amazon Cognito Identity mediante. AWS IoT Core AttachPolicyAPI
Al autorizar las identidades de Amazon Cognito AWS IoT Core , tiene en cuenta ambas políticas y concede los privilegios mínimos especificados. Solo se permite una acción si ambas políticas permiten la acción solicitada. Si una de ellas no permite una acción, esa acción no se autoriza.
MQTT
Para permitir que las identidades de Amazon Cognito no autenticadas MQTT publiquen mensajes WebSocket sobre un tema específico de la identidad de Amazon Cognito en su cuenta, adjunte la siguiente política al rol del IAM grupo de identidades de Amazon Cognito:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": ["arn:aws:iot:us-east-1:123456789012:topic/${cognito-identity.amazonaws.com:sub}"]
},
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": ["arn:aws:iot:us-east-1:123456789012:client/${cognito-identity.amazonaws.com:sub}"]
}
]
}
Para permitir la autenticación de usuarios, asocie la política anterior al rol del grupo de Amazon Cognito Identity y a Amazon Cognito Identity mediante. AWS IoT Core AttachPolicyAPI
Al autorizar las identidades de Amazon Cognito AWS IoT Core , tiene en cuenta ambas y concede los privilegios mínimos especificados. Solo se permite una acción si ambas políticas permiten la acción solicitada. Si una de ellas no permite una acción, esa acción no se autoriza.