IoT Edge-eszközök létrehozása és kiépítése nagy méretekben Linuxon X.509-tanúsítványok használatával

A következőkre vonatkozik:IoT Edge 1.4 checkmark 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 egy vagy több Linux IoT Edge-eszköz X.509-tanúsítványokkal történő automatikus fejlesztésére vonatkozó részletes utasításokat tartalmaz. Az Azure IoT Edge-eszközöket automatikusan kiépítheti az Azure IoT Hub eszközkiépítési szolgáltatással (DPS). Ha nem ismeri az automatikus kiépítés folyamatát, a folytatás előtt tekintse át a kiépítés áttekintését .

A feladatok a következők:

  1. Tanúsítványok és kulcsok létrehozása.
  2. Hozzon létre egyéni regisztrációt egyetlen eszközhöz vagy csoportregisztrációhoz egy eszközcsoporthoz.
  3. Telepítse az IoT Edge-futtatókörnyezetet, és regisztrálja az eszközt az IoT Hubon.

Az X.509-tanúsítványok igazolási mechanizmusként való használata kiváló módszer az éles környezet méretezésére és az eszközök kiépítésének egyszerűsítésére. Az X.509-tanúsítványok általában megbízhatósági tanúsítványláncba vannak rendezve. Az önaláírt vagy megbízható főtanúsítványtól kezdve a lánc minden tanúsítványa aláírja a következő alacsonyabb tanúsítványt. Ez a minta egy delegált megbízhatósági láncot hoz létre a főtanúsítványtól kezdve az egyes köztes tanúsítványokon át az eszközön telepített végső alsóbb rétegbeli eszköztanúsítványig.

Tipp.

Ha az eszköz hardveres biztonsági modullal (HSM), például TPM 2.0-s verzióval rendelkezik, javasoljuk, hogy az X.509-kulcsokat biztonságosan tárolja a HSM-ben. Az iotedge-tpm2cloud mintával kapcsolatos tervben ismertetett, érintés nélküli üzembe helyezés nagy léptékű implementálásával kapcsolatos további információk.

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

Egy fizikai vagy virtuális Linux-eszköz, amely az IoT Edge-eszköz.

Eszközidentitás-tanúsítványok létrehozása

Az eszközidentitás-tanúsítvány egy alsóbb rétegbeli eszköztanúsítvány, amely egy megbízhatósági tanúsítványláncon keresztül csatlakozik a legfelső X.509 hitelesítésszolgáltatói (CA-) tanúsítványhoz. Az eszköz identitástanúsítványának a köznapi nevét (CN) arra az eszközazonosítóra kell beállítania, amelyet az eszköznek az IoT Hubban szeretne használni.

Az eszközidentitás-tanúsítványok csak az IoT Edge-eszköz kiépítéséhez és az eszköz Azure IoT Hubbal való hitelesítéséhez használhatók. Nem aláíró tanúsítványok, ellentétben azokkal a hitelesítésszolgáltatói tanúsítványokkal, amelyeket az IoT Edge-eszköz a moduloknak vagy az alsóbb rétegbeli eszközöknek biztosít ellenőrzés céljából. További információ: Azure IoT Edge-tanúsítványhasználat részletei.

Az eszközidentitás-tanúsítvány létrehozása után két fájlnak kell lennie: egy .cer vagy .pem fájllal, amely tartalmazza a tanúsítvány nyilvános részét, valamint egy .cer vagy .pem fájllal, amely a tanúsítvány titkos kulcsával rendelkezik. Ha csoportregisztrációt szeretne használni a DPS-ben, szüksége lesz egy köztes vagy fő hitelesítésszolgáltatói tanúsítvány nyilvános részére ugyanabban a tanúsítványláncban.

Az X.509-zel való automatikus üzembe helyezés beállításához a következő fájlokra van szüksége:

  • Az eszköz identitástanúsítványa és titkoskulcs-tanúsítványa. Az eszköz identitástanúsítványa akkor lesz feltöltve a DPS-be, ha egyéni regisztrációt hoz létre. A titkos kulcsot a rendszer átadja az IoT Edge-futtatókörnyezetnek.
  • Teljes láncú tanúsítvány, amelynek legalább az eszközidentitással és a köztes tanúsítványokkal kell rendelkeznie. A teljes lánctanúsítvány az IoT Edge-futtatókörnyezetnek lesz átadva.
  • Köztes vagy fő hitelesítésszolgáltatói tanúsítvány a megbízhatósági tanúsítványláncból. Ez a tanúsítvány akkor lesz feltöltve a DPS-be, ha csoportregisztrációt hoz létre.

