Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:
IoT Edge 1.1
Viktigt!
IoT Edge 1.1 supportdatumet upphör var den 13 december 2022. I informationen om Microsoft-produktens livscykel hittar du fler uppgifter om vilken support som gäller för denna produkt, tjänst, teknik eller detta API. Mer information om hur du uppdaterar till den senaste versionen av IoT Edge finns i Uppdatera IoT Edge-.
Den här artikeln innehåller instruktioner för automatisk avetablering av en Azure IoT Edge för Linux-enhet med hjälp av en TPM (Trusted Platform Module). Du kan automatiskt etablera IoT Edge-enheter med Azure IoT Hub-enhetsetableringstjänsten. Om du inte känner till processen för autoprovisionering läser du översikt över provisioning innan du fortsätter.
Den här artikeln beskriver två metoder. Välj din inställning baserat på lösningens arkitektur:
- Automatkonfigurera en Linux-enhet med fysisk TPM-maskinvara. Ett exempel är Infineon OPTIGA™ TPM SLB 9670.
- Autoetablera en virtuell Linux-dator (VM) med en simulerad TPM som körs på en Windows-utvecklingsdator med Hyper-V aktiverat. Vi rekommenderar att du endast använder den här metoden som ett testscenario. En simulerad TPM erbjuder inte samma säkerhet som en fysisk TPM.
Instruktionerna skiljer sig åt beroende på din metod, så se till att du är på rätt flik framöver.
Uppgifterna är följande:
- Hämta konfigurationsinformation för din TPM.
- Skapa en enskild registrering för enheten i en instans av IoT Hub-enhetsetableringstjänsten.
- Installera IoT Edge-körningen och anslut enheten till IoT-hubben.
Förutsättningar
Molnresurser
- En aktiv nav för sakernas internet
- En instans av IoT Hub-enhetsetableringstjänsten i Azure, länkad till din IoT-hubb
- Om du inte har någon instans av enhetsetableringstjänsten kan du följa anvisningarna i snabbstarten Skapa en ny IoT Hub-enhetsetableringstjänst och Länka IoT-hubben och enhetsetableringstjänsten i snabbstarten för enhetsetableringstjänsten i IoT Hub.
- När du har kört enhetsetableringstjänsten kopierar du värdet för ID-omfånget från översiktssidan. Du använder det här värdet när du konfigurerar IoT Edge-körningen.
Enhetskrav
En fysisk Linux-enhet som ska vara IoT Edge-enheten.
Om du är enhetstillverkare kan du läsa mer om hur du integrerar en TPM i tillverkningsprocessen.
Anmärkning
TPM 2.0 krävs när du använder TPM-attestering med enhetsetableringstjänsten.
Du kan bara skapa enskilda registreringar för enhetstillhandahållningstjänster, inte gruppregistreringar, när du använder en TPM.
Konfigurera din enhet
Om du använder en fysisk Linux-enhet med en TPM finns det inga extra steg för att konfigurera enheten.
Du är redo att fortsätta.
Hämta konfigurationsinformation för din TPM
I det här avsnittet skapar du ett verktyg som du kan använda för att hämta registrerings-ID:t och bekräftelsenyckeln för din TPM.
Logga in på enheten och följ sedan stegen i Konfigurera en Linux-utvecklingsmiljö för att installera och skapa Azure IoT-enhets-SDK för C.
Kör följande kommandon för att skapa SDK-verktyget som hämtar information om enhetsetablering för din TPM.
cd azure-iot-sdk-c/cmake cmake -Duse_prov_client:BOOL=ON .. cd provisioning_client/tools/tpm_device_provision make sudo ./tpm_device_provisionUtdatafönstret visar enhetens registrerings-ID och bekräftelsenyckeln. Kopiera dessa värden för användning senare när du skapar en enskild registrering för enheten i enhetsetableringstjänsten.
När du har ditt registrerings-ID och bekräftelsenyckel är du redo att fortsätta.
Tips/Råd
Om du inte vill använda TPM2-programvaruverktygen för att hämta informationen måste du hitta ett annat sätt att hämta etableringsinformationen. Bekräftelsenyckeln, som är unik för varje TPM-chip, erhålls från den TPM-chiptillverkare som är associerad med den. Du kan härleda ett unikt registrerings-ID för din TPM-enhet. Som du ser ovan kan du till exempel skapa en SHA-256-hash för bekräftelsenyckeln.
Skapa en enhetsförsörjningstjänstregistrering
Använd TPM:s etableringsinformation för att skapa en enskild registrering i enhetsetableringstjänsten.
När du skapar en registrering i enhetsetableringstjänsten har du möjlighet att deklarera ett initialt enhetstvillingtillstånd. I enhetstvillingen kan du ange taggar för att gruppera enheter efter mått som används i din lösning, till exempel region, miljö, plats eller enhetstyp. Dessa taggar används för att skapa automatiska distributioner.
Tips/Råd
Stegen i den här artikeln gäller för Azure Portal, men du kan också skapa enskilda registreringar med hjälp av Azure CLI. För mer information, se az iot dps-registrering. Som en del av CLI-kommandot använder du flaggan edge-aktiverad för att ange att registreringen är för en IoT Edge-enhet.
I Azure Portal går du till din instans av IoT Hub-enhetsetableringstjänsten.
Under Inställningar väljer du Hantera registreringar.
Välj Lägg till enskild registrering och slutför sedan följande steg för att konfigurera registreringen:
För Mekanism väljer du TPM.
Ange bekräftelsenyckelnoch registrerings-ID:t som du kopierade från den virtuella datorn eller den fysiska enheten.
Ange ett ID för enheten om du vill. Om du inte anger något enhets-ID används registrerings-ID:t.
Välj Sant för att deklarera att den virtuella datorn eller den fysiska enheten är en IoT Edge-enhet.
Välj den länkade IoT-hubb som du vill ansluta enheten till eller välj Länka till ny IoT Hub. Du kan välja flera hubbar och enheten tilldelas till en av dem enligt den valda tilldelningsprincipen.
Lägg till ett taggvärde i "Initial Device Twin State" om du vill. Du kan använda taggar för att rikta in grupper av enheter för distribution av moduler. Mer information finns i Distribuera IoT Edge-moduler i stor skala.
Välj Spara.
Nu när det finns en registrering för den här enheten kan IoT Edge-körningen automatiskt etablera enheten under installationen.
Installera IoT Edge
I det här avsnittet förbereder du din virtuella Linux-dator eller fysiska enhet för IoT Edge. Därefter installerar du IoT Edge.
Kör följande kommandon för att lägga till paketlagringsplatsen och lägg sedan till Signeringsnyckeln för Microsoft-paketet i listan över betrodda nycklar.
Viktigt!
Den 30 juni 2022 drogs Raspberry Pi OS Stretch tillbaka från supportlistan för operativsystemet på nivå 1. För att undvika potentiella säkerhetsrisker uppdaterar du värdoperativsystemet till Bullseye.
Installationen kan utföras med några få kommandon. Öppna en terminal och kör följande kommandon:
20.04:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb18.04:
wget https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
Anmärkning
Azure IoT Edge-programvarupaket omfattas av licensvillkoren som finns i varje paket (usr/share/doc/{package-name} eller LICENSE katalogen). Läs licensvillkoren innan du använder ett paket. Din installation och användning av ett paket utgör ditt godkännande av dessa villkor. Om du inte godkänner licensvillkoren ska du inte använda det paketet.
Installera en container-motor
Azure IoT Edge förlitar sig på en OCI-kompatibel containerkörning. För produktionsscenarier rekommenderar vi att du använder Moby-motorn. Moby-motorn är den enda containermotorn som officiellt stöds med IoT Edge. Docker CE/EE-containeravbildningar är kompatibla med Moby-runtime.
Installera Moby-motorn.
sudo apt-get update; \
sudo apt-get install moby-engine
När Moby-motorn har installerats konfigurerar du den så att den använder local loggningsdrivrutin som loggningsmekanism. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.
Skapa eller öppna Docker-daemonens konfigurationsfil på
/etc/docker/daemon.json.Ange standardloggningsdrivrutinen till
localenligt exemplet nedan.{ "log-driver": "local" }Starta om containermotorn för att ändringarna ska börja gälla.
sudo systemctl restart dockerTips/Råd
Om du får fel när du installerar Moby-containermotorn kontrollerar du Linux-kerneln för Moby-kompatibilitet. Vissa inbäddade enhetstillverkare skickar enhetsavbildningar som innehåller anpassade Linux-kärnor utan de funktioner som krävs för containermotorns kompatibilitet. Kör följande kommando, som använder check-config-skriptet som tillhandahålls av Moby, för att kontrollera kernelkonfigurationen:
curl -ssl https://raw.githubusercontent.com/moby/moby/master/contrib/check-config.sh -o check-config.sh chmod +x check-config.sh ./check-config.shKontrollera att alla objekt under
Generally NecessaryochNetwork Driversär aktiverade i skriptets utdata. Om du saknar funktioner aktiverar du dem genom att återskapa kerneln från källan och välja de associerade modulerna som ska ingå i lämplig kernelkonfiguration. På samma sätt, om du använder en kernelkonfigurationsgenerator somdefconfigellermenuconfig, letar du upp och aktiverar respektive funktioner och återskapar kerneln i enlighet med detta. När du har distribuerat den nyligen ändrade kerneln kör du check-config-skriptet igen för att kontrollera att alla nödvändiga funktioner har aktiverats.
Installera IoT Edge-runtime-miljön
IoT Edge-säkerhetsdaemonen tillhandahåller och upprätthåller säkerhetsstandarder på IoT Edge-enheten. Daemonen startar vid varje start och startar enheten genom att starta resten av IoT Edge-körningen.
Stegen i det här avsnittet representerar den typiska processen för att installera den senaste versionen på en enhet som har internetanslutning. Om du behöver installera en viss version, t.ex. en förhandsversion, eller om du behöver installera offline följer du installationsstegen offline eller specifik version senare i den här artikeln.
Installera IoT Edge version 1.1.* tillsammans med paketet libiothsm-std:
sudo apt-get update; \
sudo apt-get install iotedge
Anmärkning
IoT Edge version 1.1 är den långsiktiga supportgrenen för IoT Edge. Om du kör en äldre version rekommenderar vi att du installerar eller uppdaterar till den senaste korrigeringen eftersom äldre versioner inte längre stöds.
Etablera enheten med dess molnidentitet
När runtime-miljön har installerats på enheten konfigurerar du enheten med den information den använder för att ansluta till enhetstillhandahållandetjänsten och IoT Hub.
Känn till enhetsförsörjningstjänstens ID-omfång och enhetens Registrerings-ID som samlats in tidigare.
Öppna konfigurationsfilen på din IoT Edge-enhet.
sudo nano /etc/iotedge/config.yamlLeta reda på avsnittet etableringskonfiguration i filen. Avkommentera raderna för TPM-provisionering och se till att alla andra provisioneringsrader är utkommenterade.
Raden
provisioning:ska inte ha något föregående mellanslag, och kapslade objekt ska vara indragna med två mellanslag.# DPS TPM provisioning configuration provisioning: source: "dps" global_endpoint: "https://global.azure-devices-provisioning.net" scope_id: "SCOPE_ID_HERE" attestation: method: "tpm" registration_id: "REGISTRATION_ID_HERE" # always_reprovision_on_startup: true # dynamic_reprovisioning: falseUppdatera värdena för
scope_idochregistration_idmed din enhets provisioningtjänst och enhetsinformation. Värdetscope_idär ID-omfånget från enhetsetableringstjänstinstansens översiktssida.Du kan också använda raderna
always_reprovision_on_startupellerdynamic_reprovisioningför att konfigurera enhetens återetableringsbeteende. Om en enhet är inställd på att konfigureras vid start försöker den alltid konfigurera med DPS först och återgår sedan till backup av konfiguration om det misslyckas. Om en enhet är inställd på att dynamiskt ometablera sig, startar IoT Edge (och alla moduler) om och etablerar om vid en ometableringshändelse, till exempel om enheten flyttas från en IoT Hub till en annan. Mer specifikt kontrollerar IoT Edge efterbad_credentialellerdevice_disabledfel från SDK:t för att upptäcka ometableringshändelsen. Om du vill utlösa den här händelsen manuellt inaktiverar du enheten i IoT Hub. För mer information, se IoT Hub-enheters omdisponeringskoncept.Spara och stäng filen.
Ge IoT Edge åtkomst till TPM
IoT Edge-runtime måste få tillgång till TPM för att automatiskt tilldela din enhet.
Du kan ge TPM åtkomst till IoT Edge-körningsmiljön genom att åsidosätta systeminställningarna så att iotedge tjänsten har root-behörigheter. Om du inte vill höja tjänstprivilegier kan du också använda följande steg för att manuellt ge TPM-åtkomst.
Skapa en ny regel som ger IoT Edge-körningsåtkomst till
tpm0ochtpmrm0.sudo touch /etc/udev/rules.d/tpmaccess.rulesÖppna regelfilen.
sudo nano /etc/udev/rules.d/tpmaccess.rulesKopiera följande åtkomstinformation till regelfilen. Kanske
tpmrm0inte finns på enheter som använder en kernel tidigare än 4.12. Enheter som inte hartpmrm0kommer att ignorera den regeln på ett säkert sätt.# allow iotedge access to tpm0 KERNEL=="tpm0", SUBSYSTEM=="tpm", OWNER="iotedge", MODE="0600" KERNEL=="tpmrm0", SUBSYSTEM=="tpmrm", OWNER="iotedge", MODE="0600"Spara och avsluta filen.
Utlös systemet
udevför att utvärdera den nya regeln./bin/udevadm trigger --subsystem-match=tpm --subsystem-match=tpmrmKontrollera att regeln har tillämpats.
ls -l /dev/tpm*Framgångsrika resultat visas på följande sätt:
crw------- 1 iotedge root 10, 224 Jul 20 16:27 /dev/tpm0 crw------- 1 iotedge root 10, 224 Jul 20 16:27 /dev/tpmrm0Om du inte ser att rätt behörigheter har tillämpats kan du prova att starta om datorn för att uppdatera
udev.Starta om IoT Edge-körningen så att den hämtar alla konfigurationsändringar som du har gjort på enheten.
sudo systemctl restart iotedge
Kontrollera att installationen har slutförts
Om du inte redan gjorde det startar du om IoT Edge-körningen så att den hämtar alla konfigurationsändringar som du har gjort på enheten.
sudo systemctl restart iotedge
Kontrollera att IoT Edge-runtime är igång.
sudo systemctl status iotedge
Granska daemon-loggar.
journalctl -u iotedge --no-pager --no-full
Om du ser etableringsfel kan det bero på att konfigurationsändringarna inte har börjat gälla än. Försök att starta om IoT Edge-daemonen igen.
sudo systemctl daemon-reload
Eller prova att starta om den virtuella datorn för att se om ändringarna börjar gälla på nytt.
Om körningen startades framgångsrikt kan du gå till din IoT-hubb och se att den nya enheten har etablerats automatiskt. Nu är enheten redo att köra IoT Edge-moduler.
Visa en lista över moduler som körs.
iotedge list
Du kan kontrollera att den enskilda registreringen som du skapade i enhetsetableringstjänsten användes. Gå till din instans av enhetsetableringstjänsten i Azure-portalen. Öppna registreringsinformationen för den enskilda registrering som du skapade. Observera att registreringens status är tilldelad och att enhetens ID visas.
Nästa steg
Registreringsprocessen för enhetsetableringstjänsten låter dig ställa in enhets-ID och enhetstvillingtaggar samtidigt som du registrerar den nya enheten. Du kan använda dessa värden för att rikta in dig på enskilda enheter eller grupper av enheter med hjälp av automatisk enhetshantering.
Lär dig hur du distribuerar och övervakar IoT Edge-moduler i stor skala med hjälp av Azure Portal eller Azure CLI.