Megosztás a következőn keresztül:


IoT Edge-eszközök létrehozása és üzembe helyezése nagy méretekben TPM-lel Linuxon

A következőkre vonatkozik: igen ikon IoT Edge 1.1

Fontos

Az IoT Edge 1.1 támogatási dátuma 2022. december 13. volt. A termék, szolgáltatás, technológia vagy API támogatásáról a Microsoft-termékek életciklusa című leírásból tájékozódhat. Az IoT Edge legújabb verziójára való frissítésről további információt az IoT Edge frissítése című témakörben talál.

Ez a cikk útmutatást nyújt egy Azure IoT Edge for Linux-eszköz automatikus fejlesztéséhez egy megbízható platformmodul (TPM) használatával. Az IoT Edge-eszközöket automatikusan kiépítheti az Azure IoT Hub eszközkiépítési szolgáltatással. Ha nem ismeri az automatikus üzembe helyezés folyamatát, a folytatás előtt tekintse át a kiépítés áttekintését .

Ez a cikk két módszertant ismertet. Válassza ki a kívánt beállítást a megoldás architektúrája alapján:

  • Linux-eszköz automatikus létrehozása fizikai TPM-hardverrel. Ilyen például az Infineon OPTIGA™ TPM SLB 9670.
  • Linux rendszerű virtuális gép (VM) automatikus létrehozása szimulált TPM-vel, amely egy Windows rendszerű fejlesztőgépen fut, és engedélyezve van a Hyper-V. Javasoljuk, hogy ezt a módszertant csak tesztelési forgatókönyvként használja. A szimulált TPM nem nyújt ugyanolyan biztonságot, mint a fizikai TPM.

Az utasítások a módszertantól függően eltérnek, ezért győződjön meg arról, hogy a megfelelő lapon halad tovább.

A feladatok a következők:

  1. Kérje le a TPM kiépítési adatait.
  2. Hozzon létre egy egyéni regisztrációt az eszközhöz az IoT Hub eszközkiépítési szolgáltatás egy példányában.
  3. Telepítse az IoT Edge-futtatókörnyezetet, és csatlakoztassa az eszközt az IoT Hubhoz.

Előfeltételek

Felhőbeli erőforrások

  • Aktív IoT Hub
  • Az IoT Hub eszközkiépítési szolgáltatásának egy példánya az Azure-ban, az IoT Hubhoz csatolva
    • Ha nem rendelkezik eszközkiépítési szolgáltatáspéldánysal, kövesse az új IoT Hub-eszközkiépítési szolgáltatás létrehozása, valamint az IoT Hub és az IoT Hub eszközkiépítési szolgáltatás szakaszainak összekapcsolása rövid útmutatójában leírtakat.
    • Az eszközkiépítési szolgáltatás futtatása után másolja ki az azonosító hatókörének értékét az áttekintési oldalról. Ezt az értéket az IoT Edge-futtatókörnyezet konfigurálásakor használja.

Eszközkövetelmények

Fizikai Linux-eszköz, amely az IoT Edge-eszköz.

Ha Ön eszközgyártó, tekintse meg a TPM gyártási folyamatba való integrálásával kapcsolatos útmutatást.

Feljegyzés

A TPM 2.0 akkor szükséges, ha TPM-igazolást használ az eszközkiépítési szolgáltatással.

TPM használata esetén csak egyéni, nem csoportszintű eszközkiépítési szolgáltatásregisztrációkat hozhat létre.

Az eszköz beállítása

Ha fizikai Linux-eszközt használ TPM-sel, nincs további lépés az eszköz beállításához.

Készen áll a folytatásra.

Kiépítési információk lekérése a TPM-hez