Teszttanúsítványok használata (nem kötelező)

Ha nem rendelkezik olyan hitelesítésszolgáltatóval, amely új identitástanúsítványokat hozna létre, és ki szeretné próbálni ezt a forgatókönyvet, az Azure IoT Edge Git-adattár olyan szkripteket tartalmaz, amelyekkel teszttanúsítványokat hozhat létre. Ezek a tanúsítványok csak fejlesztési tesztelésre vannak tervezve, és éles környezetben nem használhatók.

Teszttanúsítványok létrehozásához kövesse a demótanúsítványok létrehozása című témakörben leírt lépéseket az IoT Edge eszközfunkcióinak teszteléséhez. Töltse ki a tanúsítványgenerálási szkriptek beállításához és egy legfelső szintű hitelesítésszolgáltatói tanúsítvány létrehozásához szükséges két szakaszt. Ezután kövesse az eszközidentitás-tanúsítvány létrehozásához szükséges lépéseket. Ha végzett, a következő tanúsítványláncot és kulcspárt kell tartalmaznia:

  • <WRKDIR>/certs/iot-edge-device-identity-<name>-full-chain.cert.pem
  • <WRKDIR>/private/iot-edge-device-identity-<name>.key.pem

Mindkét tanúsítványra szüksége van az IoT Edge-eszközön. Ha egyéni regisztrációt fog használni a DPS-ben, töltse fel a .cert.pem fájlt. Ha csoportregisztrációt fog használni a DPS-ben, akkor egy köztes vagy fő hitelesítésszolgáltatói tanúsítványra is szüksége lesz ugyanabban a megbízhatósági tanúsítványláncban a feltöltéshez. Ha demó tanúsítványokat használ, használja a tanúsítványt a <WRKDIR>/certs/azure-iot-test-only.root.ca.cert.pem csoportregisztrációhoz.

DPS-regisztráció létrehozása

A létrehozott tanúsítványok és kulcsok használatával hozzon létre regisztrációt a DPS-ben egy vagy több IoT Edge-eszközhöz.

Ha egyetlen IoT Edge-eszközt szeretne kiépíteni, hozzon létre egy egyéni regisztrációt. Ha több eszköz kiépítésére van szüksége, kövesse a DPS-csoportregisztráció létrehozásának lépéseit.

Amikor létrehoz egy regisztrációt a DPS-ben, 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 szükséges 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.

Az eszközkiépítési szolgáltatásban történő regisztrációval kapcsolatos további információkért tekintse meg az eszközregisztrációk kezelését ismertető témakört.

DPS-egyéni regisztráció létrehozása

Az egyéni regisztrációk átveszik az eszköz identitástanúsítványának nyilvános részét, és megegyeznek az eszközön található tanúsítvánnyal.

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 keresse meg az IoT Hub eszközkiépítési szolgáltatás példányát.

  2. A Gépház 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:

    • Mechanizmus: Válassza az X.509-et.

    • Elsődleges tanúsítvány .pem vagy .cer fájl: Töltse fel a nyilvános fájlt az eszköz identitástanúsítványából. Ha teszttanúsítvány létrehozásához használta a szkripteket, válassza a következő fájlt:

      <WRKDIR>\certs\iot-edge-device-identity-<name>.cert.pem

    • IoT Hub-eszközazonosító: Adjon meg egy azonosítót az eszközéhez, ha szeretné. Az eszközazonosítókkal egy-egy eszközt célozhat meg a modul üzembe helyezéséhez. Ha nem ad meg eszközazonosítót, a rendszer az X.509-tanúsítványban szereplő köznapi nevet (CN) használja.

    • IoT Edge-eszköz: Válassza az Igaz lehetőséget annak deklarálásához, hogy a regisztráció egy IoT Edge-eszközre vonatkozik.

    • Válassza ki azokat az IoT Hubokat, amelyekhez az eszköz hozzárendelhető: Válassza ki azt a csatolt IoT Hubot, amelyhez csatlakoztatni szeretné az eszközt. Több központot is választhat, és az eszköz a kiválasztott foglalási szabályzatnak megfelelően az egyikhez lesz hozzárendelve.

    • Kezdeti ikereszköz-állapot: Ha szeretné, adjon hozzá egy címkeértéket az ikereszközhöz. Címkék használatával célcsoportokat célozhat meg az automatikus üzembe helyezéshez. Példa:

      {
          "tags": {
             "environment": "test"
          },
          "properties": {
             "desired": {}
          }
      }
      
  4. Válassza a Mentés lehetőséget.

