View a markdown version of this page

Esempi di policy sulla messaggistica diretta - 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 sulla messaggistica diretta

L'uso della messaggistica diretta richiede politiche specifiche. La messaggistica diretta utilizza l'API SendDirectMessage HTTP per recapitare i messaggi da un mittente a un singolo destinatario identificato dal relativo ID client MQTT. Questa sezione presenta esempi di politiche che consentono usi comuni della messaggistica diretta.

Politica per inviare un messaggio diretto a un cliente specifico su argomenti specifici

Affinché un mittente possa inviare messaggi diretti, deve disporre dell'iot:SendDirectMessageautorizzazione con l'ID del client di destinazione come risorsa. La chiave di iot:Topic condizione (opzionale) limita gli argomenti su cui il mittente può inviare messaggi.

  • Per i server SigV4-authenticated backend, aggiungila a una policy IAM.

  • Per i dispositivi X.509-authenticated IoT, aggiungilo a una AWS IoT Core policy.

  • Per i client personalizzati autenticati dall'autore, la funzione Lambda deve restituire un documento di policy che concede iot:SendDirectMessage alla risorsa del client di destinazione la chiave di condizione iot:Topic

La seguente politica consente device1 al cliente di inviare messaggi diretti al cliente sugli argomenti e. myDevice commands/reboot commands/update

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/myDevice", "Condition": { "StringEquals": { "iot:Topic": ["commands/reboot", "commands/update"] } } } ] }

Politica per la ricezione di messaggi diretti

La politica del destinatario deve concedere una concessione iot:Receive sull'argomento. Il destinatario non necessita di iot:Subscribe autorizzazione: AWS IoT Core invia messaggi diretti senza richiedere l'iscrizione all'argomento. Il destinatario può autenticarsi utilizzando X.509 il certificato client (AWS IoT Core policy) o SIGv4 (policy IAM). In entrambi i casi, è richiesta l'iot:Receiveautorizzazione sull'argomento ricevente.

La seguente politica consente myDevice al client ricevente di ricevere messaggi diretti sugli argomenti commands/reboot ecommands/update.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/reboot" }, { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/update" } ] }

La seguente politica utilizza un carattere jolly per consentire al destinatario di ricevere messaggi diretti su qualsiasi argomento indicato nel commands/ prefisso.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Receive", "Resource": "arn:aws:iot:us-west-2:123456789012:topic/commands/*" } ] }
Nota

Il destinatario deve stabilire una connessione MQTT a AWS IoT Core prima di ricevere un messaggio diretto. I messaggi diretti non vengono messi in coda per i dispositivi offline.

Politica per inviare un messaggio diretto a qualsiasi cliente su argomenti specifici

La seguente politica consente al mittente di inviare messaggi diretti a qualsiasi cliente, ma solo su argomenti corrispondenti al commands/* prefisso. Ciò è utile per i servizi di gestione del parco veicoli che devono raggiungere qualsiasi dispositivo, ma solo per argomenti di comando specifici.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/*", "Condition": { "StringLike": { "iot:Topic": "commands/*" } } } ] }
Nota

La chiave di iot:Topic condizione supporta la corrispondenza con caratteri jolly con l'operatore di StringLike condizione.

Politica per inviare un messaggio diretto a qualsiasi cliente su qualsiasi argomento

La seguente politica consente al mittente di inviare messaggi diretti a qualsiasi cliente su qualsiasi argomento. È adatto per i casi d'uso amministrativi o di gestione del parco veicoli in cui un servizio di backend richiede un accesso illimitato.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:SendDirectMessage", "Resource": "arn:aws:iot:us-west-2:123456789012:client/*", "Condition": { "StringLike": { "iot:Topic": "*" } } } ] }