Skapa och etablera IoT Edge-enheter i stor skala i Linux med hjälp av symmetrisk nyckel

Gäller för:IoT Edge 1.4 checkmark IoT Edge 1.4

Viktigt!

IoT Edge 1.4 är den version som stöds. Om du har en tidigare version läser du 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änsten (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.

Dricks

För en förenklad upplevelse kan du prova konfigurationsverktyget för Azure IoT Edge. Det här kommandoradsverktyget, som för närvarande är i offentlig förhandsversion, installerar IoT Edge på din enhet och etablerar det med DPS och symmetrisk nyckelattestering.

Symmetrisk nyckelattestering är en enkel metod för att autentisera en enhet med en instans av enhetsetableringstjänsten. 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änsten i Azure, länkad till din IoT-hubb

Enhetskrav

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

Du måste definiera ett uniktregistrerings-ID för att identifiera varje enhet. Du kan använda MAC-adressen, serienumret eller någon 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 initialt enhetstvillingtillstånd. I enhetstvillingen kan du ange taggar för att gruppera enheter efter mått som 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

Dricks

Stegen i den här artikeln gäller för Azure-portalen, men du kan också skapa enskilda registreringar med hjälp av Azure CLI. Mer information finns i 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.

  1. I Azure-portalen går du till din instans av IoT Hub-enhetsetableringstjänsten.

  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 inledande enhetstvillingtillståndet. Du kan använda taggar till målgrupper med enheter för moduldistribution. Till 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-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:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 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
    

Mer information om operativsystemversioner finns i Plattformar som stöds av Azure IoT Edge.

Kommentar

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

Som standard anger containermotorn inte storleksbegränsningar för containerloggar. Med tiden kan detta leda till att enheten fylls med loggar och att diskutrymmet börjar ta slut. Du kan dock konfigurera loggen så att den visas lokalt, även om den är valfri. Mer information om loggningskonfiguration finns i Checklista för produktionsdistribution.

Följande steg visar hur du konfigurerar containern så att den använder local loggningsdrivrutinen som loggningsmekanism.

  1. Skapa eller redigera den befintliga Docker-daemonens konfigurationsfil

    sudo nano /etc/docker/daemon.json
    
  2. Ange loggningsdrivrutinen som standard till local loggningsdrivrutinen enligt exemplet.

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

    sudo systemctl restart docker
    

Installera IoT Edge-körningen

IoT Edge-tjänsten tillhandahåller och upprätthåller säkerhetsstandarder på IoT Edge-enheten. Tjänsten startar vid varje start och startar enheten genom att starta resten av IoT Edge-körningen.

Kommentar

Från och med version 1.2 hanterar IoT-identitetstjänsten identitetsetablering och hantering för IoT Edge och för andra enhetskomponenter som behöver kommunicera med IoT Hub.

Stegen i det här avsnittet representerar den typiska processen för att installera den senaste IoT Edge-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.

Dricks

Om du redan har en IoT Edge-enhet som kör en äldre version och vill uppgradera till den senaste versionen använder du stegen i Uppdatera IoT Edge-säkerhetsdaemonen och körningen. Senare versioner skiljer sig tillräckligt från tidigare versioner av IoT Edge för att specifika steg krävs för att uppgradera.

Installera den senaste versionen av IoT Edge och IoT-identitetstjänstpaketet (om du inte redan är uppdaterad):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Det valfria defender-iot-micro-agent-edge paketet innehåller Microsoft Defender för IoT-säkerhetsmikroagenten som ger slutpunktssynlighet i hantering av säkerhetsstatus, sårbarheter, hotidentifiering, hantering av flottan med mera för att hjälpa dig att skydda dina IoT Edge-enheter. Vi rekommenderar att du installerar mikroagenten med Edge-agenten för att aktivera säkerhetsövervakning och härdning av dina Edge-enheter. Mer information om Microsoft Defender för IoT finns i Vad är Microsoft Defender för IoT för enhetsbyggare?

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.

Skapa en konfigurationsfil för enheten baserat på en mallfil som tillhandahålls som en del av IoT Edge-installationen.

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

Öppna konfigurationsfilen på IoT Edge-enheten.

sudo nano /etc/aziot/config.toml
  1. Leta reda på avsnittet Etablering i filen. Avkommentera raderna för DPS-etablering med symmetrisk nyckel och se till att andra etableringsrader kommenteras ut.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
    # auto_reprovisioning_mode = Dynamic
    
  2. Uppdatera värdena id_scopeför , registration_idoch symmetric_key med din DPS- och enhetsinformation.

    Parametern symmetrisk nyckel kan acceptera ett värde för en infogad nyckel, en fil-URI eller en PKCS#11 URI. Avkommentar bara en symmetrisk nyckellinje, baserat på vilket format du använder. När du använder en infogad nyckel använder du en base64-kodad nyckel som exemplet. När du använder en fil-URI ska filen innehålla nyckelns råa byte.

    Om du använder PKCS#11-URI:er hittar du avsnittet PKCS#11 i konfigurationsfilen och anger information om din PKCS#11-konfiguration.

    Mer information om konfigurationsinställningar för etablering finns i Konfigurera IoT Edge-enhetsinställningar.

  3. Du kan också hitta avsnittet för automatisk ometableringsläge i filen. Använd parametern auto_reprovisioning_mode för att konfigurera enhetens återetableringsbeteende. Dynamisk – Återskapa när enheten upptäcker att den kan ha flyttats från en IoT Hub till en annan. Det här är standardinställningen. AlwaysOnStartup – Ometablering när enheten startas om eller en krasch gör att daemonerna startas om. OnErrorOnly – Utlös aldrig enhetens ometablering automatiskt. Varje läge har en implicit återställning av enhetsetablering om enheten inte kan ansluta till IoT Hub under identitetsetablering på grund av anslutningsfel. Mer information finns i Begrepp för ometablering av IoT Hub-enheter.

  4. Du kan också avkommentera parametern payload för att ange sökvägen till en lokal JSON-fil. Innehållet i filen skickas till DPS som ytterligare data när enheten registreras. Detta är användbart för anpassad allokering. Om du till exempel vill allokera dina enheter baserat på ett IoT Plug and Play-modell-ID utan mänsklig inblandning.

  5. Spara och stäng filen.

  6. Tillämpa de konfigurationsändringar som du har gjort på enheten.

    sudo iotedge config apply
    

Kontrollera att installationen har slutförts

Om körningen har startats kan du gå till din IoT Hub och börja distribuera IoT Edge-moduler till enheten.

Du kan kontrollera att den enskilda registreringen som du skapade i enhetsetableringstjänsten användes. Gå till instansen av enhetsetableringstjänsten i Azure-portalen. Ö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 har installerats och startats.

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

sudo iotedge system status

Granska tjänstloggar.

sudo iotedge system logs

Visa en lista över moduler som körs.

sudo iotedge list

Nästa steg

Med registreringsprocessen för enhetsetableringstjänsten kan du ange taggar för enhets-ID och enhetstvilling 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-portalen eller med Hjälp av Azure CLI.