Ebben a szakaszban létrehoz egy eszközt, amellyel lekérheti a TPM regisztrációs azonosítóját és ellenőrzőkulcsát.

  1. Jelentkezzen be az eszközére, majd kövesse a Linux fejlesztési környezet beállítása az Azure IoT-eszköz SDK for C telepítéséhez és létrehozásához című témakörben leírt lépéseket.

  2. Futtassa az alábbi parancsokat az SDK-eszköz létrehozásához, amely lekéri a TPM eszközkiépítési adatait.

    cd azure-iot-sdk-c/cmake
    cmake -Duse_prov_client:BOOL=ON ..
    cd provisioning_client/tools/tpm_device_provision
    make
    sudo ./tpm_device_provision
    
  3. A kimeneti ablakban megjelenik az eszköz regisztrációs azonosítója és a jóváhagyási kulcs. Másolja ezeket az értékeket későbbi használatra, amikor egyéni regisztrációt hoz létre az eszközhöz az eszközkiépítési szolgáltatásban.

Miután rendelkezik a regisztrációs azonosítóval és az ellenőrző kulccsal, készen áll a folytatásra.

Tipp.

Ha nem szeretné használni a TPM2 szoftvereszközöket az információk lekéréséhez, más módot kell találnia a kiépítési információk beszerzésére. Az egyes TPM-chipekhez egyedi jóváhagyási kulcsot a hozzá társított TPM-chip gyártójától szerzik be. A TPM-eszköz egyedi regisztrációs azonosítóját is levezetheti. Például a fent látható módon létrehozhat egy SHA-256 kivonatot a jóváhagyási kulcsból.

Eszközkiépítési szolgáltatás regisztrációjának létrehozása

A TPM kiépítési adataival egyéni regisztrációt hozhat létre az eszközkiépítési szolgáltatásban.

Amikor regisztrációt hoz létre az eszközkiépítési szolgáltatásban, lehetősége van az ikereszköz kezdeti állapotának deklarálására. Az ikereszközön beállíthatja, hogy a címkéket a megoldásban használt bármely metrika alapján csoportosítsa, például régió, környezet, hely vagy eszköztípus szerint. Ezek a címkék automatikus üzembe helyezéseket hoznak létre.

Tipp.

A cikkben szereplő lépések az Azure Portalon érhetők el, de egyéni regisztrációkat is létrehozhat az Azure CLI használatával. További információ: az iot dps-regisztráció. A CLI-parancs részeként használja az edge-kompatibilis jelzőt annak megadásához, hogy a regisztráció egy IoT Edge-eszközhöz tartozik- e.

  1. Az Azure Portalon nyissa meg az IoT Hub eszközkiépítési szolgáltatásának példányát.

  2. A Beállítások területen válassza a Regisztrációk kezelése lehetőséget.

  3. Válassza az Egyéni regisztráció hozzáadása lehetőséget, majd végezze el a következő lépéseket a regisztráció konfigurálásához:

    1. A Mechanizmus beállításnál válassza a TPM lehetőséget.

    2. Adja meg a virtuális gépről vagy fizikai eszközről másolt jóváhagyási kulcsot és regisztrációs azonosítót .

    3. Ha szeretné, adjon meg egy azonosítót az eszközéhez. Ha nem ad meg eszközazonosítót, a rendszer a regisztrációs azonosítót használja.

    4. Az Igaz lehetőséget választva deklarálhatja, hogy a virtuális gép vagy a fizikai eszköz IoT Edge-eszköz.

    5. Válassza ki azt a csatolt IoT Hubot, amelyhez csatlakoztatni szeretné az eszközt, vagy válassza a Hivatkozás az új IoT Hubra lehetőséget. Több központot is választhat, és az eszköz a kiválasztott hozzárendelési szabályzatnak megfelelően az egyikhez lesz hozzárendelve.

    6. Ha szeretné, adjon hozzá egy címkeértéket az ikereszköz kezdeti állapotához . Címkék használatával célcsoportokat célozhat meg a modul üzembe helyezéséhez. További információ: IoT Edge-modulok nagy léptékű üzembe helyezése.

    7. Válassza a Mentés lehetőséget.

