Delen via


IoT Edge-apparaten op schaal maken en inrichten in Linux met behulp van een symmetrische sleutel

Van toepassing op: Ja-pictogram IoT Edge 1.1

Belangrijk

Het einde van de ondersteuningsdatum voor IoT Edge 1.1 is 13 december 2022. Raadpleeg het levenscyclusbeleid van Microsoft voor informatie over hoe dit product of deze service, technologie of API wordt ondersteund. Zie IoT Edge bijwerken voor meer informatie over het bijwerken naar de nieuwste versie van IoT Edge.

Dit artikel bevat end-to-end instructies voor het automatisch inrichten van een of meer Linux IoT Edge-apparaten met behulp van symmetrische sleutels. U kunt Automatisch Azure IoT Edge-apparaten inrichten met de Azure IoT Hub Device Provisioning Service (DPS). Als u niet bekend bent met het proces van automatische inrichting, raadpleegt u het inrichtingsoverzicht 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.

Attestation met symmetrische sleutels is een eenvoudige benadering voor het verifiëren van een apparaat met een exemplaar van de device provisioning service. Deze attestation-methode vertegenwoordigt een 'Hallo wereld'-ervaring voor ontwikkelaars die geen ervaring hebben met het inrichten van apparaten of die geen strikte beveiligingsvereisten hebben. Apparaatverklaring met behulp van tpm- of X.509-certificaten is veiliger en moet worden gebruikt voor strengere beveiligingsvereisten.

Vereisten

Cloudresources

Vereisten voor apparaten

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

U moet een unieke registratie-id definiëren om elk apparaat te identificeren. U kunt het MAC-adres, serienummer of een unieke informatie 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 alfanumerieke kleine letters en streepje (-).

Een DPS-inschrijving maken

Maak een inschrijving om een of meer apparaten in te richten via DPS.

Als u één IoT Edge-apparaat wilt inrichten, 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 eerste apparaatdubbelstatus te declareren. In de apparaatdubbel kunt u tags instellen om apparaten te groeperen op basis van de 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 Apparaatinschrijvingen beheren voor meer informatie over inschrijvingen in de device provisioning-service.

Een afzonderlijke DPS-inschrijving maken

Tip

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

  1. Navigeer in Azure Portal naar uw exemplaar van de IoT Hub-apparaatinrichtingsservice.

  2. Selecteer Onder Instellingen de optie Inschrijvingen beheren.

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

    1. Selecteer bij Mechanisme symmetrische sleutel.

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

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

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

    5. U kunt eventueel een tagwaarde toevoegen aan de eerste apparaatdubbelstatus. U kunt tags gebruiken voor doelgroepen van apparaten voor module-implementatie. Voorbeeld:

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

  4. Kopieer de primaire sleutelwaarde van de afzonderlijke inschrijving die moet worden gebruikt bij het installeren van de IoT Edge-runtime.

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

IoT Edge installeren

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

Voer de volgende opdrachten uit om de pakketopslagplaats toe te voegen en voeg vervolgens de ondertekeningssleutel van het Microsoft-pakket toe aan uw lijst met vertrouwde sleutels.

Belangrijk

Op 30 juni 2022 werd Raspberry Pi OS Stretch buiten gebruik gesteld van de ondersteuningslijst van het laag 1-besturingssysteem. Om potentiële beveiligingsproblemen te voorkomen, werkt u uw hostbesturingssysteem bij naar Bullseye.

Installatie kan worden uitgevoerd met een paar opdrachten. Open een terminal en voer de volgende opdrachten uit:

  • 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
    

Notitie

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

Een containerengine installeren

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

Installeer de Moby-engine.

sudo apt-get update; \
  sudo apt-get install moby-engine

