Azure IoT Edge-eszközök csatlakoztatása hierarchia létrehozásához

A következőkre vonatkozik:IoT Edge 1.5 pipa IoT Edge 1.5 IoT Edge 1.4 pipa IoT Edge 1.4

Fontos

Az IoT Edge 1.5 LTS és az IoT Edge 1.4 LTS támogatott kiadások. Az IoT Edge 1.4 LTS 2024. november 12-én megszűnik. Ha egy korábbi kiadáson dolgozik, olvassa el az IoT Edge frissítése című témakört.

Ez a cikk az IoT Edge-átjáró és egy alsóbb rétegbeli IoT Edge-eszköz közötti megbízható kapcsolat létrehozásának lépéseit ismerteti. Ezt a konfigurációt beágyazott élnek is nevezik.

Átjáróforgatókönyvekben az IoT Edge-eszköz lehet átjáró és alsóbb rétegbeli eszköz is. Több IoT Edge-átjáró rétegzhető az eszközök hierarchiájának létrehozásához. Az alsóbb rétegbeli (gyermek) eszközök az átjáró (szülő) eszközén keresztül hitelesíthetik és küldhetnek vagy fogadhatnak üzeneteket.

Az átjáróhierarchia IoT Edge-eszközeinek két különböző konfigurációja van, és ez a cikk mindkettőt ismerteti. Az első a legfelső szintű IoT Edge-eszköz. Ha több IoT Edge-eszköz csatlakozik egymáshoz, minden olyan eszköz, amely nem rendelkezik szülőeszközrel, de közvetlenül az IoT Hubhoz csatlakozik, a legfelső rétegben találhatónak minősül. Ez az eszköz felel az alatta lévő összes eszköz kéréseinek kezeléséért. A másik konfiguráció a hierarchia alsó rétegében lévő összes IoT Edge-eszközre vonatkozik. Ezek az eszközök lehetnek átjárók más alsóbb rétegbeli IoT- és IoT Edge-eszközök számára, de a kommunikációt a saját szülőeszközükön is át kell irányítaniuk.

Egyes hálózati architektúrák megkövetelik, hogy csak a hierarchia legfelső IoT Edge-eszköze csatlakozzon a felhőhöz. Ebben a konfigurációban a hierarchia alsó rétegeiben található összes IoT Edge-eszköz csak az átjáró (szülő) eszközével és az alsóbb rétegbeli (gyermek) eszközökkel tud kommunikálni.

A cikk összes lépése az IoT Edge-eszköz transzparens átjáróként való konfigurálására épül, amely az IoT Edge-eszközt átjáróként állítja be az alsóbb rétegbeli IoT-eszközökhöz. Az összes átjáróforgatókönyvre ugyanazok az alapvető lépések vonatkoznak:

  • Hitelesítés: IoT Hub-identitások létrehozása az átjáróhierarchiában lévő összes eszközhöz.
  • Engedélyezés: Állítsa be a szülő-gyermek kapcsolatot az IoT Hubban, hogy engedélyezze az alsóbb rétegbeli eszközök számára, hogy úgy csatlakozzanak a szülőeszközhöz, mintha az IoT Hubhoz csatlakoznának.
  • Átjárófelderítés: Győződjön meg arról, hogy az alsóbb rétegbeli eszköz megtalálja a szülőeszközét a helyi hálózaton.
  • Biztonságos kapcsolat: Hozzon létre egy biztonságos kapcsolatot olyan megbízható tanúsítványokkal, amelyek ugyanahhoz a lánchoz tartoznak.

Előfeltételek

Tipp.

Ez a cikk részletes lépéseket és beállításokat tartalmaz a forgatókönyvhöz megfelelő átjáróhierarchia létrehozásához. Irányított oktatóanyagért lásd : IoT Edge-eszközök hierarchiájának létrehozása átjárókkal.

Átjáróhierarchia létrehozása

IoT Edge-átjáróhierarchiát úgy hozhat létre, hogy szülő-gyermek kapcsolatokat határoz meg az IoT Edge-eszközökhöz a forgatókönyvben. A szülőeszközt új eszközidentitás létrehozásakor, illetve meglévő eszközidentitás szülő- és gyermekazonosítóinak kezelésekor is beállíthatja.

A szülő-gyermek kapcsolatok beállításának lépése engedélyezi az alsóbb rétegbeli eszközök számára, hogy úgy csatlakozzanak a szülőeszközhöz, mintha az IoT Hubhoz csatlakoznának.

Csak az IoT Edge-eszközök lehetnek szülőeszközök, de az IoT Edge-eszközök és az IoT-eszközök is lehetnek gyermekek. Egy szülőnek sok gyermeke lehet, de egy gyermeknek csak egy szülője lehet. Az átjáróhierarchia úgy jön létre, hogy összeláncolják a szülő-gyermek csoportokat, hogy az egyik eszköz gyermeke a másik szülője legyen.

Alapértelmezés szerint a szülő legfeljebb 100 gyermekkel rendelkezhet. Ezt a korlátot úgy módosíthatja, hogy beállítja a Max Csatlakozás edClients környezeti változót a szülőeszköz EdgeHub-moduljában.

Az Azure Portalon kezelheti a szülő-gyermek kapcsolatot új eszközidentitások létrehozásakor vagy meglévő eszközök szerkesztésével.

Új IoT Edge-eszköz létrehozásakor lehetősége van szülő- és gyermekeszközöket választani a központ meglévő IoT Edge-eszközeinek listájából.

  1. Az Azure Portalon keresse meg az IoT hubot.
  2. Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
  3. Válassza az Eszköz hozzáadása lehetőséget, majd jelölje be az IoT Edge-eszköz jelölőnégyzetet.
  4. Az eszközazonosító és a hitelesítési beállítások megadása mellett beállíthatja a szülőeszközt vagy a Gyermekeszközök kiválasztása lehetőséget.
  5. Válassza ki a szülőként vagy gyermekként használni kívánt eszközt vagy eszközöket.

A meglévő eszközökhöz szülő-gyermek kapcsolatokat is létrehozhat vagy kezelhet.

  1. Az Azure Portalon keresse meg az IoT hubot.
  2. Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.
  3. Válassza ki a listából a kezelni kívánt IoT Edge-eszközt .
  4. Válassza a Szülőeszközfogaskerék beállítása ikont vagy a Gyermekeszközök kezelése lehetőséget.
  5. Adjon hozzá vagy távolítson el minden szülő- vagy gyermekeszközt.

Feljegyzés

Ha programozott módon szeretne szülő-gyermek kapcsolatokat létesíteni, használhatja a C#, Java vagy Node.js IoT Hub Service SDK-t.

