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 politiche di messaggistica diretta
L'utilizzo 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.
In questa sezione:
Politica per l'invio di un messaggio diretto a un cliente specifico su argomenti specifici
Affinché un mittente possa inviare messaggi diretti, deve disporre dell'iot:SendDirectMessageautorizzazione per utilizzare l'ID del client di destinazione come risorsa. La chiave iot:Topic condizionale (opzionale) limita gli argomenti su cui il mittente può inviare messaggi.
-
Per i server di 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 autenticati con autorizzazione personalizzata, la funzione Lambda deve restituire un documento di policy che concede la risorsa client di destinazione con la
iot:SendDirectMessagechiave di condizioneiot:Topic
La seguente politica consente device1 al client di inviare messaggi diretti al client 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 di ricezione di messaggi diretti
La politica del destinatario deve garantire iot:Receive sull'argomento. Il destinatario non necessita di iot:Subscribe autorizzazione: AWS IoT Core consegna messaggi diretti senza richiedere un abbonamento 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 destinatario 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 sotto il 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 di invio di un messaggio diretto a qualsiasi cliente su argomenti specifici
La seguente politica consente al mittente di inviare messaggi diretti a qualsiasi client, 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 iot:Topic condition supporta l'abbinamento di caratteri jolly con l'operatore di StringLike condizione.
Politica di invio di un messaggio diretto a qualsiasi cliente su qualsiasi argomento
La seguente politica consente al mittente di inviare messaggi diretti a qualsiasi client su qualsiasi argomento. È adatto per 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": "*" } } } ] }