Dela via


Skapa och etablera IoT Edge enheter i stor skala i Linux med symmetrisk nyckel

Gäller för:ja-ikonen IoT Edge 1.1

Viktigt

IoT Edge 1.1 slutdatum 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 från slutpunkt till slutpunkt för automatisk avetablering av en eller flera Linux-IoT Edge-enheter med symmetriska nycklar. Du kan automatiskt etablera Azure IoT Edge-enheter med Azure IoT Hub enhetsetableringstjänst (DPS). Om du inte känner till processen för automatisk avetablering läser du etableringsöversikten innan du fortsätter.

Uppgifterna är följande:

  1. Skapa antingen en enskild registrering för en enskild enhet eller en gruppregistrering för en uppsättning enheter.
  2. Installera IoT Edge-körningen och anslut till IoT Hub.

Symmetrisk nyckelattestering är en enkel metod för att autentisera en enhet med en tjänstinstans för enhetsetablering. Den här attesteringsmetoden representerar en "Hello World"-upplevelse för utvecklare som är nybörjare på enhetsetablering eller inte har strikta säkerhetskrav. Enhetsattestering med ett TPM - eller X.509-certifikat är säkrare och bör användas för strängare säkerhetskrav.

Förutsättningar

Molnresurser

  • En aktiv IoT-hubb
  • En instans av IoT Hub enhetsetableringstjänst i Azure som är länkad till din IoT-hubb

Krav på enheten

En fysisk eller virtuell Linux-enhet som ska vara den IoT Edge enheten.

Du måste definiera ett uniktregistrerings-ID för att identifiera varje enhet. Du kan använda MAC-adressen, serienumret eller unik information från enheten. Du kan till exempel använda en kombination av en MAC-adress och ett serienummer som bildar följande sträng för ett registrerings-ID: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Giltiga tecken är alfanumeriska gemener och bindestreck (-).

Skapa en DPS-registrering

Skapa en registrering för att etablera en eller flera enheter via DPS.

Om du vill etablera en enda IoT Edge enhet skapar du en enskild registrering. Om du behöver flera etablerade enheter följer du stegen för att skapa en DPS-gruppregistrering.

När du skapar en registrering i DPS har du möjlighet att deklarera ett första enhetstvillingtillstånd. I enhetstvillingen kan du ange taggar för att gruppera enheter efter de mått du behöver i din lösning, till exempel region, miljö, plats eller enhetstyp. Dessa taggar används för att skapa automatiska distributioner.

Mer information om registreringar i enhetsetableringstjänsten finns i Hantera enhetsregistreringar.

Skapa en individuell DPS-registrering

Tips

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. Mer information finns i az iot dps enrollment (az iot dps enrollment). Som en del av CLI-kommandot använder du den gränsaktiverade flaggan för att ange att registreringen är för en IoT Edge enhet.

  1. I Azure Portal navigerar du till din instans av IoT Hub enhetsetableringstjänst.

  2. Under Inställningar väljer du Hantera registreringar.

  3. Välj Lägg till enskild registrering och slutför sedan följande steg för att konfigurera registreringen:

    1. För Mekanism väljer du Symmetrisk nyckel.

    2. Ange ett unikt registrerings-ID för din enhet.

    3. Du kan också ange ett IoT Hub enhets-ID för din enhet. Du kan använda enhets-ID:n för att rikta in dig på en enskild enhet för moduldistribution. Om du inte anger något enhets-ID används registrerings-ID:t.

    4. Välj Sant för att deklarera att registreringen gäller för en IoT Edge enhet.

    5. Du kan också lägga till ett taggvärde i det initiala enhetstvillingtillståndet. Du kan använda taggar till målgrupper med enheter för moduldistribution. Ett exempel:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Välj Spara.

  4. Kopiera den enskilda registreringens primärnyckelvärde som ska användas när du installerar IoT Edge-körningen.

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. Sedan 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-paket i listan över betrodda nycklar.

Viktigt

Den 30 juni 2022 drogs Raspberry Pi OS Stretch tillbaka från supportlistan för operativsystemet nivå 1. För att undvika potentiella säkerhetsrisker uppdaterar du värdoperativsystemet till Bullseye.

Installationen kan gö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.deb
    
  • 18.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
    

Anteckning

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 accepterar licensvillkoren ska du inte använda det paketet.