Íme egy példa a gyermekeszközök C# SDK-val való hozzárendelésére. A feladat RegistryManager_AddAndRemoveDeviceWithScope() bemutatja, hogyan hozhat létre programozott módon háromrétegű hierarchiát. Az IoT Edge-eszközök szülőként az első rétegben találhatóak. Egy másik IoT Edge-eszköz a második rétegben található, amely gyermekként és szülőként is szolgál. Végül egy IoT-eszköz a harmadik rétegben található, a legalacsonyabb rétegbeli gyermekeszközként.

Tanúsítványok előállítása

Az azonos átjáróhierarchiában lévő eszközökre egységes tanúsítványláncot kell telepíteni, hogy biztonságos kommunikációt alakítson ki egymás között. A hierarchia minden eszközének, akár egy IoT Edge-eszköznek, akár egy alsóbb rétegbeli IoT-eszköznek szüksége van ugyanahhoz a legfelső szintű hitelesítésszolgáltatói tanúsítványhoz. A hierarchiában lévő minden IoT Edge-eszköz ezt a legfelső szintű hitelesítésszolgáltatói tanúsítványt használja az eszköz ca-tanúsítványának gyökérként.

Ezzel a beállítással minden alsóbb rétegbeli IoT Edge-eszköz ellenőrizheti a szülő identitását, ha ellenőrzi, hogy a csatlakoztatott EdgeHub rendelkezik-e a megosztott legfelső szintű hitelesítésszolgáltató tanúsítványával aláírt kiszolgálótanúsítvánnyal.

A legfelső szintű hitelesítésszolgáltató által az átjárón és az alárendelt eszközön kiadott tanúsítványlánc illusztrációja

Az IoT Edge tanúsítványkövetelményeiről további információt az Azure IoT Edge tanúsítványhasználatának ismertetése című témakörben talál.

  1. Hozza létre vagy kérje le a következő tanúsítványokat:

    • Legfelső szintű hitelesítésszolgáltatói tanúsítvány, amely az adott átjáróhierarchiában lévő összes eszköz legfelső megosztott tanúsítványa. Ez a tanúsítvány minden eszközön telepítve van.
    • A főtanúsítvány-láncba felvenni kívánt köztes tanúsítványok.
    • Az eszköz hitelesítésszolgáltatói tanúsítványaés titkos kulcsa, amelyet a fő- és köztes tanúsítványok hoznak létre. Az átjáróhierarchia minden egyes IoT Edge-eszközéhez egy egyedi eszköz ca-tanúsítványra van szüksége.

    Használhat önaláírt hitelesítésszolgáltatót, vagy vásárolhat egyet egy megbízható kereskedelmi hitelesítésszolgáltatótól, például Baltimore-tól, Verisigntől, Digicerttől vagy GlobalSign-től.

  2. Ha nem rendelkezik saját, teszteléshez használható tanúsítványokkal, hozzon létre egy gyökér- és köztes tanúsítványkészletet, majd hozzon létre IoT Edge-eszköz ca-tanúsítványokat minden eszközhöz. Ebben a cikkben a tesztelési hitelesítésszolgáltatói tanúsítványokkal létrehozott teszttanúsítványokat fogjuk használni mintákhoz és oktatóanyagokhoz. Az alábbi parancsok például létrehoznak egy legfelső szintű hitelesítésszolgáltatói tanúsítványt, egy szülőeszköz-tanúsítványt és egy gyermekeszköz-tanúsítványt.

    # !!! For test only - do not use in production !!!
    
    # Create the the root CA test certificate
    ./certGen.sh create_root_and_intermediate
    
    # Create the parent (gateway) device test certificate 
    # signed by the shared root CA certificate
    ./certGen.sh create_edge_device_ca_certificate "gateway"
    
    # Create the downstream device test certificate
    # signed by the shared root CA certificate
    ./certGen.sh create_edge_device_ca_certificate "downstream"
    

    Figyelmeztetés

    Ne használjon éles tesztszkriptek által létrehozott tanúsítványokat. Szigorúan kódolt jelszavakat tartalmaznak, és alapértelmezés szerint 30 nap elteltével lejárnak. A tesztelési hitelesítésszolgáltatói tanúsítványokat bemutató célokra biztosítjuk, hogy könnyebben megérthesse a hitelesítésszolgáltatói tanúsítványokat. Saját biztonsági ajánlott eljárásokat használhat a minősítések létrehozásához és az élettartam-kezeléshez éles környezetben.

    A teszttanúsítványok létrehozásával kapcsolatos további információkért tekintse meg az IoT Edge-eszközfunkciók teszteléséhez szükséges demótanúsítványok létrehozását ismertető témakört.

  3. A tanúsítványokat és kulcsokat minden eszközre át kell vinnie. Használhat USB-meghajtót, olyan szolgáltatást, mint az Azure Key Vault, vagy egy olyan funkcióval, mint a Biztonságos fájlmásolás. Válasszon a forgatókönyvnek leginkább megfelelő módszerek közül. Másolja a fájlokat a tanúsítványok és kulcsok előnyben részesített könyvtárába. Tanúsítványokhoz és /var/aziot/secrets kulcsokhoz használható/var/aziot/certs.

A tanúsítványok eszközre való telepítéséről további információt az IoT Edge-eszközön található tanúsítványok kezelése című témakörben talál.

Szülőeszköz konfigurálása

A szülőeszköz konfigurálásához nyisson meg egy helyi vagy távoli parancshéjat.