Most, hogy már létezik regisztráció ehhez az eszközhöz, az IoT Edge-futtatókörnyezet automatikusan kiépítheti az eszközt a telepítés során.

Az IoT Edge telepítése

Ebben a szakaszban előkészíti Linux rendszerű virtuális gépét vagy fizikai eszközét az IoT Edge-hez. Ezután telepítse az IoT Edge-et.

Futtassa az alábbi parancsokat a csomagtárház hozzáadásához, majd adja hozzá a Microsoft-csomagaláíró kulcsot a megbízható kulcsok listájához.

Fontos

2022. június 30-án a Raspberry Pi OS Stretch kilépett az 1. rétegbeli operációsrendszer-támogatási listából. A lehetséges biztonsági rések elkerülése érdekében frissítse a gazdagép operációs rendszerét a Bullseye-re.

A telepítés néhány paranccsal elvégezhető. Nyisson meg egy terminált, és futtassa a következő parancsokat:

  • 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
    

Feljegyzés

Az Azure IoT Edge szoftvercsomagjaira az egyes csomagokban (usr/share/doc/{package-name} vagy a LICENSE címtárban) található licencfeltételek vonatkoznak. A csomag használata előtt olvassa el a licencfeltételeket. A csomagok telepítése és használata jelenti a jelen feltételek elfogadását. Ha nem ért egyet a licencfeltételekkel, ne használja ezt a csomagot.

Tárolómotor telepítése

Az Azure IoT Edge egy OCI-kompatibilis tároló-futtatókörnyezetre támaszkodik. Éles helyzetekben javasoljuk, hogy használja a Moby motort. A Moby motor az egyetlen olyan tárolómotor, amelyet hivatalosan támogat az IoT Edge. A Docker CE/EE tárolórendszerképei kompatibilisek a Moby futtatókörnyezetével.

Telepítse a Moby motort.

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

A Moby motor sikeres telepítése után konfigurálja úgy, hogy naplózási illesztőprogramot használjon local naplózási mechanizmusként. A naplózási konfigurációval kapcsolatos további információkért tekintse meg az éles üzembehelyezési ellenőrzőlistát.

  • Hozza létre vagy nyissa meg a Docker démon konfigurációs fájlját a következő helyen /etc/docker/daemon.json: .

  • Állítsa be az alapértelmezett naplózási illesztőprogramot a local naplózási illesztőprogramra az alábbi példában látható módon.

       {
          "log-driver": "local"
       }
    
  • Indítsa újra a tárolómotort a módosítások érvénybe lépéséhez.

    sudo systemctl restart docker
    

    Tipp.

    Ha hibaüzenetet kap a Moby tárolómotor telepítésekor, ellenőrizze a Linux kernelt a Moby kompatibilitása érdekében. Egyes beágyazott eszközgyártók egyéni Linux-kerneleket tartalmazó eszközlemezképeket szállítanak a tárolómotorok kompatibilitásához szükséges funkciók nélkül. Futtassa az alábbi parancsot, amely a Moby által biztosított ellenőrzőkonfigurációs szkriptet használja a kernelkonfiguráció ellenőrzéséhez:

    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
    

    A szkript kimenetében ellenőrizze, hogy az összes elem be Generally Necessary van-e kapcsolva, és Network Drivers engedélyezve van-e. Ha hiányoznak a funkciók, engedélyezze őket úgy, hogy újraépíti a kernelt a forrásból, és kiválasztja a kapcsolódó modulokat a megfelelő kernel .config fájlba való felvételéhez. Hasonlóképpen, ha kernelkonfigurációs generátort használ, például defconfig vagy menuconfig, keresse meg és engedélyezze a megfelelő funkciókat, és ennek megfelelően építse újra a kernelt. Az újonnan módosított kernel üzembe helyezése után futtassa újra a check-config szkriptet annak ellenőrzéséhez, hogy az összes szükséges funkció sikeresen engedélyezve lett-e.

