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 politiche
La policy che utilizzi dipende da come ti connetti AWS IoT Core. Puoi connetterti a AWS IoT Core utilizzando un client MQTT, HTTP o WebSocket. Quando ti connetti con un client MQTT, ti autentichi con un X.509 certificato. Quando ti connetti tramite HTTP o WebSocket protocollo, ti stai autenticando 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 polizze hanno caratteri jolly diversi e dovresti sceglierle dopo un'attenta valutazione. In MQTT, i caratteri jolly + e # sono usati in filtri tematici MQTT per sottoscrivere più nomi di argomenti. AWS IoT Core utilizzo delle politiche * e ? come caratteri jolly e segui le convenzioni di 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 scegli i caratteri jolly da utilizzare in un documento politico, considera che i * il carattere non è limitato a un singolo livello di argomento. Il + 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 |
È AWS IoT Core carattere jolly della politica |
Esempio in AWS IoT Core politiche 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 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 in 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 in 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"
]
}
]
}
Politiche per pubblicare, iscriversi e ricevere messaggi to/from argomenti con un prefisso specifico
Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, iscriversi e ricevere messaggi to/from argomenti preceduti da «topic_prefix».
Nota l'uso del carattere jolly * in questo esempio. Sebbene * è utile per fornire le 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 solo il carattere jolly * dopo un'attenta considerazione.
- Registered devices
-
Per i dispositivi registrati in 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 in 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*"
]
}
]
}
Politiche per pubblicare, iscriversi e ricevere messaggi to/from argomenti specifici per ogni dispositivo
Di seguito sono riportati esempi di dispositivi registrati e non registrati per pubblicare, iscriversi e ricevere messaggi to/from argomenti specifici di un determinato dispositivo.
- Registered devices
-
Per i dispositivi registrati in 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/cosa1». Il dispositivo sarà inoltre in grado di abbonarsi e ricevere contenuti dall'argomento»command/device/cosa1».
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}"
],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": "true"
}
}
},
{
"Effect": "Allow",
"Action": [
"iot:Publish"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/sensor/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topicfilter/command/device/${iot:Connection.Thing.ThingName}"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Receive"
],
"Resource": [
"arn:aws:iot:us-east-1:123456789012:topic/command/device/${iot:Connection.Thing.ThingName}"
]
}
]
}
- Unregistered devices
-
Per i dispositivi non registrati in 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à inoltre in grado di iscriversi 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, iscriversi 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, iscriversi e ricevere messaggi to/from argomenti i cui nomi includono gli attributi degli oggetti.
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 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 e location=Seattle, il dispositivo sarà in grado di pubblicare sull'argomento»sensor/v1«, e iscriviti e ricevi notizie 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
-
Perché gli attributi delle cose esistono solo per i dispositivi registrati in 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 in 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 alla pubblicazione per tutti gli argomenti con il prefisso «department/» ma non con «»department/admins«argomento secondario».
-
{
"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 registro, la seguente politica consente ai dispositivi di connettersi utilizzando ClientID1, ClientID2 o ClientID3. Fornisce l'autorizzazione alla pubblicazione per tutti gli argomenti con il prefisso «department/» ma non con «»department/admins«argomento secondario».
-
{
"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 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". Usando NotResource nella dichiarazione per iot:Receive, consentiamo al dispositivo di ricevere messaggi da tutti gli argomenti a cui il dispositivo è abbonato, ad eccezione degli argomenti con il prefisso»topic_prefix/restricted». Ad esempio, con questa politica, i dispositivi possono abbonarsi a»topic_prefix/topic1«e anche»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 in 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". Usando NotResource nella dichiarazione per iot:Receive, consentiamo al dispositivo di ricevere messaggi relativi a tutti gli argomenti a cui il dispositivo è abbonato, ad eccezione degli argomenti con il prefisso»topic_prefix/restricted». Ad esempio, con questa politica, i dispositivi possono abbonarsi a»topic_prefix/topic1«e anche»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 in AWS IoT Core politiche. 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 queste jolly MQTT solo come parte di AWS IoT Core politiche dopo un'attenta valutazione.
Di seguito sono riportati esempi di oggetti registrati e non registrati che utilizzano caratteri jolly MQTT 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 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/#". Perché + e # vengono trattati come stringhe letterali in AWS IoT Core politiche, i dispositivi possono iscriversi all'argomento «reparto/+/dipendenti» ma non all'argomento»department/engineering/dipendenti». Allo stesso modo, i dispositivi possono iscriversi all'argomento «location/#» ma non all'argomento»location/Seattle». Tuttavia, una volta che il dispositivo si iscrive all'argomento «reparto/+/dipendenti», la politica consentirà loro di ricevere messaggi dall'argomento»department/engineering/dipendenti». Allo stesso modo, una volta che il dispositivo si iscrive all'argomento «location/#», riceverà messaggi dall'argomento»location/Seattle«anche».
-
{
"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 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/#". Perché + e # vengono trattati come stringhe letterali in AWS IoT Core politiche, i dispositivi possono iscriversi all'argomento «reparto/+/dipendenti» ma non all'argomento»department/engineering/dipendenti». Allo stesso modo, 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»department/engineering/dipendenti». Allo stesso modo, una volta che il dispositivo si iscrive all'argomento «location/#», riceverà messaggi dall'argomento»location/Seattle«anche».
-
{
"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 WebSocket clienti
Quando ti connetti tramite HTTP o 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 associate alle identità di Amazon Cognito tramite AttachPolicy API. 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 dal AWS IoT Core politica. Si allega la policy del ruolo IAM al pool e al AWS IoT Core policy all'Amazon Cognito Identity tramite AWS IoT Core
AttachPolicy API.
Gli utenti autenticati e non autenticati sono diversi tipi di identità. Se non alleghi un AWS IoT in base alla politica di Amazon Cognito Identity, un utente autenticato non riesce ad autorizzare AWS IoT e non ha accesso a AWS IoT risorse e azioni.
Per altro 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 gli utenti autenticati, collega la policy precedente al ruolo del pool di identità di Amazon Cognito e ad Amazon Cognito Identity utilizzando AWS IoT Core AttachPolicy API.
Quando si autorizzano 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 a identità Amazon Cognito non autenticate di pubblicare messaggi MQTT su WebSocket su un argomento specifico dell'identità di Amazon Cognito nel tuo account, 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}"]
},
{
"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 identità di Amazon Cognito e ad Amazon Cognito Identity utilizzando AWS IoT Core AttachPolicy API.
Quando si autorizzano 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.