Apparaten op schaal IoT Edge Linux maken en inrichten met behulp van een symmetrische sleutel

Van toepassing op:  Ja pictogram IoT Edge 1,1 andere versies: IOT Edge 1,2

Van toepassing op:  Ja pictogram IoT Edge 1,2 andere versies: IOT Edge 1,1

Dit artikel bevat end-to-end instructies voor het automatisch inbouwen van een of meer Linux-IoT Edge met behulp van symmetrische sleutels. U kunt apparaten automatisch Azure IoT Edge met de Azure IoT Hub Device Provisioning Service (DPS). Als u niet bekend bent met het proces van automatisch inrichten, bekijkt u het overzicht van de inrichting voordat u doorgaat.

De taken zijn als volgt:

  1. Maak een afzonderlijke inschrijving voor één apparaat of een groepsinschrijving voor een set apparaten.
  2. Installeer de IoT Edge runtime en maak verbinding met de IoT Hub.

Tip

Probeer voor een vereenvoudigde ervaring het hulpprogramma Azure IoT Edge configureren. Dit opdrachtregelprogramma, dat momenteel in openbare preview is, installeert IoT Edge op uw apparaat en voorsteert het met behulp van DPS en attestation met symmetrische sleutels.

Attestation met een symmetrische sleutel is een eenvoudige benadering voor het authenticeren van een apparaat met een device provisioning service-exemplaar. Deze attestation-methode is een 'Hallo wereld'-ervaring voor ontwikkelaars die geen ervaring hebben met het inrichten van apparaten of die geen strikte beveiligingsvereisten hebben. Apparaatattestatie met behulp van een TPM- of X.509-certificaat is veiliger en moet worden gebruikt voor strengere beveiligingsvereisten.

Vereisten

Cloudbronnen

  • Een actieve IoT-hub
  • Een exemplaar van de IoT Hub device provisioning service in Azure, gekoppeld aan uw IoT-hub
    • Als u geen device provisioning service-exemplaar hebt, kunt u de instructies volgen in de quickstart Create a new IoT Hub device provisioning service (Een nieuwe IoT Hub Device Provisioning Service maken) en Link the IoT hub and your device provisioning service (De IoT-hub en uw device provisioning service koppelen) van de quickstart over de IoT Hub Device Provisioning Service.
    • Nadat u de Device Provisioning Service hebt uitgevoerd, kopieert u de waarde van Id-bereik op de overzichtspagina. U gebruikt deze waarde wanneer u de IoT Edge configureert.

Vereisten voor apparaten

Een fysiek of virtueel Linux-apparaat dat het IoT Edge is.

U moet een unieke registratie-id definiëren om elk apparaat te identificeren. U kunt het MAC-adres, serienummer of unieke gegevens van het apparaat gebruiken. U kunt bijvoorbeeld een combinatie van een MAC-adres en serienummer gebruiken die de volgende tekenreeks vormen voor een registratie-id: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6 . Geldige tekens zijn kleine letters alfanumeriek en streepje ( - ).

Een DPS-inschrijving maken

Maak een inschrijving voor het inrichten van een of meer apparaten via DPS.

Als u één apparaat wilt inrichten IoT Edge, maakt u een afzonderlijke inschrijving. Als u meerdere apparaten wilt inrichten, volgt u de stappen voor het maken van een DPS-groepsinschrijving.

Wanneer u een inschrijving in DPS maakt, hebt u de mogelijkheid om een initiële status van de apparaat dubbel te declaren. In de apparaat dubbel kunt u tags instellen om apparaten te groepen op elke metrische gegevens die u nodig hebt in uw oplossing, zoals regio, omgeving, locatie of apparaattype. Deze tags worden gebruikt om automatische implementaties te maken.

Zie How to manage device enrollments(Apparaatinschrijvingen beheren) voor meer informatie over inschrijvingen in de Device Provisioning Service.

Een afzonderlijke DPS-inschrijving maken

Tip