Zodra de Moby-engine is geïnstalleerd, configureert u deze om het logboekregistratiestuurprogramma te gebruiken local als het mechanisme voor logboekregistratie. Zie controlelijst voor productie-implementatie voor meer informatie over logboekregistratieconfiguratie.

  • Maak of open het configuratiebestand van de Docker-daemon op /etc/docker/daemon.json.

  • Stel het standaardstuurprogramma voor logboekregistratie in op het local logboekregistratiestuurprogramma, zoals wordt weergegeven in het onderstaande voorbeeld.

       {
          "log-driver": "local"
       }
    
  • Start de containerengine opnieuw om de wijzigingen van kracht te laten worden.

    sudo systemctl restart docker
    

    Tip

    Als er fouten optreden bij het installeren van de Moby-containerengine, controleert u de Linux-kernel voor Moby-compatibiliteit. Sommige fabrikanten van ingesloten apparaten verzenden apparaatinstallatiekopieën die aangepaste Linux-kernels bevatten zonder de functies die vereist zijn voor compatibiliteit met containerengines. Voer de volgende opdracht uit, die gebruikmaakt van het check-config-script van Moby, om de 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 u functies mist, schakelt u deze in door de kernel opnieuw op te bouwen vanuit de bron en de bijbehorende modules te selecteren voor opname in de juiste kernel .config. Als u ook een kernelconfiguratiegenerator gebruikt zoals defconfig of menuconfig, zoekt en schakelt u de betreffende functies in en bouwt u de kernel dienovereenkomstig opnieuw op. Nadat u de zojuist gewijzigde kernel hebt geïmplementeerd, voert u het controleconfiguratiescript opnieuw uit om te controleren of alle vereiste functies zijn ingeschakeld.

De IoT Edge-runtime installeren

De IoT Edge-beveiligingsdaemon biedt en onderhoudt beveiligingsstandaarden op het IoT Edge-apparaat. De daemon wordt gestart bij elke opstartbewerking en bootstrapt het apparaat door de rest van de IoT Edge-runtime te starten.

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

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

sudo apt-get update; \
  sudo apt-get install iotedge

Notitie

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

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 apparaatinrichtingsservice en IoT Hub.

Zorg ervoor dat de volgende informatie gereed is:

  • De waarde van het DPS-id-bereik
  • De apparaatregistratie-id die u hebt gemaakt
  • De primaire sleutel van een afzonderlijke inschrijving of een afgeleide sleutel voor apparaten met behulp 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. Verwijder opmerkingen bij de regels voor het inrichten van symmetrische DPS-sleutels en zorg ervoor dat alle andere inrichtingslijnen worden uitgecommentarieerd.

    De provisioning: regel mag geen voorafgaande 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: true
    
  3. Werk de waarden van scope_id, registration_iden symmetric_key met uw DPS- en apparaatgegevens bij.

  4. U kunt desgewenst de always_reprovision_on_startup of dynamic_reprovisioning regels gebruiken om het herinrichtingsgedrag van uw apparaat te configureren. Als een apparaat is ingesteld op opnieuw inrichten bij het opstarten, probeert het altijd eerst met DPS in te richten en vervolgens terug te vallen op de inrichtingsback-up als dat mislukt. Als een apparaat is ingesteld op dynamisch opnieuw inrichten, wordt IoT Edge (en alle modules) opnieuw opgestart en opnieuw ingericht als er een gebeurtenis voor opnieuw inrichten wordt gedetecteerd, bijvoorbeeld als het apparaat van de ene IoT Hub naar het andere wordt verplaatst. IoT Edge controleert bad_credential met name op of device_disabled fouten van de SDK om de herprovision-gebeurtenis te detecteren. Als u deze gebeurtenis handmatig wilt activeren, schakelt u het apparaat uit in IoT Hub. Zie concepten voor het opnieuw inrichten van IoT Hub-apparaten voor meer informatie.

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

    sudo systemctl restart iotedge
    

Geslaagde installatie controleren

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

U kunt controleren of de afzonderlijke inschrijving die u hebt gemaakt in de Device Provisioning Service is gebruikt. Navigeer naar uw exemplaar van de device provisioning service 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 ioT Edge is 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 actieve modules.

iotedge list

Volgende stappen

Met het registratieproces van de device provisioning service kunt u de apparaat-id en apparaatdubbeltags instellen op hetzelfde moment als u het nieuwe apparaat inricht. U kunt deze waarden gebruiken om afzonderlijke apparaten of groepen apparaten te richten met behulp van automatisch apparaatbeheer. Leer hoe u IoT Edge-modules op schaal implementeert en bewaakt met behulp van Azure Portal of met behulp van Azure CLI.