A Regisztrációk kezelése csoportban láthatja az imént létrehozott regisztráció regisztrációs azonosítóját. Jegyezze fel, mivel az eszköz kiépítésekor használható.

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.

  1. A meglévő Docker-démon konfigurációs fájljának létrehozása vagy szerkesztése

    sudo nano /etc/docker/daemon.json
    
  2. Á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"
       }
    
  3. 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.

Készítse fel a következő információkat:

  • A DPS-azonosító hatókörének értéke. Ezt az értéket lekérheti a DPS-példány áttekintési oldaláról az Azure Portalon.
  • Az eszköz identitástanúsítvány-láncfájlja az eszközön.
  • Az eszköz identitáskulcsfájlja az eszközön.

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
  1. Keresse meg a fájl kiépítési szakaszát. Bontsa ki a DPS X.509-tanúsítvánnyal való kiépítésének sorait, és ügyeljen arra, hogy a többi kiépítési sor megjegyzést fűzzön hozzá.

    # DPS provisioning with X.509 certificate
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "SCOPE_ID_HERE"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "x509"
    registration_id = "REGISTRATION_ID_HERE"
    
    identity_cert = "DEVICE_IDENTITY_CERTIFICATE_HERE"
    
    identity_pk = "DEVICE_IDENTITY_PRIVATE_KEY_HERE"
    
    # auto_reprovisioning_mode = Dynamic
    
  2. Frissítse az értékeket id_scope a DPS-példányból másolt hatókör-azonosítóval.

  3. registration_id Adja meg az eszköz azonosítóját, amely az IoT Hubban található. A regisztrációs azonosítónak meg kell egyeznie az identitástanúsítvány köznapi nevével (CN).

  4. Frissítse a tanúsítvány és a kulcsinformációk értékeit identity_certidentity_pk és értékeit.

    Az identitástanúsítvány értéke megadható fájl URI-jaként, vagy dinamikusan kibocsátható az EST vagy egy helyi hitelesítésszolgáltató használatával. A választott formátum alapján csak egy sort jelöljön ki.

    Az identitás titkos kulcsának értéke fájl URI-ként vagy PKCS#11 URI-ként adható meg. A választott formátum alapján csak egy sort jelöljön ki.

    Ha bármilyen PKCS#11 URI-t használ, keresse meg a PKCS#11 szakaszt a konfigurációs fájlban, és adjon meg információkat a PKCS#11 konfigurációról.

    A tanúsítványokról további információt az IoT Edge-tanúsítványok kezelése című témakörben talál.

    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.

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

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

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

Alkalmazza az IoT Edge-ben végrehajtott konfigurációs módosításokat.

sudo iotedge config apply

Sikeres telepítés ellenőrzése

Ha a futtatókörnyezet sikeresen elindult, bemehet az IoT Hubba, és megkezdheti az IoT Edge-modulok üzembe helyezését az eszközön.

Ellenőrizheti, hogy az eszközkiépítési szolgáltatásban létrehozott egyéni regisztrációt használták-e. Lépjen az eszközkiépítési szolgáltatáspéldányra 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.

Az eszközön az alábbi parancsokkal ellenőrizheti, hogy az IoT Edge sikeresen telepítve van-e és elindult-e.

Ellenőrizze az IoT Edge-szolgáltatás állapotát.

sudo iotedge system status

Vizsgálja meg a szolgáltatásnaplókat.

sudo iotedge system logs

Futó modulok listázása.

sudo iotedge list

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. Ezekkel az értékekkel egyéni eszközöket vagy eszközcsoportokat célozhat meg automatikus eszközkezeléssel. Megtudhatja, hogyan helyezhet üzembe és monitorozhat IoT Edge-modulokat nagy méretekben az Azure Portalon vagy az Azure CLI használatával.