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. Puoi connetterti 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 HTTP tramite il 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 nelle politiche e MQTT AWS IoT Core
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'resource
attributo 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 nei client MQTT e AWS IoT Core le politiche applicate. MQTT
Carattere jolly. |
È un carattere MQTT jolly |
Esempio in MQTT |
È un AWS IoT Core carattere jolly della politica |
Esempio di AWS IoT Core politiche per i clienti MQTT |
# |
Sì |
some/# |
No |
N/D |
+ |
Sì |
some/+/topic |
No |
N/D |
* |
No |
N/D |
Sì |
topicfilter/some/*/topic
topicfilter/some/sensor*/topic
|
? |
No |
N/D |
Sì |
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 di connettersi a 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 nel AWS IoT Core 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 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 di connettersi ai 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 nel AWS IoT Core 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 nel AWS IoT Core registro, la seguente politica consente di connettersi ai 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 i dispositivi non registrati nel AWS IoT Core registro, la seguente politica consente ai dispositivi di connettersi utilizzando 1, 2 o 3. clientId clientId clientId 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.
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 di connettersi a 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=v1
and»location=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 di connettersi a 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 nel AWS IoT Core 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 nel AWS IoT Core registro, la seguente politica consente di connettersi ai 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 nel AWS IoT Core 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 nelle politiche. AWS IoT Core InMQTT, + e # vengono considerati come caratteri jolly solo quando si sottoscrive un filtro per argomenti, ma come stringhe letterali in tutti gli altri contesti. Ti consigliamo di utilizzare questi caratteri MQTT jolly come parte delle AWS IoT Core politiche solo dopo un'attenta valutazione.
Di seguito sono riportati alcuni esempi di elementi registrati e non registrati che utilizzano caratteri MQTT jolly 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 di connettersi a 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/#". 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 1, 2 o 3. clientId clientId clientId 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 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/*"
}
]
}
HTTP WebSocketPolitiche per e clienti
Quando ti connetti HTTP tramite 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. 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 della AWS IoT Core politica. Alleghi la politica del IAM ruolo al pool e la AWS IoT Core politica all'identità di Amazon Cognito tramite. AWS IoT Core
AttachPolicy
API
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.
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 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 AttachPolicyAPI
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 AttachPolicyAPI
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.