Az IoT Edge-futtatókörnyezet telepítése

Az IoT Edge biztonsági démon biztonsági szabványokat biztosít és tart fenn az IoT Edge-eszközön. A démon minden rendszerindításkor elindul, és az IoT Edge többi futtatókörnyezetének elindításával elindítja az eszközt.

Az ebben a szakaszban ismertetett lépések a legújabb verzió internetkapcsolattal rendelkező eszközre való telepítésének tipikus folyamatát jelölik. Ha telepítenie kell egy adott verziót, például egy előzetes verziót, vagy offline állapotban kell telepítenie, kövesse az Offline vagy adott verzió telepítési lépéseit a jelen cikk későbbi részében.

Telepítse az IoT Edge 1.1.* verzióját a libiothsm-std csomaggal együtt:

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

Feljegyzés

Az IoT Edge 1.1-es verziója az IoT Edge hosszú távú támogatási ága. Ha régebbi verziót futtat, javasoljuk, hogy telepítse vagy frissítse a legújabb javításra, mivel a régebbi verziók már nem támogatottak.

Az eszköz kiépítése a felhőbeli identitással

Miután telepítette a futtatókörnyezetet az eszközön, konfigurálja az eszközt az eszközkiépítési szolgáltatáshoz és az IoT Hubhoz való csatlakozáshoz használt információkkal.

  1. Ismerje meg a korábban összegyűjtött eszközkiépítési szolgáltatásazonosító hatókörét és eszközregisztrációs azonosítóját .

  2. Nyissa meg a konfigurációs fájlt az IoT Edge-eszközön.

    sudo nano /etc/iotedge/config.yaml
    
  3. Keresse meg a fájl kiépítési konfigurációs szakaszát. Bontsa ki a TPM-kiépítés sorait, és győződjön meg arról, hogy a többi kiépítési sor megjegyzéssel van elfűzve.

    A provisioning: vonalnak nem szabad korábbi szóközzel rendelkeznie, a beágyazott elemeket pedig két szóközzel kell behúzni.

    # 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: false
    
  4. Frissítse az eszközkiépítési scope_id szolgáltatás értékeit és registration_id az eszközinformációkat. Az scope_id érték az eszközkiépítési szolgáltatáspéldány áttekintő oldaláról származó azonosító hatóköre .

  5. Igény szerint az eszköz újraépítési viselkedésének konfigurálásához használja a always_reprovision_on_startup vonalakat vagy dynamic_reprovisioning a vonalakat. Ha egy eszköz újraépítésre van beállítva az indításkor, mindig először megpróbál kiépíteni a DPS-t, majd visszaáll a kiépítési biztonsági mentésre, ha ez nem sikerül. Ha egy eszköz dinamikus újraépítésre van beállítva, az IoT Edge (és az összes modul) újraindul és újraépül, ha újraépítési eseményt észlel, például ha az eszközt az egyik IoT Hubról a másikra helyezi át. Az IoT Edge pontosabban az SDK-tól érkező hibákat ellenőrzi vagy device_disabled ellenőrzi bad_credential az újraépítési esemény észleléséhez. Az esemény manuális aktiválásához tiltsa le az eszközt az IoT Hubban. További információ: IoT Hub-eszközök újraépítési fogalmai.

  6. Mentse és zárja be a fájlt.

IoT Edge-hozzáférés biztosítása a TPM-hez

Az IoT Edge-futtatókörnyezetnek hozzá kell férnie a TPM-hez az eszköz automatikus kiépítéséhez.