A biztonságos kapcsolatok engedélyezéséhez egy átjáróforgatókönyvben minden IoT Edge-szülőeszközt egyedi eszköz-hitelesítésszolgáltatói tanúsítvánnyal és az átjáróhierarchia összes eszköze által megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatával kell konfigurálni.

  1. Ellenőrizze, hogy a tanúsítványok megfelelnek-e a formátumkövetelményeknek.

  2. A legfelső szintű hitelesítésszolgáltatói tanúsítvány, a szülőeszköz hitelesítésszolgáltatói tanúsítványa és a szülő titkos kulcs átvitele a szülőeszközre.

  3. Másolja a tanúsítványokat és a kulcsokat a megfelelő könyvtárakba. Az eszköztanúsítványok előnyben részesített könyvtárai /var/aziot/certs a tanúsítványok és /var/aziot/secrets a kulcsok.

    ### Copy device certificate ###
    
    # If the device certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
    # Copy full-chain device certificate and private key into the correct directory
    sudo cp iot-edge-device-ca-gateway-full-chain.cert.pem /var/aziot/certs
    sudo cp iot-edge-device-ca-gateway.key.pem /var/aziot/secrets
    
    ### Root certificate ###
    
    # Copy root certificate into the /certs directory
    sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs
    
    # Copy root certificate into the CA certificate directory and add .crt extension.
    # The root certificate must be in the CA certificate directory to install it in the certificate store.
    # Use the appropriate copy command for your device OS or if using EFLOW.
    
    # For Ubuntu and Debian, use /usr/local/share/ca-certificates/
    sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt
    # For EFLOW, use /etc/pki/ca-trust/source/anchors/
    sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
    
  4. Módosítsa a tanúsítványok és kulcsok tulajdonjogát és engedélyeit.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
    sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    
    # Verify permissions of directories and files
    sudo ls -Rla /var/aziot
    

    A megfelelő tulajdonjoggal és engedéllyel rendelkező lista kimenete a következőhöz hasonló:

    azureUser@vm:/var/aziot$ sudo ls -Rla /var/aziot
    /var/aziot:
    total 16
    drwxr-xr-x  4 root    root    4096 Dec 14 00:16 .
    drwxr-xr-x 15 root    root    4096 Dec 14 00:15 ..
    drwxr-xr-x  2 aziotcs aziotcs 4096 Jan 14 00:31 certs
    drwx------  2 aziotks aziotks 4096 Jan 23 17:23 secrets
    
    /var/aziot/certs:
    total 20
    drwxr-xr-x 2 aziotcs aziotcs 4096 Jan 14 00:31 .
    drwxr-xr-x 4 root    root    4096 Dec 14 00:16 ..
    -rw-r--r-- 1 aziotcs aziotcs 1984 Jan 14 00:24 azure-iot-test-only.root.ca.cert.pem
    -rw-r--r-- 1 aziotcs aziotcs 5887 Jan 14 00:27 iot-edge-device-ca-gateway-full-chain.cert.pem
    
    /var/aziot/secrets:
    total 16
    drwx------ 2 aziotks aziotks 4096 Jan 23 17:23 .
    drwxr-xr-x 4 root    root    4096 Dec 14 00:16 ..
    -rw------- 1 aziotks aziotks 3243 Jan 14 00:28 iot-edge-device-ca-gateway.key.pem
    
  5. Telepítse a legfelső szintű hitelesítésszolgáltatói tanúsítványt a szülő IoT Edge-eszközön a tanúsítványtároló platformspecifikus paranccsal történő frissítésével.

    # Update the certificate store
    
    # For Ubuntu or Debian - use update-ca-certificates
    sudo update-ca-certificates
    # For EFLOW or RHEL - use update-ca-trust
    sudo update-ca-trust
    

    További információ az EFLOW-ban való használatról update-ca-trust : CBL-Mariner SSL CA-tanúsítványok kezelése.

A parancs egy tanúsítványt /etc/ssl/certstartalmaz.

Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.

Szülőkonfigurációs fájl frissítése

Az IoT Edge-nek már telepítve kell lennie az eszközön. Ha nem, kövesse a lépéseket egyetlen Linux IoT Edge-eszköz manuális kiépítéséhez.

  1. Ellenőrizze, hogy a /etc/aziot/config.toml konfigurációs fájl létezik-e a szülőeszközön.

    Ha a konfigurációs fájl nem létezik az eszközön, az alábbi paranccsal hozza létre a sablonfájl alapján:

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    

    A sablonfájl hivatkozásként is használható konfigurációs paraméterek hozzáadásához ebben a szakaszban.

  2. Nyissa meg az IoT Edge konfigurációs fájlját egy szerkesztő használatával. A fájl megnyitásához használja például a nano szerkesztőt /etc/aziot/config.toml .

    sudo nano /etc/aziot/config.toml
    
  3. Keresse meg a gazdagépnév paramétert, vagy adja hozzá a konfigurációs fájl elejéhez. Frissítse az értéket úgy, hogy az legyen a teljes tartománynév (FQDN) vagy az IoT Edge szülőeszközÉNEK IP-címe. Példa:

    hostname = "10.0.0.4"
    

    Az átjárófelderítés engedélyezéséhez minden IoT Edge-átjárónak (szülőeszköznek) meg kell adnia egy gazdagépnév-paramétert , amelyet gyermekeszközei a helyi hálózaton való kereséshez fognak használni. Minden alsóbb rétegbeli IoT Edge-eszköznek meg kell adnia egy parent_hostname paramétert a szülő azonosításához. Olyan hierarchikus forgatókönyvben, amelyben egyetlen IoT Edge-eszköz szülő- és gyermekeszköz is, mindkét paraméterre szükség van.

    A gazdagépnévnek és trust_bundle_cert paramétereknek a konfigurációs fájl elején kell lenniük a szakaszok előtt. Ha a paramétert a megadott szakaszok előtt hozzáadja, akkor a paraméter megfelelően lesz alkalmazva.

    Használjon 64 karakternél rövidebb gazdagépnevet, amely a kiszolgálótanúsítványok közös nevének karakterkorlátja.

    Konzisztensnek kell lennie az átjáróhierarchia gazdagépnév-mintájával. Használjon teljes tartományneveket vagy IP-címeket, de mindkettőt nem. Az alsóbb rétegbeli eszközök csatlakoztatásához teljes tartománynévre vagy IP-címre van szükség.

    Állítsa be a gazdagépnevet az edgeHub-tároló létrehozása előtt. Ha az edgeHub fut, a konfigurációs fájl gazdagépnevének módosítása csak a tároló újbóli létrehozása után lép érvénybe. A gazdagépnév alkalmazásának ellenőrzéséről további információt a szülőkonfiguráció ellenőrzéséről szóló szakaszban talál.

  4. Keresse meg a Megbízhatósági köteg tanúsítványparamétert , vagy adja hozzá a konfigurációs fájl elejéhez.

    Frissítse a paramétert trust_bundle_cert az URI fájllal az eszköz legfelső szintű hitelesítésszolgáltatói tanúsítványára. Példa:

    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
  5. Keresse meg vagy adja hozzá az Edge CA tanúsítványszakaszt a konfigurációs fájlban. Frissítse a tanúsítványt cert és a titkos kulcs pk paramétereit a teljes láncú tanúsítvány és kulcsfájlok fájl URI-elérési útvonalaival a szülő IoT Edge-eszközön. Az IoT Edge megköveteli, hogy a tanúsítvány és a titkos kulcs szövegalapú, adatvédelmi szempontból továbbfejlesztett levelezési (PEM) formátumban legyen. Példa:

    [edge_ca]
    cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem"
    pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
    
  6. Ellenőrizze, hogy az IoT Edge-eszköz az IoT Edge-ügynök megfelelő verzióját használja-e az indításkor. Keresse meg az Alapértelmezett Edge-ügynök szakaszt, és állítsa az IoT Edge képértékét az 1.5-ös verzióra. Példa:

    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
  7. A szülőkonfigurációs fájl elejének az alábbi példához hasonlóan kell kinéznie.

    hostname = "10.0.0.4"
    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
    [edge_ca]
    cert = "file:///var/aziot/certs/iot-edge-device-ca-gateway-full-chain.cert.pem"
    pk = "file:///var/aziot/secrets/iot-edge-device-ca-gateway.key.pem"
    
  8. Mentse és zárja be a config.toml konfigurációs fájlt. Ha például a nanoszerkesztőt használja, válassza a Ctrl+O - Write Out, az Enter és a Ctrl+X - Exit billentyűkombinációt.

  9. Ha korábban már használt más tanúsítványokat az IoT Edge-hez, törölje a fájlokat a következő két könyvtárból, hogy biztosan alkalmazza az új tanúsítványokat:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys
  10. Alkalmazza a módosításokat.

    sudo iotedge config apply
    
  11. Ellenőrizze, hogy vannak-e hibák a konfigurációban.

    sudo iotedge check --verbose
    

    Feljegyzés

    Egy újonnan kiépített eszközön az IoT Edge Hubhoz kapcsolódó hiba jelenhet meg:

    × éles üzemkészség: Az Edge Hub tárolókönyvtára megmarad a gazdagép fájlrendszerén – Hiba

    Nem sikerült ellenőrizni az edgeHub-tároló aktuális állapotát

    Ez a hiba egy újonnan kiépített eszközön várható, mert az IoT Edge Hub modul nem fut. A hiba megoldásához az IoT Hubban állítsa be az eszköz moduljait, és hozzon létre egy üzembe helyezést. Az eszköz központi telepítésének létrehozása elindítja a modulokat az eszközön, beleértve az IoT Edge Hub modult is.