De stappen in dit artikel zijn voor de Azure Portal, maar u kunt ook afzonderlijke inschrijvingen maken met behulp van de Azure CLI. Zie az iot dps enrollment voor meer informatie. Gebruik als onderdeel van de CLI-opdracht de vlag edge-enabled om op te geven dat de inschrijving voor een IoT Edge apparaat is.

  1. Navigeer in Azure Portalnaar uw exemplaar van IoT Hub Device Provisioning Service.

  2. Selecteer Instellingen, enrollments beheren.

  3. Selecteer Afzonderlijke inschrijving toevoegen en voltooi vervolgens de volgende stappen om de inschrijving te configureren:

    1. Selecteer bij Mechanisme de optie Symmetrische sleutel.

    2. Geef een unieke registratie-id op voor uw apparaat.

    3. Geef desgewenst een IoT Hub-apparaat-id op voor uw apparaat. U kunt apparaat-ID's gebruiken om een afzonderlijk apparaat te targeten voor module-implementatie. Als u geen apparaat-id op geeft, wordt de registratie-id gebruikt.

    4. Selecteer Waar om aan te geven dat de inschrijving voor een IoT Edge is.

    5. Voeg eventueel een tagwaarde toe aan de initiële status van de apparaat-dubbel. U kunt tags gebruiken voor doelgroepen van apparaten voor module-implementatie. Bijvoorbeeld:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Selecteer Opslaan.

  4. Kopieer de waarde van de primaire sleutel van de afzonderlijke inschrijving voor gebruik bij het installeren van IoT Edge runtime.

Nu er een inschrijving voor dit apparaat bestaat, kan de IoT Edge het apparaat automatisch inrichten tijdens de installatie.

Installatie IoT Edge

In deze sectie bereidt u uw Linux-VM of fysiek apparaat voor op IoT Edge. Vervolgens installeert u IoT Edge.

U moet twee stappen op uw apparaat uitvoeren voordat het klaar is om de IoT Edge installeren. Uw apparaat moet toegang hebben tot de Microsoft-installatiepakketten en er moet een container-engine zijn geïnstalleerd.

Toegang tot de Microsoft-installatiepakketten

  1. Download het configuratiepakket voor de opslagplaats dat overeenkomt met het besturingssysteem van uw apparaat.

    • Ubuntu Server 18.04:

      curl https://packages.microsoft.com/config/ubuntu/18.04/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
    • Raspberry Pi OS Stretch:

      curl https://packages.microsoft.com/config/debian/stretch/multiarch/packages-microsoft-prod.deb > ./packages-microsoft-prod.deb
      
  2. Installeer het configuratiepakket om de pakketopslagplaats en openbare GPG-sleutel van Microsoft toe te voegen.

    sudo apt install ./packages-microsoft-prod.deb
    

Notitie

Azure IoT Edge zijn onderworpen aan de licentievoorwaarden in elk pakket ( usr/share/doc/{package-name} of de LICENSE map). Lees de licentievoorwaarden voordat u een pakket gebruikt. Uw installatie en gebruik van een pakket vormt uw acceptatie van deze voorwaarden. Als u niet akkoord gaat met de licentievoorwaarden, moet u dat pakket niet gebruiken.

Een container-engine installeren

Azure IoT Edge is afhankelijk van een met OCI compatibele containerruntime. Voor productiescenario's raden we u aan de Moby-engine te gebruiken. De Moby-engine is de enige container-engine die officieel wordt ondersteund IoT Edge. Docker CE/EE container-afbeeldingen zijn compatibel met de Moby-runtime.

  1. Pakketlijsten bijwerken op uw apparaat.

    sudo apt-get update
    
  2. Installeer de Moby-engine.

    sudo apt-get install moby-engine
    

    Tip

    Als er fouten optreden wanneer u de Moby-container-engine installeert, controleert u of uw Linux-kernel compatibel is met Moby. Sommige fabrikanten van ingesloten apparaten verzenden apparaatafbeeldingen die aangepaste Linux-kernels bevatten zonder de functies die vereist zijn voor compatibiliteit met de container-engine. Voer de volgende opdracht uit, die gebruikmaakt van het check-config-script van Moby, om uw kernelconfiguratie te controleren:

    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
    

    Controleer in de uitvoer van het script of alle items onder Generally Necessary en Network Drivers zijn ingeschakeld. Als er functies ontbreken, kunt u deze inschakelen door de kernel opnieuw te bouwen vanuit de bron en de bijbehorende modules te selecteren voor opname in de juiste kernel .config. Op dezelfde manier kunt u, als u een kernelconfiguratiegenerator zoals of gebruikt, de respectieve functies zoeken en inschakelen en de defconfig menuconfig kernel dienovereenkomstig herbouwen. Nadat u de zojuist gewijzigde kernel hebt geïmplementeerd, moet u het script check-config opnieuw uitvoeren om te controleren of alle vereiste functies zijn ingeschakeld.

