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á.
Exemplos de política de publicação/inscrição
A política que você usa depende de como você está se conectando AWS IoT Core. Você pode se conectar AWS IoT Core usando um MQTT cliente,HTTP, ou WebSocket. Ao se conectar com um MQTT cliente, você está se autenticando com um certificado X.509. Ao se conectar ao HTTP WebSocket protocolo, você está se autenticando com o Signature versão 4 e o Amazon Cognito.
Para dispositivos registrados, recomendamos usar variáveis de política de objetos para ações de Connect
e anexar o objeto à entidade principal usada para a conexão.
Usando caracteres curinga em MQTT políticas AWS IoT Core
MQTTe AWS IoT Core as políticas têm caracteres curinga diferentes e você deve escolhê-los após uma análise cuidadosa. EmMQTT, os caracteres curinga +
e #
são usados em filtros de MQTT tópicos para assinar vários nomes de tópicos. AWS IoT Core as políticas usam *
e ?
como caracteres curinga e seguem as convenções das IAM políticas. Em um documento de política, o *
representa qualquer combinação caracteres, e um ponto de interrogação ?
representa qualquer caractere único. Em documentos de política, os caracteres MQTT curinga +
e e #
são tratados como aqueles caracteres sem significado especial. Para descrever vários nomes de tópicos e filtros de tópicos no resource
atributo de uma política, use os caracteres ?
curinga *
e no lugar dos caracteres MQTT curinga.
Ao escolher os caracteres curinga a serem usados em um documento de política, considere que o *
caractere não está confinado a um único nível de tópico. O +
personagem está confinado a um único nível de tópico em um filtro de MQTT tópicos. Para ajudar a restringir uma especificação de curinga a um único nível de filtro de MQTT tópico, considere usar vários ?
caracteres. Para obter mais informações sobre o uso de caracteres curinga em um recurso de política e mais exemplos de sua correspondência, consulte Usando curingas no recurso. ARNs
A tabela abaixo mostra os diferentes caracteres curinga usados MQTT e as AWS IoT Core políticas para MQTT clientes.
Caractere curinga |
É um MQTT caractere curinga |
Exemplo em MQTT |
A AWS IoT Core política é um caractere curinga |
Exemplo de AWS IoT Core políticas para MQTT clientes |
# |
Sim |
some/# |
Não |
N/D |
+ |
Sim |
some/+/topic |
Não |
N/D |
* |
Não |
N/D |
Sim |
topicfilter/some/*/topic
topicfilter/some/sensor*/topic
|
? |
Não |
N/D |
Sim |
topic/some/?????/topic
topicfilter/some/sensor???/topic
|
Políticas para publicar, assinar e receber/enviar mensagens de tópicos específicos
Veja a seguir exemplos de dispositivos registrados e não registrados para publicar, assinar e receber/enviar mensagens do tópico chamado “some_specific_topic”. Os exemplos também destacam que Publish
e Receive
usam "topic" como recurso, enquanto Subscribe
usa "topicfilter".
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. Ele também fornece permissões de Publish
, Subscribe
e Receive
para o tópico chamado “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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. Ele também fornece permissões de Publish
, Subscribe
e Receive
para o tópico chamado “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, assinar e receber/enviar mensagens de tópicos com um prefixo específico
Veja a seguir exemplos de dispositivos registrados e não registrados para publicar, assinar e receber/enviar mensagens de tópicos com "topic_prefix".
Observe o uso do caractere curinga *
neste exemplo. Embora *
seja útil fornecer permissões para vários nomes de tópicos em uma única declaração, isso pode levar a consequências inesperadas ao fornecer mais privilégios aos dispositivos do que o necessário. Portanto, recomendamos que você use o caractere curinga somente *
após uma análise cuidadosa.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. Ele também fornece permissões de Publish
, Subscribe
e Receive
para tópicos com o prefixo “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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. Ele também fornece permissões de Publish
, Subscribe
e Receive
para tópicos com o prefixo “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, assinar e receber/enviar mensagens de tópicos específicos de cada dispositivo
Veja a seguir exemplos de dispositivos registrados e não registrados para publicar, assinar e receber/enviar mensagens de tópicos específicos do dispositivo em questão.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. Ela fornece permissão para publicar no tópico específico do objeto (sensor/device/${iot:Connection.Thing.ThingName}
) e também assinar e receber do tópico específico do objeto (command/device/${iot:Connection.Thing.ThingName}
). Se o nome da coisa no registro for “coisa1", o dispositivo poderá publicar no tópico “sensor/dispositivo/coisa1". O dispositivo também poderá se inscrever e receber do tópico “comando/dispositivo/coisa1".
{
"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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. Ela fornece permissão para publicar no tópico específico do cliente (sensor/device/${iot:ClientId}
) e também assinar e receber do tópico específico do cliente (command/device/${iot:ClientId}
). Se o dispositivo se conectar com clientId as clientId 1, ele poderá publicar no tópico “clientIdsensor/dispositivo/1". O dispositivo também poderá se inscrever e receber informações do tópicodevice/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, assinar e receber/enviar mensagens de tópicos com o atributo de objeto no nome do tópico
A seguir, é mostrado um exemplo de dispositivos registrados para publicar, assinar e receber/enviar mensagens de tópicos cujos nomes incluem atributos de objetos.
Os atributos Thing só existem para dispositivos registrados no AWS IoT Core
Registro. Não há um exemplo correspondente para dispositivos não registrados.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. Ela fornece permissão para publicar no tópico (sensor/${iot:Connection.Thing.Attributes[version]}
) e assinar e receber do tópico (command/${iot:Connection.Thing.Attributes[location]}
), onde o nome do tópico inclui atributos de objeto. Se o nome da coisa no registro tiver version=v1
elocation=Seattle
, o dispositivo poderá publicar no tópico “sensor/v1", assinar e receber do tópico “Command/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: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 os atributos das coisas existem apenas para dispositivos registrados no AWS IoT Core registro, não há um exemplo correspondente para coisas não registradas.
Políticas para negar a publicação de mensagens em subtópicos do nome de um tópico
Veja a seguir exemplos de dispositivos registrados e não registrados para publicar mensagens em todos os tópicos, exceto em determinados subtópicos.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. Ela fornece permissão para publicar em todos os tópicos com o prefixo "department/", mas não no subtópico "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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. Ela fornece permissão para publicar em todos os tópicos com o prefixo "department/", mas não no subtópico "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 negar o recebimento de mensagens de subtópicos do nome de um tópico
Veja a seguir exemplos de dispositivos registrados e não registrados para publicar e receber mensagens de tópicos com prefixos específicos, exceto determinados subtópicos.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. A política permite que os dispositivos assinem qualquer tópico com o prefixo "topic_prefix". Ao usar NotResource
na instrução para iot:Receive
, permitimos que o dispositivo receba mensagens de todos os tópicos dos quais ele é assinante, exceto os tópicos com o prefixo "topic_prefix/restricted". Por exemplo, com essa política, os dispositivos podem assinar “topic_prefix/topic1” e até mesmo “topic_prefix/restricted”; no entanto, eles só receberão mensagens do tópico “topic_prefix/topic1” e nenhuma mensagem do tópico “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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. A política permite que os dispositivos assinem qualquer tópico com o prefixo "topic_prefix". Ao usar NotResource
na instrução para iot:Receive
, permitimos que o dispositivo receba mensagens de todos os tópicos dos quais ele é assinante, exceto os tópicos com o prefixo "topic_prefix/restricted". Por exemplo, com essa política, os dispositivos podem assinar “topic_prefix/topic1" e até mesmo “topic_prefix/restricted”. No entanto, eles só receberão mensagens do tópico “topic_prefix/topic1" e nenhuma mensagem do tópico “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 assinar tópicos usando MQTT caracteres curinga
MQTTos caracteres curinga + e # são tratados como cadeias de caracteres literais, mas não são tratados como curingas quando usados em políticas. AWS IoT Core EmMQTT, + e # são tratados como curingas somente ao assinar um filtro de tópico, mas como uma string literal em todos os outros contextos. Recomendamos que você use esses MQTT curingas somente como parte das AWS IoT Core políticas após uma análise cuidadosa.
A seguir, mostramos exemplos de itens registrados e não registrados usando MQTT curingas nas AWS IoT Core políticas. Esses curingas são tratados como strings literais.
- Registered devices
-
Para dispositivos registrados no AWS IoT Core registro, a política a seguir permite clientId que dispositivos se conectem com o nome de uma coisa no registro. A política permite que os dispositivos assinem os tópicos "department/+/employees" e "location/#". Como + e # são tratados como cadeias de caracteres literais nas AWS IoT Core políticas, os dispositivos podem se inscrever no tópico “departamento/+/funcionários”, mas não no tópico “departamento/engenharia/funcionários”. Da mesma forma, os dispositivos podem assinar o tópico "location/#", mas não o tópico "location/Seattle". No entanto, quando o dispositivo assinar o tópico "department/+/employees", a política permitirá que ele receba mensagens do tópico "department/engineering/employees". Da mesma forma, quando o dispositivo assinar o tópico "location/#", ele também receberá mensagens do tópico "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
-
Para dispositivos não registrados no AWS IoT Core registro, a política a seguir permite que os dispositivos se conectem usando clientId 1, clientId 2 ou clientId 3. A política permite que os dispositivos assinem os tópicos "department/+/employees" e "location/#". Como + e # são tratados como cadeias de caracteres literais nas AWS IoT Core políticas, os dispositivos podem se inscrever no tópico “departamento/+/funcionários”, mas não no tópico “departamento/engenharia/funcionários”. Da mesma forma, os dispositivos podem assinar o tópico "location/#", mas não "location/Seattle". No entanto, quando o dispositivo assinar o tópico "department/+/employees", a política permitirá que ele receba mensagens do tópico "department/engineering/employees". Da mesma forma, quando o dispositivo assinar o tópico "location/#", ele também receberá mensagens do tópico "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 HTTP e WebSocket clientes
Ao se conectar ao HTTP WebSocket protocolo, você está se autenticando com o Signature versão 4 e o Amazon Cognito. As identidades do Amazon Cognito podem ser autenticadas ou não autenticadas. As identidades autenticadas pertencem a usuários que são autenticados por qualquer provedor de identidades. As identidades não autenticadas geralmente pertencem a usuários convidados que não são autenticados com um provedor de identidade. O Amazon Cognito fornece um identificador e AWS credenciais exclusivos para oferecer suporte a identidades não autenticadas. Para obter mais informações, consulte Autorização com identidades do Amazon Cognito.
Para as seguintes operações, AWS IoT Core usa AWS IoT Core políticas anexadas às identidades do Amazon Cognito por meio do. AttachPolicy
API Isso define as permissões anexadas ao pool de identidades do Amazon Cognito com identidades autenticadas.
-
iot:Connect
-
iot:Publish
-
iot:Subscribe
-
iot:Receive
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
Isso significa que uma identidade do Amazon Cognito precisa da permissão da política de IAM função e da AWS IoT Core política. Você anexa a política de IAM função ao pool e a AWS IoT Core política à Identidade do Amazon Cognito por meio do. AWS IoT Core
AttachPolicy
API
Usuários autenticados e não autenticados são tipos de identidade diferentes. Se você não anexar uma AWS IoT política à Identidade do Amazon Cognito, um usuário autenticado falhará na autorização AWS IoT e não terá acesso aos AWS IoT recursos e ações.
Para outras AWS IoT Core operações ou para identidades não autenticadas, AWS IoT Core não define o escopo das permissões associadas à função do grupo de identidades do Amazon Cognito. Para as identidades autenticadas e não autenticadas, esta é a política mais permissiva que recomendamos anexar ao perfil do banco do Amazon Cognito.
HTTP
Para permitir que identidades não autenticadas do Amazon Cognito publiquem mensagens HTTP sobre um tópico específico da Identidade do Amazon Cognito, anexe a seguinte política à função do pool de Identidade do Amazon IAM 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}"]
}
]
}
Para permitir usuários autenticados, anexe a política anterior à função do pool de Identidade do Amazon Cognito e à Identidade do Amazon Cognito usando o. AWS IoT Core AttachPolicyAPI
Ao autorizar as identidades do Amazon Cognito AWS IoT Core , considere as duas políticas e conceda os menores privilégios especificados. Uma ação será permitida somente se as duas políticas permitirem a ação solicitada. Se uma das políticas não permitir uma ação, essa ação não será autorizada.
MQTT
Para permitir que identidades não autenticadas do Amazon Cognito MQTT publiquem mensagens WebSocket sobre um tópico específico da Identidade do Amazon Cognito em sua conta, anexe a seguinte política à função do pool de Identidade do Amazon IAM 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 usuários autenticados, anexe a política anterior à função do pool de Identidade do Amazon Cognito e à Identidade do Amazon Cognito usando o. AWS IoT Core AttachPolicyAPI
Ao autorizar as identidades do Amazon Cognito AWS IoT Core , considere ambas e conceda os menores privilégios especificados. Uma ação será permitida somente se as duas políticas permitirem a ação solicitada. Se uma das políticas não permitir uma ação, essa ação não será autorizada.