Szülőkonfiguráció ellenőrzése

A gazdagépnévnek minősített tartománynévnek (FQDN) vagy az IoT Edge-eszköz IP-címének kell lennie, mivel az IoT Edge ezt az értéket használja a kiszolgálótanúsítványban, amikor az alsóbb rétegbeli eszközök csatlakoznak. Az értékeknek egyeznie kell, vagy ip-címeltérési hibát fog kapni.

A gazdagépnév ellenőrzéséhez meg kell vizsgálnia az edgeHub-tároló környezeti változóit.

  1. Sorolja fel a futó IoT Edge-tárolókat.

    iotedge list
    

    Ellenőrizze, hogy az edgeAgent és az edgeHub-tárolók futnak-e. A parancs kimenetének az alábbi példához hasonlónak kell lennie.

    NAME                        STATUS           DESCRIPTION      CONFIG
    SimulatedTemperatureSensor  running          Up 5 seconds     mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0
    edgeAgent                   running          Up 17 seconds    mcr.microsoft.com/azureiotedge-agent:1.5
    edgeHub                     running          Up 6 seconds     mcr.microsoft.com/azureiotedge-hub:1.5
    
  2. Vizsgálja meg az edgeHub-tárolót .

    sudo docker inspect edgeHub
    
  3. A kimenetben keresse meg az EdgeDeviceHostName paramétert az Env szakaszban.

    "EdgeDeviceHostName=10.0.0.4"
    
  4. Ellenőrizze, hogy az EdgeDeviceHostName paraméter értéke megegyezik-e a config.tomlgazdagépnév beállításával. Ha nem egyezik, az edgeHub-tároló a konfiguráció módosításakor és alkalmazásakor futott. Az EdgeDeviceHostName frissítéséhez távolítsa el az edgeAgent tárolót.

    sudo docker rm -f edgeAgent
    

    Az edgeAgent és az edgeHub-tárolók néhány percen belül újra létre lesznek hozva és elindulnak. Az EdgeHub-tároló futtatása után vizsgálja meg a tárolót, és ellenőrizze, hogy az EdgeDeviceHostName paraméter megfelel-e a konfigurációs fájlnak.

Alsóbb rétegbeli eszköz konfigurálása

Az alsóbb rétegbeli eszköz konfigurálásához nyisson meg egy helyi vagy távoli parancshéjat.

A biztonságos kapcsolatok engedélyezéséhez egy átjáróforgatókönyv minden IoT Edge-alsóbb rétegbeli eszközét egyedi eszköz-hitelesítésszolgáltatói tanúsítvánnyal és az átjáróhierarchiában lévő összes eszköz által megosztott legfelső szintű hitelesítésszolgáltatói tanúsítvány másolatával kell konfigurálni.

  1. Ellenőrizze, hogy a tanúsítványok megfelelnek-e a formátumkövetelményeknek.

  2. A legfelső szintű hitelesítésszolgáltatói tanúsítvány, a gyermekeszköz hitelesítésszolgáltatói tanúsítványa és a gyermek titkos kulcs átvitele az alsóbb rétegbeli eszközre.

  3. Másolja a tanúsítványokat és a kulcsokat a megfelelő könyvtárakba. Az eszköztanúsítványok előnyben részesített könyvtárai /var/aziot/certs a tanúsítványok és /var/aziot/secrets a kulcsok.

    ### Copy device certificate ###
    
    # If the device certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
    # Copy device full-chain certificate and private key into the correct directory
    sudo cp iot-device-downstream-full-chain.cert.pem /var/aziot/certs
    sudo cp iot-device-downstream.key.pem /var/aziot/secrets
    
    ### Root certificate ###
    
    # Copy root certificate into the /certs directory
    sudo cp azure-iot-test-only.root.ca.cert.pem /var/aziot/certs
    
    # Copy root certificate into the CA certificate directory and add .crt extension.
    # The root certificate must be in the CA certificate directory to install it in the certificate store.
    # Use the appropriate copy command for your device OS or if using EFLOW.
    
    # For Ubuntu and Debian, use /usr/local/share/ca-certificates/
    sudo cp azure-iot-test-only.root.ca.cert.pem /usr/local/share/azure-iot-test-only.root.ca.cert.pem.crt
    # For EFLOW, use /etc/pki/ca-trust/source/anchors/
    sudo cp azure-iot-test-only.root.ca.cert.pem /etc/pki/ca-trust/source/anchors/azure-iot-test-only.root.ca.pem.crt
    
  4. Módosítsa a tanúsítványok és kulcsok tulajdonjogát és engedélyeit.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
    sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    
  5. Telepítse a legfelső szintű hitelesítésszolgáltatói tanúsítványt az alsóbb rétegbeli IoT Edge-eszközön a tanúsítványtároló platformspecifikus paranccsal történő frissítésével.

    # Update the certificate store
    
    # For Ubuntu or Debian - use update-ca-certificates
    sudo update-ca-certificates
    # For EFLOW or RHEL - use update-ca-trust
    sudo update-ca-trust
    

    További információ az EFLOW-ban való használatról update-ca-trust : CBL-Mariner SSL CA-tanúsítványok kezelése.

A parancs egy tanúsítványt /etc/ssl/certstartalmaz.

Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.

Alsóbb rétegbeli konfigurációs fájl frissítése