A TPM-nek hozzáférést adhat az IoT Edge-futtatókörnyezethez a rendszerezett beállítások felülírásával, hogy a iotedge szolgáltatás gyökérjogosultságokkal rendelkezhessen. Ha nem szeretné megemelni a szolgáltatásjogokat, az alábbi lépésekkel manuálisan is biztosíthatja a TPM-hozzáférést.

  1. Hozzon létre egy új szabályt, amely hozzáférést biztosít az IoT Edge-futtatókörnyezethez és tpmrm0a tpm0 .

    sudo touch /etc/udev/rules.d/tpmaccess.rules
    
  2. Nyissa meg a szabályfájlt.

    sudo nano /etc/udev/rules.d/tpmaccess.rules
    
  3. Másolja a következő hozzáférési adatokat a szabályfájlba. Előfordulhat tpmrm0 , hogy a rendszermagot 4.12-nél régebbi kernelt használó eszközökön nem jelenik meg. A nem rendelkező tpmrm0 eszközök nyugodtan figyelmen kívül hagyják ezt a szabályt.

    # allow iotedge access to tpm0
    KERNEL=="tpm0", SUBSYSTEM=="tpm", OWNER="iotedge", MODE="0600"
    KERNEL=="tpmrm0", SUBSYSTEM=="tpmrm", OWNER="iotedge", MODE="0600"
    
  4. Mentse és lépjen ki a fájlból.

  5. Aktiválja a rendszert az udev új szabály kiértékeléséhez.

    /bin/udevadm trigger --subsystem-match=tpm --subsystem-match=tpmrm
    
  6. Ellenőrizze, hogy sikeresen alkalmazták-e a szabályt.

    ls -l /dev/tpm*
    

    A sikeres kimenet a következőképpen jelenik meg:

    crw------- 1 iotedge root 10, 224 Jul 20 16:27 /dev/tpm0
    crw------- 1 iotedge root 10, 224 Jul 20 16:27 /dev/tpmrm0
    

    Ha nem látja, hogy a megfelelő engedélyek lettek alkalmazva, próbálja meg újraindítani a gépet a frissítéshez udev.

  7. Indítsa újra az IoT Edge-futtatókörnyezetet, hogy az átvegye az eszközön végrehajtott összes konfigurációs módosítást.

    sudo systemctl restart iotedge
    

Sikeres telepítés ellenőrzése

Ha még nem tette meg, indítsa újra az IoT Edge-futtatókörnyezetet, hogy az átvegye az eszközön végrehajtott összes konfigurációs módosítást.

sudo systemctl restart iotedge

Ellenőrizze, hogy fut-e az IoT Edge-futtatókörnyezet.

sudo systemctl status iotedge

Vizsgálja meg a démonnaplókat.

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

Ha kiépítési hibák lépnek fel, előfordulhat, hogy a konfigurációs módosítások még nem lépnek érvénybe. Próbálja újra újraindítani az IoT Edge démont.

sudo systemctl daemon-reload

Vagy indítsa újra a virtuális gépet, és ellenőrizze, hogy a módosítások érvénybe lépnek-e az újrakezdéskor.

Ha a futtatókörnyezet sikeresen elindult, bemehet az IoT Hubba, és láthatja, hogy az új eszköz automatikusan ki lett építve. Az eszköz most már készen áll az IoT Edge-modulok futtatására.

Futó modulok listázása.

iotedge list

Ellenőrizheti, hogy az eszközkiépítési szolgáltatásban létrehozott egyéni regisztrációt használták-e. Nyissa meg az eszközkiépítési szolgáltatáspéldányt az Azure Portalon. Nyissa meg a létrehozott egyéni regisztráció regisztrációs adatait. Figyelje meg, hogy a regisztráció állapota ki van rendelve , és az eszközazonosító megjelenik a listában.

Következő lépések

Az eszközkiépítési szolgáltatás regisztrációs folyamata lehetővé teszi az eszközazonosító és az ikereszköz-címkék beállítását az új eszköz üzembe helyezésével egyidejűleg. Ezeket az értékeket az automatikus eszközfelügyelettel megcélzhatja az egyes eszközökre vagy eszközcsoportokra.

Megtudhatja, hogyan helyezhet üzembe és monitorozhat nagy léptékű IoT Edge-modulokat az Azure Portal vagy az Azure CLI használatával.