Installera en containermotor

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-körningen.

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 loggningsdrivrutinen som loggningsmekanism. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.

  • Skapa eller öppna Docker-daemonens konfigurationsfil på /etc/docker/daemon.json.

  • Ange loggningsdrivrutinen som standard för local loggningsdrivrutinen enligt exemplet nedan.

       {
          "log-driver": "local"
       }
    
  • Starta om containermotorn för att ändringarna ska börja gälla.

    sudo systemctl restart docker
    

    Tips

    Om du får fel när du installerar Moby-containermotorn kontrollerar du Linux-kerneln för Moby-kompatibilitet. Vissa tillverkare av inbäddade enheter skickar enhetsavbildningar som innehåller anpassade Linux-kernels utan de funktioner som krävs för containermotorns kompatibilitet. Kör följande kommando, som använder skriptet check-config 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.sh
    

    I skriptets utdata kontrollerar du att alla objekt under Generally Necessary och Network Drivers är aktiverade. Om du saknar funktioner aktiverar du dem genom att återskapa kerneln från källan och välja de associerade modulerna för inkludering i rätt kernel-.config. På samma sätt, om du använder en generator för kernelkonfiguration som defconfig eller menuconfig, 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-körningen

Den 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 vanliga 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

Anteckning

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 körningen har installerats på enheten konfigurerar du enheten med den information den använder för att ansluta till enhetsetableringstjänsten och IoT Hub.

Ha följande information klar:

  • DPS ID-omfångsvärdet
  • Enhetsregistrerings-ID:t som du skapade
  • Antingen primärnyckeln från en enskild registrering eller en härledd nyckel för enheter som använder en gruppregistrering.
  1. Öppna konfigurationsfilen på den IoT Edge enheten.

    sudo nano /etc/iotedge/config.yaml
    
  2. Leta reda på avsnittet etableringskonfigurationer i filen. Avkommentera raderna för etablering av symmetrisk DPS-nyckel och se till att andra etableringsrader kommenteras ut.

    Raden provisioning: ska inte ha något föregående blanksteg och kapslade objekt ska vara indragna med två blanksteg.

    # DPS TPM provisioning configuration
    provisioning:
      source: "dps"
      global_endpoint: "https://global.azure-devices-provisioning.net"
      scope_id: "PASTE_YOUR_SCOPE_ID_HERE"
      attestation:
        method: "symmetric_key"
        registration_id: "PASTE_YOUR_REGISTRATION_ID_HERE"
        symmetric_key: "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE"
    
    # always_reprovision_on_startup: true
    # dynamic_reprovisioning: true
    
  3. Uppdatera värdena scope_idför , registration_idoch symmetric_key med din DPS- och enhetsinformation.

  4. Du kan också använda raderna always_reprovision_on_startup eller dynamic_reprovisioning för att konfigurera enhetens återetableringsbeteende. Om en enhet är inställd på att etableras vid start försöker den alltid etablera med DPS först och återgår sedan till etableringssäkerhetskopian om det misslyckas. Om en enhet är inställd på dynamiskt återetablering startar IoT Edge (och alla moduler) om en ometableringshändelse identifieras, till exempel om enheten flyttas från en IoT Hub till en annan. Mer specifikt söker IoT Edge efter eller device_disabled fel från SDK:t för bad_credential att identifiera återetableringshändelsen. Om du vill utlösa den här händelsen manuellt inaktiverar du enheten i IoT Hub. Mer information finns i IoT Hub begrepp för ometablering av enheter.

  5. 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 körningen har startats kan du gå in på din IoT Hub och börja distribuera IoT Edge moduler till enheten.

Du kan kontrollera att den enskilda registrering som du skapade i enhetsetableringstjänsten användes. Gå till instansen av enhetsetableringstjänsten i Azure Portal. Öppna registreringsinformationen för den enskilda registrering som du skapade. Observera att statusen för registreringen har tilldelats och att enhets-ID:t visas.

Använd följande kommandon på enheten för att kontrollera att IoT Edge installerats och startats.

Kontrollera status för IoT Edge-tjänsten.

systemctl status iotedge

Granska tjänstloggar.

journalctl -u iotedge --no-pager --no-full

Lista moduler som körs.

iotedge list

Nästa steg

Registreringsprocessen för enhetsetableringstjänsten gör att du kan ange taggar för enhets-ID och enhetstvillingar samtidigt som du etablerar 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.