Az IoT Edge-nek már telepítve kell lennie az eszközön. Ha nem, kövesse a lépéseket egyetlen Linux IoT Edge-eszköz manuális kiépítéséhez.

  1. Ellenőrizze, hogy a /etc/aziot/config.toml konfigurációs fájl létezik-e az alsóbb rétegbeli eszközön.

    Ha a konfigurációs fájl nem létezik az eszközön, az alábbi paranccsal hozza létre a sablonfájl alapján:

    sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml
    

    A sablonfájl hivatkozásként is használható konfigurációs paraméterek hozzáadásához ebben a szakaszban.

  2. Nyissa meg az IoT Edge konfigurációs fájlját egy szerkesztő használatával. A fájl megnyitásához használja például a nano szerkesztőt /etc/aziot/config.toml .

    sudo nano /etc/aziot/config.toml
    
  3. Keresse meg a parent_hostname paramétert, vagy adja hozzá a konfigurációs fájl elejéhez Minden alsóbb rétegbeli IoT Edge-eszköznek meg kell adnia egy parent_hostname paramétert a szülő azonosításához. Frissítse a paramétert parent_hostname úgy, hogy a szülőeszköz teljes tartományneve vagy IP-címe legyen, a szülőeszköz konfigurációs fájljában található gazdagépnévként megadottaknak megfelelően. Példa:

    parent_hostname = "10.0.0.4"
    
  4. Keresse meg a Megbízhatósági köteg tanúsítványparamétert , vagy adja hozzá a konfigurációs fájl elejéhez.

    Frissítse a paramétert trust_bundle_cert az URI fájllal az eszköz legfelső szintű hitelesítésszolgáltatói tanúsítványára. Példa:

    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
  5. Keresse meg vagy adja hozzá az Edge CA tanúsítványszakaszt a konfigurációs fájlban. Frissítse a tanúsítványt cert és a titkos kulcs pk paramétereit az IoT Edge alsóbb rétegbeli eszközén található teljes láncú tanúsítvány és kulcsfájlok fájl URI-elérési útvonalaival. Az IoT Edge megköveteli, hogy a tanúsítvány és a titkos kulcs szövegalapú, adatvédelmi szempontból továbbfejlesztett levelezési (PEM) formátumban legyen. Példa:

    [edge_ca]
    cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem"
    pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
    
  6. Ellenőrizze, hogy az IoT Edge-eszköz az IoT Edge-ügynök megfelelő verzióját használja-e az indításkor. Keresse meg az Alapértelmezett Edge-ügynök szakaszt, és állítsa az IoT Edge képértékét az 1.5-ös verzióra. Példa:

    [agent.config]
    image: "mcr.microsoft.com/azureiotedge-agent:1.5"
    
  7. Az alsóbb rétegbeli konfigurációs fájl elejének az alábbi példához hasonlóan kell kinéznie.

    parent_hostname = "10.0.0.4"
    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
    [edge_ca]
    cert = "file:///var/aziot/certs/iot-device-downstream-full-chain.cert.pem"
    pk = "file:///var/aziot/secrets/iot-device-downstream.key.pem"
    
  8. Mentse és zárja be a config.toml konfigurációs fájlt. Ha például a nanoszerkesztőt használja, válassza a Ctrl+O - Write Out, az Enter és a Ctrl+X - Exit billentyűkombinációt.

  9. Ha korábban már használt más tanúsítványokat az IoT Edge-hez, törölje a fájlokat a következő két könyvtárból, hogy biztosan alkalmazza az új tanúsítványokat:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys
  10. Alkalmazza a módosításokat.

    sudo iotedge config apply
    
  11. Ellenőrizze, hogy vannak-e hibák a konfigurációban.

    sudo iotedge check --verbose
    

    Tipp.

    Az IoT Edge ellenőrző eszköz tárolóval végzi el a diagnosztikai ellenőrzés egy részét. Ha ezt az eszközt alsóbb rétegbeli IoT Edge-eszközökön szeretné használni, győződjön meg arról, hogy hozzáférnek a tárolórendszerképhez mcr.microsoft.com/azureiotedge-diagnostics:latest, vagy rendelkeznek a tárolólemezképpel a privát tárolóregisztrációs adatbázisban.

    Feljegyzés

    Egy újonnan kiépített eszközön az IoT Edge Hubhoz kapcsolódó hiba jelenhet meg:

    × éles üzemkészség: Az Edge Hub tárolókönyvtára megmarad a gazdagép fájlrendszerén – Hiba

    Nem sikerült ellenőrizni az edgeHub-tároló aktuális állapotát

    Ez a hiba egy újonnan kiépített eszközön várható, mert az IoT Edge Hub modul nem fut. A hiba megoldásához az IoT Hubban állítsa be az eszköz moduljait, és hozzon létre egy üzembe helyezést. Az eszköz központi telepítésének létrehozása elindítja a modulokat az eszközön, beleértve az IoT Edge Hub modult is.

Alsóbb rétegbeli eszközök hálózati elkülönítése

A cikkben eddig ismertetett lépések átjáróként vagy alsóbb rétegbeli eszközként állítják be az IoT Edge-eszközöket, és megbízható kapcsolatot hoznak létre közöttük. Az átjáróeszköz kezeli az alsóbb rétegbeli eszköz és az IoT Hub közötti interakciókat, beleértve a hitelesítést és az üzenetek útválasztását. Az alsóbb rétegbeli IoT Edge-eszközökön üzembe helyezett modulok továbbra is létrehozhatnak saját kapcsolatokat a felhőszolgáltatásokhoz.

Egyes hálózati architektúrák, például az ISA-95 szabványt követők, igyekeznek minimalizálni az internetkapcsolatok számát. Ezekben a forgatókönyvekben közvetlen internetkapcsolat nélkül konfigurálhatja az alsóbb rétegbeli IoT Edge-eszközöket. Az IoT Hub-kommunikáció átjáróeszközön keresztüli útválasztásán túl az alsóbb rétegbeli IoT Edge-eszközök az átjáróeszközre támaszkodhatnak az összes felhőkapcsolat esetében.