De IoT Edge-runtime installeren

De IoT Edge-daemon biedt en onderhoudt beveiligingsstandaarden op IoT Edge apparaat. De daemon wordt gestart bij elke keer opstarten en bootstrapt het apparaat door de rest van de IoT Edge starten.

De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste versie op een apparaat met een internetverbinding. Als u een specifieke versie wilt installeren, zoals een voorlopige versie, of offline wilt installeren, volgt u de stappen voor offline of specifieke versie-installatie verder in dit artikel.

Pakketlijsten bijwerken op uw apparaat.

sudo apt-get update

Installeer IoT Edge versie 1.1.* samen met het libiothsm-std-pakket:

sudo apt-get install iotedge

Notitie

IoT Edge versie 1.1 is de vertakking voor langetermijnondersteuning van IoT Edge. Als u een oudere versie hebt, raden we u aan om de nieuwste patch te installeren of bij te werken, omdat oudere versies niet meer worden ondersteund.

De IoT Edge service biedt en onderhoudt beveiligingsstandaarden op IoT Edge apparaat. De service start bij elke keer opstarten en start het apparaat op door de rest van de IoT Edge starten.

De IoT-identiteitsservice is geïntroduceerd samen met versie 1.2 van IoT Edge. Deze service verwerkt het inrichten en beheren van identiteiten voor IoT Edge en voor andere apparaatonderdelen die moeten communiceren met IoT Hub.

De stappen in deze sectie vertegenwoordigen het gebruikelijke proces voor het installeren van de nieuwste versie op een apparaat met een internetverbinding. Als u een specifieke versie wilt installeren, zoals een voorlopige versie, of offline wilt installeren, volgt u de stappen voor offline of specifieke versie-installatie verder in dit artikel.

Notitie

In de stappen in deze sectie ziet u hoe u IoT Edge versie 1.2 installeert.

Als u al een IoT Edge-apparaat met een oudere versie hebt en wilt upgraden naar 1.2, gebruikt u de stappen in De IoT Edge-beveiligingsdemonen runtime bijwerken. Versie 1.2 verschilt voldoende van eerdere versies van IoT Edge dat specifieke stappen nodig zijn om een upgrade uit te voeren.

Pakketlijsten bijwerken op uw apparaat.

sudo apt-get update

Controleer welke versies van de IoT Edge en de IoT-identiteitsservice beschikbaar zijn.

apt list -a aziot-edge aziot-identity-service

Als u de nieuwste versie van IoT Edge en het IoT Identity Service-pakket wilt installeren, gebruikt u de volgende opdracht:

sudo apt-get install aziot-edge

Het apparaat inrichten met de cloudidentiteit

Zodra de runtime op uw apparaat is geïnstalleerd, configureert u het apparaat met de informatie die wordt gebruikt om verbinding te maken met de Device Provisioning Service en IoT Hub.

