Servizi AWS IoT core e MQTT: creazione di oggetti AWS con certificato e policy – 2
Ora dobbiamo connettere il nostro dispositivo tramite MQTT; il sistema di sicurezza utilizzato da Amazon è tramite certificato generato direttamente dall’interfaccia web. Puoi collegare un solo dispositivo con il relativo certificato, quindi devi fare cinque certificati se vuoi creare cinque dispositivi.
Per comunicare con i dispositivi esp8266, esp32 o Arduino, deve connettersi ad AWS IoT Core con le credenziali del dispositivo. Devi anche specificare gli argomenti per i quali ha il permesso di publish e subscribe.
Seleziona la regione corretta
È essenziale prevenire errori o selezionare la regione corretta in cui sviluppi e ospiti le tue risorse.
- Per il Nord America la regione predefinita è
us-east-1
- Per l’Europa scelgo
eu-west-1
Presta attenzione se selezioni una regione non supportata dal tuo dispositivo Alexa quando eseguiamo il test sul dispositivo; la tua skill non funzionerà.
Per supportare tutti i dispositivi, devi rilasciare lambda in più regioni .
Recupera il tuo Account ID
Innanzitutto, è necessario l’ID account e, per farlo, apri questo collegamento Impostazioni account, ottieni il valore ID account e inseriscilo nel file setup.txt nella sezione [ID account].
Recupera l’endpoint MQTT IoT
IoT Core crea per te un End-point MQTT; puoi trovarlo su AWS IoT Console e fare clic sul menu Impostazioni a sinistra.
https://eu-west-1.console.aws.amazon.com/iot/home?region=eu-west-1#/settings (Europe)
https://us-east-1.console.aws.amazon.com/iot/home?region=us-east-1#/settings (North America)
Ottieni l’endpoint personalizzato XXXXXXXXXXXXXX-ats.iot.eu-west-1.amazonaws.com
e incolla il file setup.txt nella sezione [IoT MQTT EndPoint]
.
Crea un nuovo oggetto
Nel progetto che hai già scaricato, controlla la cartella esp8266_relay_iot_core/certificates.
- Nella console AWS IoT (IoT Core), scegli dal menù di sinistra Manage and Things .
Oppure direttamente:
https://us-east-1.console.aws.amazon.com/iot/home?region=us-east-1#/thinghub (Nord America)
https://eu-west-1.console .aws.amazon.com/iot/home?region=eu-west-1#/thinghub (Europa)
- Quindi fai clic sul pulsante Create in alto a destra, quindi Register a single AWS IoT thing.
- Assegna un nome al nuovo oggetto esp8266_relay e copialo anche nel file
setup.txt
nella sezione[Device name]
. Lascia i campi rimanenti impostati sui valori predefiniti. Scegli Avanti . - Scegli Crea certificato.
- Scarica all’interno della cartella
esp8266_relay_iot_core/certificates
: Certificato per questo Oggetto, chiave privata, quindi fai clic vicino a A CA root per AWS IoT sul link Download, e seleziona Amazon Root CA 1.. - Scegli Attiva.
- Quindi fare clic su Collega policy.
- Per ora qui fare clic su Fatto.
Crea una policy
- Ora su AWS IoT Console fai clic sul menu a sinistra Sicurezza e nel sottomenu fai clic su Policy
https://eu-west-1.console.aws.amazon.com/iot/home?region=eu-west-1#/policyhub (Europa)
https://us-east-1.console.aws.amazon .com/iot/home?region=us-east-1#/policyhub (Nord America)
- Fare clic sul pulsante Crea in alto a destra.
- Imposta il nome della politica esp8266_relay_policy. Scegli la scheda Avanzate .
- Incolla il seguente modello di criteri.
Modello generico (controlla il tag circondato da []
e sostituisci i valori da file setup.txt
).
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:[Region]:[Account ID]:client/[Device name]"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:[Region]:[Account ID]:topicfilter/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:[Region]:[Account ID]:topic/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "arn:aws:iot:[Region]:[Account ID]:topic/relay/pub"
}
]
}
Europa (controlla la regione)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:eu-west-1:XXXXXXXXXXXX:client/esp8266_relay"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:eu-west-1:XXXXXXXXXXXX:topicfilter/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:eu-west-1:XXXXXXXXXXXX:topic/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "arn:aws:iot:eu-west-1:XXXXXXXXXXXX:topic/relay/pub"
}
]
}
Nord America (controlla la regione)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "arn:aws:iot:us-east-1:XXXXXXXXXXXX:client/esp8266_relay"
},
{
"Effect": "Allow",
"Action": "iot:Subscribe",
"Resource": "arn:aws:iot:us-east-1:XXXXXXXXXXXX:topicfilter/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Receive",
"Resource": "arn:aws:iot:us-east-1:XXXXXXXXXXXX:topic/relay/sub"
},
{
"Effect": "Allow",
"Action": "iot:Publish",
"Resource": "arn:aws:iot:us-east-1:XXXXXXXXXXXX:topic/relay/pub"
}
]
}
- Sostituisci XXXXXXXXXXXX con il tuo ID account, che puoi trovare in
setup.txt
. - Scegli Crea.
Allega una policy a un oggetto
- Nella console AWS IoT, scegli sicurezza, Certificati. Seleziona quello creato per il tuo dispositivo, puoi identificarlo spuntando il prefisso del file di certificato che avevi precedentemente scaricato, controlla il certificato e nel menu Operazioni in alto a destra scegli Collega policy .
- Scegli esp8266_relay_policy, Collega.
Il tuo dispositivo AWS IoT è ora configurato per avere l’autorizzazione per connettersi a AWS IoT Core. Può anche pubblicare sul topic relay/pub e iscriversi al topic relay/sub. Per ulteriori informazioni sulla protezione dei dispositivi, consulta Criteri AWS IoT .
Copia relay/pub e relay/sub rispettivamente nel [IoT MQTT publish topic]
e [IoT MQTT subscribe topic]
del nostro file setup.txt.
Grazie
- Servizi AWS IoT core e MQTT: introduzione e prerequisiti
- Servizi AWS IoT core e MQTT: creazione di oggetti AWS con certificato e policy
- Servizi AWS IoT core e MQTT: connettere i dispositivi esp8266
- Servizi AWS IoT core e MQTT: connettere i dispositivi esp32
- Servizi AWS IoT core e MQTT: connettere i dispositivi Arduino SAMD (WiFiNINA).
- Servizi AWS IoT core e MQTT: test da console e MQTT.fx