Ehhez a hálózati konfigurációhoz csak az átjáróhierarchia felső rétegében lévő IoT Edge-eszköznek kell közvetlen kapcsolatot létesítenie a felhővel. Az alsó rétegekben lévő IoT Edge-eszközök csak a szülőeszközükkel vagy bármely gyermekeszközükkel kommunikálhatnak. Az átjáróeszközök speciális moduljai lehetővé teszik ezt a forgatókönyvet, beleértve a következőket:

  • Az API-proxymodul minden olyan IoT Edge-átjárón szükséges, amely alatt egy másik IoT Edge-eszköz található. Ez azt jelenti, hogy az átjáróhierarchia minden rétegében kell lennie, kivéve az alsó réteget. Ez a modul egy nginx fordított proxyt használ a HTTP-adatok hálózati rétegeken keresztüli átirányításához egyetlen porton keresztül. A modul iker- és környezeti változóival nagymértékben konfigurálható, így az átjáró forgatókönyvére vonatkozó követelményeknek megfelelően módosítható.

  • A Docker beállításjegyzék-modul az IoT Edge-átjárón helyezhető üzembe az átjáróhierarchia felső rétegében . Ez a modul felelős a tárolólemezképek lekéréséért és gyorsítótárazásáért az alsó rétegekben lévő összes IoT Edge-eszköz nevében. A modul felső rétegben való üzembe helyezésének alternatíva egy helyi beállításjegyzék használata, vagy a tárolólemezképek manuális betöltése az eszközökre, és a modul lekérési szabályzatának beállítása soha.

  • Az IoT Edge-en futó Azure Blob Storage az átjáróhierarchia felső rétegében található IoT Edge-átjárón helyezhető üzembe. Ez a modul felelős a blobok feltöltéséért az alsó rétegekben lévő összes IoT Edge-eszköz nevében. A blobok feltöltésének lehetősége hasznos hibaelhárítási funkciókat is lehetővé tesz az alacsonyabb rétegekben lévő IoT Edge-eszközökhöz, például a modulnapló feltöltéséhez és a csomagok feltöltésének támogatásához.

Hálózati konfiguráció

A felső rétegben lévő összes átjáróeszköz esetében a hálózati operátoroknak a következőkre van szükségük:

  • Adjon meg statikus IP-címet vagy teljes tartománynevet (FQDN).

  • Engedélyezze a kimenő kommunikációt erről az IP-címről az Azure IoT Hub-gazdagépnév felé a 443-es (HTTPS) és az 5671-es (AMQP) porton keresztül.

  • Engedélyezze a kimenő kommunikációt erről az IP-címről az Azure Container Registry-állomásnév felé a 443-os (HTTPS) porton keresztül.

    Az API-proxymodul egyszerre csak egy tárolóregisztrációs adatbázis kapcsolatait képes kezelni. Javasoljuk, hogy minden tárolórendszerképet, beleértve a Microsoft Container Registry (mcr.microsoft.com) által biztosított nyilvános lemezképeket is, tárolja a privát tárolóregisztrációs adatbázisban.

Az alsó rétegben lévő összes átjáróeszköz esetében a hálózati operátoroknak a következőkre van szükségük:

  • Adjon meg egy statikus IP-címet.
  • Engedélyezze a kimenő kommunikációt erről az IP-címről a szülőátjáró IP-címére a 443-es (HTTPS) és az 5671-es (AMQP) porton keresztül.

Modulok üzembe helyezése felső rétegbeli eszközökre

Az átjáróhierarchia felső rétegében található IoT Edge-eszköz rendelkezik olyan szükséges modulokkal, amelyeket üzembe kell helyezni, az eszközön futtatható számítási feladatok moduljai mellett.

