IoT Edge-eszközök létrehozása és üzembe helyezése nagy méretekben TPM-lel Linuxon
A következőkre vonatkozik: IoT Edge 1.4
Fontos
Az IoT Edge 1.4 a támogatott kiadás. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.
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.
- 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:
- Kérje le a TPM kiépítési adatait.
- 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.
- 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
Feljegyzés
Ez a cikk korábban az tpm_device_provision
IoT C SDK eszközét használta kiépítési adatok létrehozásához. Ha korábban az eszközre támaszkodott, vegye figyelembe, hogy az alábbi lépések eltérő regisztrációs azonosítót hoznak létre ugyanahhoz a nyilvános ellenőrzőkulcshoz. Ha a korábbiakhoz hasonlóan újra létre kell hoznia a regisztrációs azonosítót, tekintse meg, hogyan hozza létre a C SDK tpm_device_provision eszköz . Győződjön meg arról, hogy a DPS-ben az egyéni regisztráció regisztrációs azonosítója megegyezik az IoT Edge-eszköz használatára konfigurált regisztrációs azonosítóval.
Ebben a szakaszban a TPM2 szoftvereszközökkel lekéri a TPM jóváhagyási kulcsát, majd létrehoz egy egyedi regisztrációs azonosítót. Ez a szakasz a 3. lépésnek felel meg: Az eszköz belső vezérlőprogrammal és szoftverrel rendelkezik a TPM gyártási folyamatba való integrálásához.
A TPM2-eszközök telepítése
Jelentkezzen be az eszközére, és telepítse a tpm2-tools
csomagot.
sudo apt-get install tpm2-tools
Futtassa a következő szkriptet a jóváhagyási kulcs olvasásához, és hozzon létre egyet, ha még nem létezik.
#!/bin/sh
if [ "$USER" != "root" ]; then
SUDO="sudo "
fi
$SUDO tpm2_readpublic -Q -c 0x81010001 -o ek.pub 2> /dev/null
if [ $? -gt 0 ]; then
# Create the endorsement key (EK)
$SUDO tpm2_createek -c 0x81010001 -G rsa -u ek.pub
# Create the storage root key (SRK)
$SUDO tpm2_createprimary -Q -C o -c srk.ctx > /dev/null
# make the SRK persistent
$SUDO tpm2_evictcontrol -c srk.ctx 0x81000001 > /dev/null
# open transient handle space for the TPM
$SUDO tpm2_flushcontext -t > /dev/null
fi
printf "Gathering the registration information...\n\nRegistration Id:\n%s\n\nEndorsement Key:\n%s\n" $(sha256sum -b ek.pub | cut -d' ' -f1 | sed -e 's/[^[:alnum:]]//g') $(base64 -w0 ek.pub)
$SUDO rm ek.pub srk.ctx 2> /dev/null
A kimeneti ablakban megjelenik az eszköz jóváhagyási kulcsa és egy egyedi regisztrációs azonosító. 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.
Az Azure Portalon nyissa meg az IoT Hub eszközkiépítési szolgáltatásának példányát.
A Gépház területen válassza a Regisztrációk kezelése lehetőséget.
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:
A Mechanizmus beállításnál válassza a TPM lehetőséget.
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 .
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.
Az Igaz lehetőséget választva deklarálhatja, hogy a virtuális gép vagy a fizikai eszköz IoT Edge-eszköz.
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.
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.
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:
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
Az operációsrendszer-verziókról további információt az Azure IoT Edge által támogatott platformokon talál.
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/Enterprise kiadás 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
Alapértelmezés szerint a tárolómotor nem állítja be a tárolónapló méretkorlátját. Ez idővel ahhoz vezethet, hogy az eszköz megtelik naplókkal, és elfogy a lemezterület. A naplót azonban úgy konfigurálhatja, hogy helyileg jelenjen meg, bár ez nem kötelező. A naplózási konfigurációval kapcsolatos további információkért tekintse meg az éles üzembehelyezési ellenőrzőlistát.
Az alábbi lépések bemutatják, hogyan konfigurálhatja a tárolót úgy, hogy naplózási illesztőprogramot használjon local
naplózási mechanizmusként.
A meglévő Docker-démon konfigurációs fájljának létrehozása vagy szerkesztése
sudo nano /etc/docker/daemon.json
Állítsa be az alapértelmezett naplózási illesztőprogramot a naplózási
local
illesztőre a 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
Az IoT Edge-futtatókörnyezet telepítése
Az IoT Edge szolgáltatás biztonsági szabványokat biztosít és tart fenn az IoT Edge-eszközön. A szolgáltatás minden rendszerindításkor elindul, és az IoT Edge többi futtatókörnyezetének elindításával elindítja az eszközt.
Feljegyzés
Az IoT Identity Service az 1.2-es verziótól kezdve kezeli az IoT Edge és más eszközösszetevők identitáskiépítését és kezelését, amelyeknek kommunikálniuk kell az IoT Hubbal.
Az ebben a szakaszban ismertetett lépések a legújabb IoT Edge-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.
Tipp.
Ha már rendelkezik egy régebbi verziót futtató IoT Edge-eszközzel, és a legújabb kiadásra szeretne frissíteni, kövesse az IoT Edge biztonsági démon és futtatókörnyezet frissítésének lépéseit. A későbbi verziók eléggé eltérnek az IoT Edge korábbi verzióitól, és bizonyos lépések szükségesek a frissítéshez.
Telepítse az IoT Edge legújabb verzióját és az IoT Identity Service-csomagot (ha még nem naprakész):
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
Az opcionális defender-iot-micro-agent-edge
csomag tartalmazza a Microsoft Defender for IoT biztonsági mikroügynököt, amely végponti láthatóságot biztosít a biztonsági helyzetkezelés, a biztonsági rések, a fenyegetésészlelés, a flottakezelés és egyebek szempontjából az IoT Edge-eszközök biztonságossá tételéhez. Javasoljuk, hogy telepítse a mikroügynököt az Edge-ügynökkel, hogy engedélyezze az Edge-eszközök biztonsági monitorozását és megerősítését. Az IoT-hez készült Microsoft Defenderről további információt az eszközkészítőknek készült Microsoft Defender for IoT című témakörben talál.
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.
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 .
Hozzon létre egy konfigurációs fájlt az eszközhöz az IoT Edge-telepítés részeként megadott sablonfájl alapján.
sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
Nyissa meg a konfigurációs fájlt az IoT Edge-eszközön.
sudo nano /etc/aziot/config.toml
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.
# DPS provisioning with TPM [provisioning] source = "dps" global_endpoint = "https://global.azure-devices-provisioning.net" id_scope = "DPS_ID_SCOPE_HERE" # Uncomment to send a custom payload during DPS registration # payload = { uri = "PATH_TO_JSON_FILE" } [provisioning.attestation] method = "tpm" registration_id = "REGISTRATION_ID_HERE" # auto_reprovisioning_mode = Dynamic
Frissítse az eszközkiépítési
id_scope
szolgáltatás értékeit ésregistration_id
az eszközinformációkat. Azscope_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 .A konfigurációs beállítások kiépítéséről további információt az IoT Edge-eszközbeállítások konfigurálása című témakörben talál.
Ha szeretné, keresse meg a fájl automatikus újraépítési módjának szakaszát. A paraméter használatával
auto_reprovisioning_mode
konfigurálhatja az eszköz újraépítési viselkedését. Dinamikus – Újraépítés, ha az eszköz azt észleli, hogy áthelyezték az egyik IoT Hubról a másikra. Ez az alapértelmezett beállítás. AlwaysOnStartup – Az eszköz újraindítása vagy összeomlása esetén a démonok újraépítése. OnErrorOnly – Soha ne aktiválja automatikusan az eszköz újraépítését. Minden mód rendelkezik implicit eszközvisszaépítési tartalékokkal, ha az eszköz kapcsolódási hibák miatt nem tud csatlakozni az IoT Hubhoz az identitáskiépítés során. További információ: IoT Hub-eszközök újraépítési fogalmai.Ha szeretné, törölje a paramétert a
payload
helyi JSON-fájl elérési útjának megadásához. A rendszer további adatokként továbbítja a fájl tartalmát a DPS-nek, amikor az eszköz regisztrál. Ez hasznos egyéni foglalásokhoz. Ha például emberi beavatkozás nélkül szeretné lefoglalni az eszközöket egy IoT Plug and Play-modellazonosító alapján.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örnyezet egy TPM-szolgáltatásra támaszkodik, amely az eszköz TPM-éhez való hozzáférést közvetíti. A szolgáltatásnak hozzá kell férnie a TPM-hez az eszköz automatikus kiépítéséhez.
A TPM-hez úgy adhat hozzáférést, hogy felülírja a rendszerezett beállításokat, hogy a aziottpm
szolgáltatás gyökérjogokkal 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.
Hozzon létre egy új szabályt, amely hozzáférést biztosít az IoT Edge-futtatókörnyezethez és
tpmrm0
atpm0
.sudo touch /etc/udev/rules.d/tpmaccess.rules
Nyissa meg a szabályfájlt.
sudo nano /etc/udev/rules.d/tpmaccess.rules
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 aziottpm access to tpm0 and tpmrm0 KERNEL=="tpm0", SUBSYSTEM=="tpm", OWNER="aziottpm", MODE="0660" KERNEL=="tpmrm0", SUBSYSTEM=="tpmrm", OWNER="aziottpm", MODE="0660"
Mentse és lépjen ki a fájlból.
Aktiválja a rendszert az
udev
új szabály kiértékeléséhez./bin/udevadm trigger --subsystem-match=tpm --subsystem-match=tpmrm
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-rw---- 1 root aziottpm 10, 224 Jul 20 16:27 /dev/tpm0 crw-rw---- 1 root aziottpm 10, 224 Jul 20 16:27 /dev/tpmrm0
Ha nem látja a megfelelő engedélyek alkalmazását, próbálja meg újraindítani a gépet a frissítéshez
udev
.Alkalmazza az eszközön végrehajtott konfigurációs módosításokat.
sudo iotedge config apply
Sikeres telepítés ellenőrzése
Ha még nem tette meg, alkalmazza az eszközön végrehajtott konfigurációs módosításokat.
sudo iotedge config apply
Ellenőrizze, hogy fut-e az IoT Edge-futtatókörnyezet.
sudo iotedge system status
Vizsgálja meg a démonnaplókat.
sudo iotedge system logs
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 meg ú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.