De volgende informatie is gereed:

  • De waarde voor DPS-id-bereik
  • De apparaatregistratie-id die u hebt gemaakt
  • De primaire sleutel van een afzonderlijke inschrijving of een afgeleide sleutel voor apparaten die gebruikmaken van een groepsinschrijving.
  1. Open het configuratiebestand op het IoT Edge apparaat.

    sudo nano /etc/iotedge/config.yaml
    
  2. Zoek de sectie inrichtingsconfiguraties van het bestand. Maak commentaar van de regels voor het inrichten van symmetrische DPS-sleutels en zorg ervoor dat eventuele andere inrichtingslijnen worden becommentreerd.

    De provisioning: regel mag geen voorgaande witruimte hebben en geneste items moeten worden ingesprongen door twee spaties.

    # 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: false
    
  3. Werk de waarden van scope_id , en bij met uw registration_id symmetric_key DPS- en apparaatgegevens.

  4. U kunt eventueel de regels of gebruiken om het gedrag van de inrichting van uw apparaat always_reprovision_on_startup dynamic_reprovisioning te configureren. Als een apparaat bij het opstarten opnieuw wordt ingericht, probeert het altijd eerst in terichten met DPS en vervolgens terug te vallen op de inrichtingsback-up als dat mislukt. Als een apparaat is ingesteld op dynamisch opnieuw in te stellen, wordt IoT Edge opnieuw opgestart en opnieuw in te stellen als er een herinrichtingsgebeurtenis wordt gedetecteerd. Zie concepten voor het opnieuw IoT Hub van apparaten voor meer informatie.

  5. Start de IoT Edge opnieuw op, zodat alle configuratiewijzigingen die u op het apparaat hebt aangebracht, worden opgehaald.

    sudo systemctl restart iotedge
    
  1. Maak een configuratiebestand voor uw apparaat op basis van een sjabloonbestand dat is opgegeven als onderdeel van de IoT Edge installatie.

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    
  2. Open het configuratiebestand op het IoT Edge apparaat.

    sudo nano /etc/aziot/config.toml
    
  3. Zoek de sectie Inrichten van het bestand. Maak commentaar van de regels voor DPS-inrichting met een symmetrische sleutel en zorg ervoor dat eventuele andere inrichtingslijnen als commentaar worden opgenomen.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE"
    
  4. Werk de waarden van id_scope , en bij met uw registration_id symmetric_key DPS- en apparaatgegevens.

    De parameter voor de symmetrische sleutel kan een waarde van een inlinesleutel, een bestands-URI of een PKCS#11-URI accepteren. Maak slechts één symmetrische sleutelregel los, op basis van de indeling die u gebruikt.

    Als u PKCS#11 URI's gebruikt, gaat u naar de sectie PKCS#11 in het configuratiebestand en geeft u informatie op over uw PKCS#11-configuratie.

  5. Sla het bestand config.toml op en sluit het.

  6. Pas de configuratiewijzigingen die u hebt aangebracht toe op IoT Edge.

    sudo iotedge config apply
    

Controleren of de installatie is geslaagd

Als de runtime is gestart, kunt u naar uw IoT Hub en beginnen met het implementeren IoT Edge modules op uw apparaat.

U kunt controleren of de afzonderlijke inschrijving die u in Device Provisioning Service hebt gemaakt, is gebruikt. Navigeer naar uw device provisioning service-exemplaar in Azure Portal. Open de inschrijvingsgegevens voor de afzonderlijke inschrijving die u hebt gemaakt. U ziet dat de status van de inschrijving is toegewezen en dat de apparaat-id wordt vermeld.

Gebruik de volgende opdrachten op uw apparaat om te controleren of de IoT Edge geïnstalleerd en gestart.

Controleer de status van de IoT Edge-service.

systemctl status iotedge

Bekijk servicelogboeken.

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

Lijst met modules die worden uitgevoerd.

iotedge list

Controleer de status van de IoT Edge-service.

sudo iotedge system status

Bekijk servicelogboeken.

sudo iotedge system logs

Lijst met modules die worden uitgevoerd.

sudo iotedge list

Volgende stappen

Met het registratieproces van de Device Provisioning Service kunt u de apparaat-id en apparaattweetags instellen op hetzelfde moment dat u het nieuwe apparaat inrichten. U kunt deze waarden gebruiken voor afzonderlijke apparaten of groepen apparaten met behulp van automatisch apparaatbeheer. Meer informatie over het implementeren en bewaken IoT Edge modules op schaal met behulp van de Azure Portal of met behulp van Azure CLI.