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 policy che usi dipende dal modo in cui ti connetti AWS IoT Core. Puoi connetterti a AWS IoT Core utilizzando un MQTT clientHTTP, o WebSocket. Quando ti connetti con un MQTT client, ti autentichi con un certificato X.509. Quando ti connetti tramite HTTP il WebSocket protocollo, ti stai autenticando 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 e MQTT AWS IoT Core policies

MQTTe AWS IoT Core le politiche hanno caratteri jolly diversi e dovresti sceglierli dopo un'attenta valutazione. InMQTT, i caratteri + jolly # vengono utilizzati nei filtri degli MQTT argomenti 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 relativi alle policy, i caratteri MQTT jolly # sono trattati come quei caratteri senza alcun significato speciale. + Per descrivere più nomi di argomenti e filtri di argomento nell'resourceattributo di una policy, utilizzate i caratteri ? jolly * e i caratteri jolly al posto dei caratteri MQTT jolly.

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 + personaggio è limitato a un singolo livello di argomento in un MQTT filtro per argomento. Per aiutare a vincolare una specifica di caratteri jolly a un singolo livello di filtro dell'MQTTargomento, prendi in considerazione l'utilizzo di più caratteri. ? Per ulteriori informazioni sull'uso dei caratteri jolly in una risorsa politica e altri esempi di ciò che corrispondono, consulta Uso dei caratteri jolly nelle risorse. ARNs

La tabella seguente mostra i diversi caratteri jolly utilizzati in e MQTT AWS IoT Core politiche per i MQTT clienti.

Carattere jolly. È un MQTT carattere jolly Esempio in MQTT Is (È) AWS IoT Core carattere jolly della policy Esempio in AWS IoT Core politiche per MQTT i clienti
# 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 in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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 in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. 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 in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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 in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. 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 in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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 dispositivi non registrati in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. 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 clientId 1, sarà in grado di pubblicare nell'argomento «clientIdsensor/dispositivo/ 1". 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 in AWS IoT Core Registro. Non esiste un esempio corrispondente per dispositivi non registrati.

Registered devices

Per i dispositivi registrati in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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=v1and»location=Seattle, il dispositivo sarà in grado di pubblicare nell'argomento «sensor/v1" e sottoscrivere e ricevere 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

Perché gli attributi degli oggetti esistono solo per i dispositivi registrati in 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 in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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 in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. 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 in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono 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 in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. 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/*" } ] }

Norme per MQTT la sottoscrizione agli argomenti che utilizzano caratteri jolly

MQTTi caratteri jolly + e # vengono trattati come stringhe letterali, ma non vengono trattati come caratteri jolly quando vengono utilizzati in AWS IoT Core politiche. InMQTT, + e # vengono considerati come caratteri jolly solo quando ci si iscrive a un filtro per argomenti, ma come stringhe letterali in tutti gli altri contesti. Ti consigliamo di utilizzare questi MQTT caratteri jolly solo come parte di AWS IoT Core politiche dopo un'attenta valutazione.

Di seguito sono riportati esempi di elementi registrati e non registrati che utilizzano caratteri MQTT jolly in AWS IoT Core politiche. Questi caratteri jolly vengono trattati come stringhe letterali.

Registered devices

Per i dispositivi registrati in AWS IoT Core registro, la seguente politica consente la connessione di dispositivi clientId che corrispondono al nome di un elemento nel registro. La policy consente ai dispositivi di effettuare la sottoscrizione agli argomenti "department/+/employees" e "location/#". Perché + e # sono trattati come stringhe letterali in AWS IoT Core politiche, 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 in AWS IoT Core nel registro, la seguente politica consente ai dispositivi di connettersi utilizzando clientId 1, clientId 2 o clientId 3. La policy consente ai dispositivi di effettuare la sottoscrizione agli argomenti "department/+/employees" e "location/#". Perché + e # sono trattati come stringhe letterali in AWS IoT Core politiche, 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/*" } ] }

HTTPPolitiche WebSocket per e clienti

Quando ti connetti tramite HTTP il WebSocket protocollo, ti stai autenticando 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 univoco e AWS credenziali 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 politiche collegate alle identità di Amazon Cognito tramite. AttachPolicy API 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 politica del IAM ruolo e del AWS IoT Core politica. Alleghi la politica del IAM ruolo al pool e al AWS IoT Core politica per l'identità di Amazon Cognito tramite AWS IoT Core AttachPolicy API.

Gli utenti autenticati e non autenticati sono diversi tipi di identità. Se non alleghi un AWS IoT politica relativa all'identità di Amazon Cognito, un utente autenticato non riesce ad accedere AWS IoT e non ha accesso a AWS IoT risorse e azioni.

Nota

Per altri AWS IoT Core operazioni o per identità non autenticate, AWS IoT Core non definisce 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 consentire alle identità di Amazon Cognito non autenticate di pubblicare messaggi HTTP su un argomento specifico di Amazon Cognito Identity, collega la seguente policy IAM al ruolo del pool 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}"] } ] }

Per consentire l'autenticazione degli utenti, collega la policy precedente al ruolo del pool di Amazon Cognito Identity e all'Amazon Cognito Identity utilizzando il AWS IoT Core AttachPolicy API.

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 MQTT pubblicare messaggi WebSocket su un argomento specifico dell'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 il AWS IoT Core AttachPolicy API.

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.