Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Publish/Subscribe esempi di policy
La policy che utilizzi dipende dal modo in cui ti connetti AWS IoT Core. Puoi connetterti AWS IoT Core utilizzando un client MQTT, HTTP o. WebSocket Quando ti connetti con un client MQTT, ti autentichi con un certificato. X.509 Quando ti connetti tramite HTTP o WebSocket protocollo, ti autentichi con Signature Version 4 e Amazon Cognito.
Per i dispositivi registrati, è consigliabile utilizzare variabili delle policy di oggetto per azioni Connect e collegare l'oggetto al principale utilizzato per la connessione.
Utilizzo di caratteri jolly in MQTT e AWS IoT Core policies
MQTT e AWS IoT Core le policy hanno caratteri jolly diversi e dovresti sceglierli dopo un'attenta valutazione. In MQTT, i caratteri jolly + e i caratteri jolly # vengono utilizzati nei filtri tematici MQTT per sottoscrivere più nomi di argomenti. AWS IoT Core le policy utilizzano * e ? come caratteri jolly e seguono le convenzioni delle politiche IAM. https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html#policies-grammar-json In un documento di policy, * rappresenta qualsiasi combinazione di caratteri e il punto interrogativo ? rappresenta qualsiasi singolo carattere. Nei documenti delle policy, i caratteri jolly MQTT, + e # sono trattati come caratteri senza alcun significato speciale. Per descrivere più nomi e filtri di argomenti nell'attributo resource di una policy, utilizza i caratteri jolly * e ? al posto dei caratteri jolly MQTT.
Quando scegli i caratteri jolly da utilizzare in un documento politico, considera che il * carattere non è limitato a un singolo livello di argomento. Il + carattere è limitato a un singolo livello di argomento in un filtro tematico MQTT. Per contribuire a vincolare una specifica di carattere jolly a un singolo livello di filtro di argomento MQTT, considera l'utilizzo di più caratteri ?. Per ulteriori informazioni sull'utilizzo di caratteri jolly in una risorsa di policy e altri esempi corrispondenti, consulta Utilizzo di caratteri jolly negli ARN delle risorse.
La tabella seguente mostra i diversi caratteri jolly utilizzati in MQTT e le policy AWS IoT Core per client MQTT.
| Carattere jolly. |
È un carattere jolly MQTT |
Esempio in MQTT |
La politica è un carattere jolly AWS IoT Core |
Esempio di AWS IoT Core policy per i client 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
|
Politiche per pubblicare, iscriversi e ricevere messaggi to/from (argomenti specifici)
Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, iscriversi e ricevere messaggi con to/from l'argomento denominato «some_specific_topic». Gli esempi evidenziano anche che Publish e Receive utilizzano "topic" come la risorsa e che Subscribe utilizza "topicfilter" come la risorsa.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. Inoltre, fornisce le autorizzazioni Publish, Subscribe e Receive per l'argomento denominato "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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando ClientID1, ClientID2 o ClientID3. Inoltre, fornisce le autorizzazioni Publish, Subscribe e Receive per l'argomento denominato "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"
]
}
]
}
Criteri per la pubblicazione, la sottoscrizione e la ricezione di messaggi: argomenti con un prefisso specifico to/from
Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, iscriversi e ricevere to/from argomenti di messaggi con il prefisso «topic_prefix».
Nota l'uso del carattere jolly in questo esempio. * Sebbene * sia utile fornire autorizzazioni per più nomi di argomenti in un'unica dichiarazione, può portare a conseguenze indesiderate fornendo ai dispositivi più privilegi di quelli richiesti. Pertanto, ti consigliamo di utilizzare il carattere * jolly solo dopo un'attenta valutazione.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. Inoltre, fornisce le autorizzazioni Publish, Subscribe e Receive per gli argomenti preceduti dal prefisso "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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando ClientID1, ClientID2 o ClientID3. Inoltre, fornisce le autorizzazioni Publish, Subscribe e Receive per gli argomenti preceduti dal prefisso "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*"
]
}
]
}
Criteri per la pubblicazione, la sottoscrizione e la ricezione di messaggi: argomenti specifici per ciascun dispositivo to/from
Di seguito vengono illustrati alcuni esempi di to/from argomenti relativi a dispositivi registrati e non registrati per la pubblicazione, l'iscrizione e la ricezione di messaggi specifici per un determinato dispositivo.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. Fornisce l'autorizzazione per pubblicare nell'argomento specifico dell'oggetto (sensor/device/${iot:Connection.Thing.ThingName}), nonché effettuare la sottoscrizione e ricevere messaggi dall'argomento specifico dell'oggetto (command/device/${iot:Connection.Thing.ThingName}). Se il nome dell'oggetto nel registro è «thing1", il dispositivo sarà in grado di pubblicare nell'argomento" sensor/device /thing1». Il dispositivo sarà inoltre in grado di sottoscrivere e ricevere contenuti dall'argomento "/thing1». command/device
-
{
"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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientID1, clientID2 o clientID3. Fornisce l'autorizzazione per pubblicare nell'argomento specifico del client (sensor/device/${iot:ClientId}), nonché effettuare la sottoscrizione e ricevere messaggi dall'argomento specifico del client (command/device/${iot:ClientId}). Se il dispositivo si connette con ClientID come ClientID1, sarà in grado di pubblicare nell'argomento "/clientId1». sensor/device Il dispositivo sarà inoltre in grado di sottoscrivere e ricevere contenuti dall'argomento. 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}"
]
}
]
}
Politiche per pubblicare, sottoscrivere e ricevere messaggi ( to/from argomenti con l'attributo thing nel nome dell'argomento)
Di seguito viene mostrato un esempio di dispositivi registrati per pubblicare, sottoscrivere e ricevere messaggi, to/from argomenti i cui nomi includono attributi di oggetti.
Gli attributi degli oggetti esistono solo per i dispositivi registrati nel AWS IoT Core
Registro di sistema. Non esiste un esempio corrispondente per dispositivi non registrati.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. Fornisce l'autorizzazione per pubblicare nell'argomento (sensor/${iot:Connection.Thing.Attributes[version]}), nonché effettuare la sottoscrizione e ricevere messaggi dall'argomento (command/${iot:Connection.Thing.Attributes[location]}) dove il nome di argomento include gli attributi dell'oggetto. Se il nome dell'oggetto nel registro ha version=v1 elocation=Seattle, il dispositivo sarà in grado di pubblicare sull'argomento "sensor/v1«e iscriversi e ricevere informazioni dall'argomento"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
-
Poiché gli attributi degli oggetti esistono solo per i dispositivi registrati nel AWS IoT Core registro, non esiste un esempio corrispondente per gli oggetti non registrati.
Policy per rifiutare la pubblicazione di messaggi in argomenti secondari di un nome di argomento
Di seguito vengono illustrati esempi di dispositivi registrati e non registrati per pubblicare messaggi in tutti gli argomenti tranne determinati argomenti secondari.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. Fornisce il permesso di pubblicare su tutti gli argomenti con il prefisso «department/» ma non sul sottoargomento "». 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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientID1, clientID2 o clientID3. Fornisce il permesso di pubblicare su tutti gli argomenti con il prefisso «department/» ma non sul sottoargomento "». 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"
]
}
]
}
Policy per rifiutare la ricezione di messaggi da argomenti secondari di un nome di argomento
Di seguito vengono illustrati esempi di dispositivi registrati e non registrati per effettuare la sottoscrizione e ricevere messaggi da argomenti con prefissi specifici tranne determinati argomenti secondari.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. La policy consente ai dispositivi di effettuare la sottoscrizione a qualsiasi argomento preceduto dal prefisso "topic_prefix". Utilizzando NotResource l'istruzione foriot:Receive, consentiamo al dispositivo di ricevere messaggi relativi a tutti gli argomenti a cui il dispositivo è abbonato, ad eccezione degli argomenti preceduti da "». topic_prefix/restricted Ad esempio, con questa politica, i dispositivi possono abbonarsi a topic_prefix/topic1 "" e persino a "topic_prefix/restricted«, tuttavia riceveranno solo messaggi dall'argomento" topic_prefix/topic1 "e nessun messaggio dall'argomento"»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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando ClientID1, ClientID2 o ClientID3. La policy consente ai dispositivi di effettuare la sottoscrizione a qualsiasi argomento preceduto dal prefisso "topic_prefix". Utilizzando l'NotResourceistruzione foriot:Receive, consentiamo al dispositivo di ricevere messaggi relativi a tutti gli argomenti a cui il dispositivo è abbonato, ad eccezione degli argomenti preceduti da "». topic_prefix/restricted Ad esempio, con questa politica, i dispositivi possono abbonarsi a "topic_prefix/topic1" e persino "». topic_prefix/restricted Tuttavia, riceveranno solo messaggi dall'argomento "topic_prefix/topic1" e nessun messaggio dall'argomento "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/*"
}
]
}
Policy per effettuare la sottoscrizione agli argomenti utilizzando caratteri jolly MQTT
I caratteri jolly MQTT + e # vengono trattati come stringhe letterali, ma non vengono trattati come caratteri jolly quando vengono utilizzati nelle politiche. AWS IoT Core In MQTT, i caratteri + e # vengono trattati come caratteri jolly solo quando si effettua la sottoscrizione a un filtro di argomenti, ma come una stringa letterale in tutti gli altri contesti. Ti consigliamo di utilizzare questi caratteri jolly MQTT come parte delle policy solo dopo un'attenta valutazione. AWS IoT Core
Di seguito sono riportati alcuni esempi di oggetti registrati e non registrati che utilizzano i jolly MQTT nelle policy. AWS IoT Core Questi caratteri jolly vengono trattati come stringhe letterali.
- Registered devices
-
Per i dispositivi registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi con ClientID che corrisponde al nome di un elemento nel registro. La policy consente ai dispositivi di effettuare la sottoscrizione agli argomenti "department/+/employees" e "location/#". Poiché + e # sono trattati come stringhe letterali nelle AWS IoT Core policy, i dispositivi possono sottoscrivere l'argomento «department/+/employees» ma non l'argomento "/employees». department/engineering Analogamente, i dispositivi possono sottoscrivere l'argomento «location/#» ma non l'argomento "». location/Seattle Tuttavia, una volta che il dispositivo si iscrive all'argomento «reparto/+/dipendenti», la politica consentirà loro di ricevere messaggi dall'argomento "/dipendenti». department/engineering Analogamente, una volta che il dispositivo si iscrive all'argomento «location/#», riceverà anche messaggi dall'argomento "". 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
-
Per i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando ClientID1, ClientID2 o ClientID3. La policy consente ai dispositivi di effettuare la sottoscrizione agli argomenti "department/+/employees" e "location/#". Poiché + e # sono trattati come stringhe letterali nelle AWS IoT Core policy, i dispositivi possono sottoscrivere l'argomento «department/+/employees» ma non l'argomento "/employees». department/engineering Analogamente, i dispositivi possono sottoscrivere l'argomento «location/#» ma non "». location/Seattle Tuttavia, una volta che il dispositivo si iscrive all'argomento «reparto/+/dipendenti», la politica consentirà loro di ricevere messaggi dall'argomento "/dipendenti». department/engineering Analogamente, una volta che il dispositivo si iscrive all'argomento «location/#», riceverà anche messaggi dall'argomento "". 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/*"
}
]
}
Politiche per HTTP e client WebSocket
Quando ti connetti tramite HTTP o WebSocket protocollo, ti autentichi con Signature Version 4 e Amazon Cognito. Idenitità di Amazon Cognito possono essere autenticate e non autenticate. Le identità autenticate appartengono agli utenti autenticati da qualsiasi provider di identità supportato. Solitamente le identità non autenticate appartengono in genere agli utenti guest che non sono in grado di effettuare l'autenticazione con un provider di identità. Amazon Cognito fornisce un identificatore e delle AWS credenziali univoci per supportare identità non autenticate. Per ulteriori informazioni, consulta Autorizzazione con identità Amazon Cognito.
Per le seguenti operazioni, AWS IoT Core utilizza AWS IoT Core policy allegate alle identità di Amazon Cognito tramite l'API. AttachPolicy Questo definisce l'ambito delle autorizzazioni associate al pool di identità di Amazon Cognito con identità autenticate.
-
iot:Connect
-
iot:Publish
-
iot:Subscribe
-
iot:Receive
-
iot:GetThingShadow
-
iot:UpdateThingShadow
-
iot:DeleteThingShadow
Ciò significa che Amazon Cognito Identity necessita dell'autorizzazione prevista dalla policy sui ruoli IAM e dalla policy. AWS IoT Core Puoi allegare la policy del ruolo IAM al pool e la AWS IoT Core policy all'Amazon Cognito Identity tramite l' AWS IoT Core
AttachPolicyAPI.
Gli utenti autenticati e non autenticati sono diversi tipi di identità. Se non alleghi una AWS IoT policy ad Amazon Cognito Identity, un utente autenticato fallisce l'autorizzazione AWS IoT e non ha accesso a AWS IoT risorse e azioni.
Per altre AWS IoT Core operazioni o per identità non autenticate, AWS IoT Core non definisce l'ambito delle autorizzazioni associate al ruolo del pool di identità di Amazon Cognito. Per le identità autenticate e non autenticate, questa è la policy più permissiva che consigliamo di collegare al ruolo del pool di Amazon Cognito.
HTTP
Per permettere alle identità non autenticate di Amazon Cognito di pubblicare messaggi tramite HTTP in un argomento specifico di Amazon Cognito Identity, collega la seguente policy IAM al ruolo del pool di identità di 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}"
]
}
]
}
Per consentire gli utenti autenticati, collega la policy precedente al ruolo del pool di identità di Amazon Cognito e ad Amazon Cognito Identity utilizzando l'API. AWS IoT Core AttachPolicy
Quando autorizzi le identità di Amazon Cognito, AWS IoT Core considera entrambe le politiche e concede i privilegi minimi specificati. Un'operazione è consentita solo se entrambe le policy consentono l'operazione richiesta. Se una policy non consente un'operazione, quest'ultima non è autorizzata.
MQTT
Per consentire alle identità Amazon Cognito non autenticate di pubblicare messaggi MQTT WebSocket su un argomento specifico di Amazon Cognito Identity nel tuo account, collega la seguente politica IAM al ruolo del pool di 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}"]
},
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": ["arn:aws:iot:us-east-1:123456789012:client/${cognito-identity.amazonaws.com:sub}"]
}
]
}
Per consentire gli utenti autenticati, collega la policy precedente al ruolo del pool di Amazon Cognito Identity e ad Amazon Cognito Identity utilizzando l'API. AWS IoT Core AttachPolicy
Quando autorizzi le identità Amazon Cognito, AWS IoT Core considera entrambe e concede i privilegi minimi specificati. Un'operazione è consentita solo se entrambe le policy consentono l'operazione richiesta. Se una policy non consente un'operazione, quest'ultima non è autorizzata.