Esempi di policy di pubblicazione/sottoscrizione - AWS IoT Core

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à.

Esempi di policy di pubblicazione/sottoscrizione

La politica che usi dipende dal modo in cui ti connetti. AWS IoT CoreÈ possibile connettersi AWS IoT Core utilizzando un client MQTT, HTTP o WebSocket. Quando ti connetti con un client MQTT, l'autenticazione viene eseguita con un certificato X.509. Quando ti connetti tramite HTTP o il WebSocket protocollo, ti autentichi con Signature Version 4 e Amazon Cognito.

Nota

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 policy MQTT e AWS IoT Core

MQTT e AWS IoT Core le policy hanno caratteri jolly diversi e dovresti sceglierli dopo un'attenta valutazione. In MQTT, i caratteri + jolly # vengono utilizzati nei filtri degli argomenti MQTT per sottoscrivere più nomi di argomenti. AWS IoT Core le politiche utilizzano * e ? come caratteri jolly e seguono le convenzioni delle politiche IAM. 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 scegliete i caratteri jolly da utilizzare in un documento di policy, tenete presente che il * carattere non è limitato a un singolo livello di argomento. Il + carattere è limitato a un singolo livello di argomento in un filtro per argomenti 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 È un carattere jolly AWS IoT Core della politica Esempio AWS IoT Core di policy per i client MQTT
# some/# No N/D
+ some/+/topic No N/D
* No N/D

topicfilter/some/*/topic

topicfilter/some/sensor*/topic

? No N/D

topic/some/?????/topic

topicfilter/some/sensor???/topic

Policy per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti specifici

Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso 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" ] } ] }

Policy per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti con un prefisso specifico

Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti preceduti dal prefisso "topic_prefix".

Nota

Nota l'uso del carattere jolly in questo esempio. * Sebbene * sia utile fornire le autorizzazioni per più nomi di argomenti in un'unica istruzione, può portare a conseguenze indesiderate fornendo ai dispositivi più privilegi del necessario. Si consiglia quindi 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*" ] } ] }

Policy per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti specifici di ciascun dispositivo

Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti che sono specifici di 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à anche in grado di abbonarsi e ricevere dall'argomento «command/device/thing1".

{ "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 sull'argomento «Sensor/Device/ClientID1". Il dispositivo sarà anche in grado di abbonarsi e ricevere messaggi 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}" ] } ] }

Policy per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti con l'attributo dell'oggetto nel nome di argomento

Di seguito viene illustrato un esempio di dispositivi registrati per pubblicare, effettuare la sottoscrizione e ricevere messaggi da/verso argomenti i cui nomi includono attributi dell'oggetto.

Nota

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 è impostato su version=v1 andlocation=Seattle, il dispositivo sarà in grado di pubblicare nell'argomento «sensor/v1", nonché di sottoscrivere e ricevere messaggi dall'argomento «Comando/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 elementi 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 l'autorizzazione per pubblicare in tutti gli argomenti preceduti dal prefisso "department/" ma non nell'argomento secondario "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 l'autorizzazione per pubblicare in tutti gli argomenti preceduti dal prefisso "department/" ma non nell'argomento secondario "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 nell'istruzione per iot:Receive, si consente al dispositivo di ricevere messaggi da tutti gli argomenti sottoscritti dal dispositivo, tranne gli argomenti preceduti dal prefisso "topic_prefix/restricted". Ad esempio, con questa policy, i dispositivi possono effettuare la sottoscrizione a "topic_prefix/topic1" e a "topic_prefix/restricted", tuttavia riceveranno messaggi solo 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 NotResource nella istruzione per iot:Receive, si consente al dispositivo di ricevere messaggi da tutti gli argomenti sottoscritti dal dispositivo, tranne gli argomenti preceduti dal prefisso "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/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. Si consiglia di utilizzare questi caratteri jolly MQTT come parte delle policy solo dopo un'attenta valutazione. AWS IoT Core

Di seguito sono riportati esempi di elementi registrati e non registrati che utilizzano i caratteri jolly MQTT nelle politiche. 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 considerati stringhe letterali nelle AWS IoT Core policy, i dispositivi possono sottoscrivere l'argomento «reparto/+/dipendenti» ma non l'argomento «dipartimento/ingegneria/dipendenti». Allo stesso modo, i dispositivi possono effettuare la sottoscrizione all'argomento "location/#" ma non all'argomento "location/Seattle". Tuttavia, una volta che il dispositivo effettua la sottoscrizione all'argomento "department/+/employees", la policy consentirà di ricevere messaggi dall'argomento "department/engineering/employees". Allo stesso modo, una volta che il dispositivo effettua la sottoscrizione all'argomento "location/#", riceverà messaggi anche 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 «reparto/+/dipendenti» ma non l'argomento «dipartimento/ingegneria/dipendenti». Allo stesso modo, i dispositivi possono effettuare la sottoscrizione all'argomento "location/#" ma non a "location/Seattle". Tuttavia, una volta che il dispositivo effettua la sottoscrizione all'argomento "department/+/employees", la policy consentirà di ricevere messaggi dall'argomento "department/engineering/employees". Allo stesso modo, una volta che il dispositivo effettua la sottoscrizione all'argomento "location/#", riceverà messaggi anche 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/*" } ] }

WebSocketPolitiche per HTTP e client

Quando ti connetti tramite HTTP o il 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 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 le policy collegate alle identità di Amazon Cognito tramite l'API. AttachPolicy In questo modo vengono ridotte le 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 un'identità di Amazon Cognito necessita dell'autorizzazione della policy del ruolo IAM e della AWS IoT Core policy. Puoi collegare la policy del ruolo IAM al pool e la AWS IoT Core policy all'identità di Amazon Cognito tramite l' AWS IoT Core AttachPolicyAPI.

Gli utenti autenticati e non autenticati sono diversi tipi di identità. Se non alleghi una AWS IoT policy all'identità di Amazon Cognito, un utente autenticato non ottiene l'autorizzazione AWS IoT e non ha accesso a AWS IoT risorse e azioni.

Nota

Per altre AWS IoT Core operazioni o per identità non autenticate, AWS IoT Core non limita le 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 l'autenticazione degli utenti, collega la policy precedente al ruolo del pool di Amazon Cognito Identity e all'Amazon Cognito Identity utilizzando l'API. AWS IoT Core AttachPolicy

Nota

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à di Amazon Cognito non autenticate di pubblicare messaggi MQTT WebSocket su un argomento specifico di Amazon Cognito Identity nel tuo account, collega la seguente policy 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 l'autenticazione degli utenti, collega la policy precedente al ruolo del pool di Amazon Cognito Identity e all'Amazon Cognito Identity utilizzando l'API. AWS IoT Core AttachPolicy

Nota

Quando autorizzi le identità di 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.