Az API proxymodul úgy lett kialakítva, hogy testre szabható legyen a leggyakoribb átjáróforgatókönyvek kezelésére. Ez a cikk egy példa a modulok alapkonfigurációban való beállítására. Részletesebb információkért és példákért tekintse meg az API-proxymodul konfigurálását az átjáróhierarchia forgatókönyvéhez .

  1. Az Azure Portalon keresse meg az IoT hubot.

  2. Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.

  3. Válassza ki a listából a felső rétegben konfigurálni kívánt IoT Edge-eszközt.

  4. Válassza a Set modules (Modulok beállítása) lehetőséget.

  5. Az IoT Edge-modulok szakaszban válassza a Hozzáadás, majd a Marketplace-modul kiválasztása lehetőséget.

  6. Keresse meg és válassza ki az IoT Edge API proxymodult .

  7. Válassza ki az API-proxymodul nevét az üzembe helyezett modulok listájából, és frissítse a következő modulbeállításokat:

    1. A Környezeti változók lapon frissítse a NGINX_DEFAULT_PORT értékét a következőre443: .

    2. A Tároló létrehozása beállításlapon frissítse a portkötéseket a 443-as portra való hivatkozáshoz.

      {
        "HostConfig": {
          "PortBindings": {
            "443/tcp": [
              {
                "HostPort": "443"
              }
            ]
          }
        }
      }
      

    Ezek a módosítások konfigurálják az API-proxymodult a 443-as port figyelésére. A portkötés ütközésének megakadályozása érdekében konfigurálnia kell az edgeHub modult, hogy ne figyelje a 443-at. Ehelyett az API-proxymodul az edgeHub-forgalmat a 443-es porton irányítja át.

  8. Válassza a Futtatókörnyezet Gépház lehetőséget, és keresse meg az edgeHub-modul létrehozási beállításait. Törölje a 443-as port kötését, és hagyja meg az 5671-8883-at.

    {
      "HostConfig": {
        "PortBindings": {
          "5671/tcp": [
            {
              "HostPort": "5671"
            }
          ],
          "8883/tcp": [
            {
              "HostPort": "8883"
            }
          ]
        }
      }
    }
    
  9. A Mentés gombra kattintva mentheti a módosításokat a futtatókörnyezet beállításaiba.

  10. Válassza ismét a Hozzáadás lehetőséget, majd válassza az IoT Edge-modult.

  11. Adja meg a következő értékeket a Docker beállításjegyzék-modul üzembe helyezéséhez:

    1. IoT Edge-modul neve: registry

    2. A Modul beállításai lap Kép URI-ja:registry:latest

    3. A Környezeti változók lapon adja hozzá a következő környezeti változókat:

      • Név: REGISTRY_PROXY_REMOTEURLÉrték: Annak a tárolóregisztrációs adatbázisnak az URL-címe, amelyhez le szeretné képezni ezt a beállításjegyzék-modult. Például: https://myregistry.azurecr.

        A beállításjegyzék-modul csak egy tárolóregisztrációs adatbázishoz tud megfeleltetni, ezért azt javasoljuk, hogy az összes tárolólemezképet egyetlen privát tárolóregisztrációs adatbázisba rendelje.

      • Név: REGISTRY_PROXY_USERNAMEÉrték: A tárolóregisztrációs adatbázisba való hitelesítéshez használt felhasználónév.

      • Név: REGISTRY_PROXY_PASSWORDÉrték: A tárolóregisztrációs adatbázisba való hitelesítéshez szükséges jelszó.

    4. A Tároló létrehozása beállítások lapon illessze be a következőt:

      {
          "HostConfig": {
              "PortBindings": {
                  "5000/tcp": [
                      {
                          "HostPort": "5000"
                      }
                  ]
              }
          }
      }
      
  12. Válassza a Hozzáadás lehetőséget a modul üzembe helyezéséhez való hozzáadásához.

  13. Válassza a Következő: Útvonalak lehetőséget a következő lépéshez.

  14. Ha engedélyezni szeretné, hogy az alsóbb rétegbeli eszközökről érkező eszközökről érkező üzenetek elérjék az IoT Hubot, adjon meg egy útvonalat, amely minden üzenetet átad az IoT Hubnak. Példa:

    1. Név: Route
    2. Érték: FROM /messages/* INTO $upstream
  15. Az utolsó lépéshez válassza a Véleményezés + létrehozás lehetőséget .

  16. Válassza a Létrehozás lehetőséget az eszközön való üzembe helyezéshez.

Modulok üzembe helyezése alsó rétegbeli eszközökre

Az átjáróhierarchia alsó rétegeiben található IoT Edge-eszközöknek van egy szükséges moduljuk, amelyet üzembe kell helyezni rajtuk, az eszközön futtatható számítási feladatok moduljai mellett.

Tároló lemezképeinek átirányítása lekérések

Az átjáróhierarchiákban lévő IoT Edge-eszközökhöz szükséges proxymodul megvitatása előtt fontos tisztában lenni azzal, hogy az alsó rétegekben lévő IoT Edge-eszközök hogyan kapják meg a modulképeket.

Ha az alsó rétegbeli eszközök nem tudnak csatlakozni a felhőhöz, de azt szeretné, hogy a szokásos módon kérjék le a modulrendszerképeket, akkor az átjáróhierarchia felső rétegbeli eszközét konfigurálni kell a kérések kezeléséhez. A felső rétegbeli eszköznek futtatnia kell egy Docker-beállításjegyzék-modult, amely a tárolóregisztrációs adatbázishoz van hozzárendelve. Ezután konfigurálja az API-proxymodult a tárolókérések átirányításához. Ezeket a részleteket a cikk korábbi szakaszai ismertetik. Ebben a konfigurációban az alsó rétegbeli eszközöknek nem a felhőbeli tárolóregisztrációs adatbázisokra, hanem a felső rétegben futó beállításjegyzékre kell mutatniuk.

Például a hívás mcr.microsoft.com/azureiotedge-api-proxy:1.1helyett az alsó rétegbeli eszközöknek kell meghívni $upstream:443/azureiotedge-api-proxy:1.1őket.

A $upstream paraméter egy alsó rétegbeli eszköz szülőjére mutat, így a kérés végigvezeti az összes réteget, amíg el nem éri azt a felső réteget, amely proxykörnyezettel rendelkezik, és a tárolókéréseket a beállításjegyzék-modulhoz irányítja. A :443 példában szereplő portot a szülőeszköz API-proxymodulja által figyelt portra kell cserélni.

Az API-proxymodul csak egy beállításjegyzék-modulhoz tud irányítani, és minden beállításjegyzék-modul csak egy tárolóregisztrációs adatbázishoz tud megfeleltetni. Ezért minden olyan lemezképet, amelyet az alsó rétegbeli eszközöknek le kell húzni, egyetlen tárolóregisztrációs adatbázisban kell tárolniuk.

Ha nem szeretné, hogy az alsó rétegbeli eszközök modul-lekéréses kérelmeket hajtsanak létre egy átjáróhierarchián keresztül, egy másik lehetőség egy helyi beállításjegyzék-megoldás kezelése. Vagy küldje le a modulrendszerképeket az eszközökre az üzembe helyezések létrehozása előtt, majd állítsa az imagePullPolicyértéket soha.

Az IoT Edge-ügynök bootstrapálása

Az IoT Edge-ügynök az első futtatókörnyezeti összetevő, amely bármilyen IoT Edge-eszközön elindul. Meg kell győződnie arról, hogy az alsóbb rétegbeli IoT Edge-eszközök hozzáférhetnek az EdgeAgent modul lemezképéhez, amikor elindulnak, majd hozzáférhetnek az üzembe helyezésekhez, és elindíthatják a modul többi lemezképét.

Amikor bemegy egy IoT Edge-eszköz konfigurációs fájljába a hitelesítési adatok, tanúsítványok és szülő gazdagépnév megadásához, frissítse az edgeAgent tárolórendszerképet is.

Ha a legfelső szintű átjáróeszköz tárolórendszerkép-kérelmek kezelésére van konfigurálva, cserélje le mcr.microsoft.com a szülő gazdagépnevet és az API-proxy figyelési portot. Az üzembe helyezési jegyzékben parancsikonként használhatja $upstream , de ehhez az edgeHub-modulnak kell kezelnie az útválasztást, és ez a modul jelenleg nem indult el. Példa:

[agent]
name = "edgeAgent"
type = "docker"

[agent.config]
image: "{Parent FQDN or IP}:443/azureiotedge-agent:1.5"

Ha helyi tárolóregisztrációs adatbázist használ, vagy manuálisan adja meg a tárolólemezképeket az eszközön, ennek megfelelően frissítse a konfigurációs fájlt.

Futtatókörnyezet konfigurálása és proxymodul üzembe helyezése

Az API-proxymodul szükséges a felhő és az alsóbb rétegbeli IoT Edge-eszközök közötti összes kommunikáció útválasztásához. A hierarchia alsó rétegében lévő IoT Edge-eszközöknek nincs szükségük erre a modulra, ha nincsenek alsóbb rétegbeli IoT Edge-eszközök.

Az API proxymodul úgy lett kialakítva, hogy testre szabható legyen a leggyakoribb átjáróforgatókönyvek kezelésére. Ez a cikk röviden ismerteti a modulok alapkonfigurációban való beállításának lépéseit. Részletesebb információkért és példákért tekintse meg az API-proxymodul konfigurálását az átjáróhierarchia forgatókönyvéhez .

  1. Az Azure Portalon keresse meg az IoT hubot.

  2. Válassza az Eszközök lehetőséget az Eszközfelügyelet menüben.

  3. Válassza ki a listából a konfigurálni kívánt alsó rétegbeli IoT Edge-eszközt.

  4. Válassza a Set modules (Modulok beállítása) lehetőséget.

  5. Az IoT Edge-modulok szakaszban válassza a Hozzáadás, majd a Marketplace-modul kiválasztása lehetőséget.

  6. Keresse meg és válassza ki az IoT Edge API proxymodult .

  7. Válassza ki az API-proxymodul nevét az üzembe helyezett modulok listájából, és frissítse a következő modulbeállításokat:

    1. A Modul beállításai lapon frissítse a Kép URI értékét. Cserélje le a mcr.microsoft.com elemet a $upstream:443 kérdésre.

    2. A Környezeti változók lapon frissítse a NGINX_DEFAULT_PORT értékét a következőre443: .

    3. A Tároló létrehozása beállításlapon frissítse a portkötéseket a 443-as portra való hivatkozáshoz.

      {
        "HostConfig": {
          "PortBindings": {
            "443/tcp": [
              {
                "HostPort": "443"
              }
            ]
          }
        }
      }
      

    Ezek a módosítások konfigurálják az API-proxymodult a 443-as port figyelésére. A portkötés ütközésének megakadályozása érdekében konfigurálnia kell az edgeHub modult, hogy ne figyelje a 443-at. Ehelyett az API-proxymodul az edgeHub-forgalmat a 443-es porton irányítja át.

  8. Válassza a Futtatókörnyezet Gépház lehetőséget.

  9. Frissítse az edgeHub-modul beállításait:

    1. A Kép mezőben cserélje le a következőre mcr.microsoft.com$upstream:443: .
    2. A Beállítások létrehozása mezőben törölje a 443-as port kötését, és hagyja meg az 5671-8883-at.
    {
      "HostConfig": {
        "PortBindings": {
          "5671/tcp": [
            {
              "HostPort": "5671"
            }
          ],
          "8883/tcp": [
            {
              "HostPort": "8883"
            }
          ]
        }
      }
    }
    
  10. Frissítse az edgeAgent modul beállításait:

    1. A Kép mezőben cserélje le a következőre mcr.microsoft.com$upstream:443: .
  11. A Mentés gombra kattintva mentheti a módosításokat a futtatókörnyezet beállításaiba.

  12. Válassza a Következő: Útvonalak lehetőséget a következő lépéshez.

  13. Ha engedélyezni szeretné, hogy az alsóbb rétegbeli eszközökről érkező eszközökről érkező üzenetek elérjék az IoT Hubot, adjon meg egy útvonalat, amely az összes üzenetet átadja.$upstream A felsőbb rétegbeli paraméter alsó rétegbeli eszközök esetén a szülőeszközre mutat. Példa:

    1. Név: Route
    2. Érték: FROM /messages/* INTO $upstream
  14. Az utolsó lépéshez válassza a Véleményezés + létrehozás lehetőséget .

  15. Válassza a Létrehozás lehetőséget az eszközön való üzembe helyezéshez.

A gyermek és a szülő közötti kapcsolat ellenőrzése

  1. Ellenőrizze a TLS/SSL kapcsolatot a gyermek és a szülő között az alábbi openssl parancs futtatásával az alsóbb rétegbeli eszközön. Cserélje le <parent hostname> a szülő teljes tartománynevét vagy IP-címét.

    openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null
    

    A parancsnak az alábbi példához hasonlóan érvényesítenie kell a szülőtanúsítvány-lánc sikeres érvényesítését:

    azureUser@child-vm:~$ openssl s_client -connect <parent hostname>:8883 </dev/null 2>&1 >/dev/null
    Can't use SSL_get_servername
    depth=3 CN = Azure_IoT_Hub_CA_Cert_Test_Only
    verify return:1
    depth=2 CN = Azure_IoT_Hub_Intermediate_Cert_Test_Only
    verify return:1
    depth=1 CN = gateway.ca
    verify return:1
    depth=0 CN = <parent hostname>
    verify return:1
    DONE
    

    A "Nem használható SSL_get_servername" üzenet figyelmen kívül hagyható.

    Az depth=0 CN = értéknek meg kell egyeznie a szülő konfigurációs fájljában megadott állomásnév paraméterével config.toml .

    Ha a parancs túllépi az időkorlátot, előfordulhat, hogy blokkolt portok vannak a gyermek és a szülőeszközök között. Tekintse át az eszközök hálózati konfigurációját és beállításait.

    Figyelmeztetés

    Ha nem használ teljes láncú tanúsítványt az átjáró [edge_ca] szakaszában, az az alsóbb rétegbeli eszköz tanúsítványérvényesítési hibáit eredményezi. A fenti parancs például a openssl s_client ... következőt hozza létre:

    Can't use SSL_get_servername
    depth=1 CN = gateway.ca
    verify error:num=20:unable to get local issuer certificate
    verify return:1
    depth=0 CN = <parent hostname>
    verify return:1
    DONE
    

    Ugyanez a probléma az alsóbb rétegbeli IoT Edge-eszközhöz csatlakozó TLS-kompatibilis eszközök esetében is jelentkezik, ha a teljes láncú eszköztanúsítványt nem használják és konfigurálják az alsóbb rétegbeli eszközön.

A Microsoft Defender for IoT integrálása az IoT Edge-átjáróval

Alsóbb rétegbeli eszközökkel integrálható a Microsoft Defender for IoT mikroügynöke az IoT Edge-átjáróval alsóbb rétegbeli eszközproxy használatával.

További információ az IoT-alapú Defender mikroügynökről.

A Microsoft Defender for IoT integrálása az IoT Edge-rel alsóbb rétegbeli eszközproxy használatával:

  1. Jelentkezzen be az Azure Portalra.

  2. Az IoT Hub>Your Hub>eszközfelügyeleti>eszközeinek megnyitása

  3. Válassza ki az eszközt.

    Képernyőkép arról, hogy az eszköz hol található a kijelöléshez.

  4. Válassza ki a modul ikerpéldányát, amelyet ezekből az DefenderIotMicroAgent utasításokból hozott létre.

    Képernyőkép a DefenderIotMicroAgent helyéről.

  5. Válassza ki a gombot a Csatlakozás ion sztring (elsődleges kulcs) másolásához.

  6. Illessze be a Csatlakozás ion sztringet egy szövegszerkesztő alkalmazásba, és adja hozzá a GatewayHostName nevet a sztringhez. Például: HostName=nested11.azure-devices.net;DeviceId=downstream1;ModuleId=module1;SharedAccessKey=xxx;GatewayHostName=10.16.7.4.

  7. Nyisson meg egy terminált az alsóbb rétegbeli eszközön.

  8. A következő paranccsal helyezze az utf-8 kódolt kapcsolati sztring az Felhőhöz készült Defender ügynökkönyvtárában a következő elérési úton található fájlbaconnection_string.txt: /etc/defender_iot_micro_agent/connection_string.txt

    sudo bash -c 'echo "<connection string>" > /etc/defender_iot_micro_agent/connection_string.txt'
    

    A connection_string.txt fájlnak most az alábbi elérési úton /etc/defender_iot_micro_agent/connection_string.txtkell lennie.

  9. Indítsa újra a szolgáltatást a következő paranccsal:

    sudo systemctl restart defender-iot-micro-agent.service 
    
  10. Lépjen vissza az eszközre.

    Képernyőkép az eszközre való visszalépésről.

  11. Engedélyezze az IoT Hubhoz való kapcsolatot, és válassza a fogaskerék ikont.

    Képernyőkép a szülőeszköz beállításának kiválasztásáról.

  12. Válassza ki a szülőeszközt a megjelenített listából.

  13. Győződjön meg arról, hogy a 8883-as port (MQTT) nyitva van az alsóbb rétegbeli eszköz és az IoT Edge-eszköz között.

Következő lépések

IoT Edge-eszköz használata átjáróként

Az API-proxymodul konfigurálása az átjáróhierarchia forgatókönyvéhez