Konfigurace zařízení IoT Edge tak, aby fungovalo jako transparentní brána
Platí pro: IoT Edge 1.1
Důležité
Datum ukončení podpory ioT Edge 1.1 bylo 13. prosince 2022. Informace o způsobu podpory tohoto produktu, služby, technologie nebo rozhraní API najdete v tématu věnovaném životnímu cyklu produktů Microsoftu. Další informace o aktualizaci na nejnovější verzi IoT Edge najdete v tématu Aktualizace IoT Edge.
Tento článek obsahuje podrobné pokyny ke konfiguraci zařízení IoT Edge tak, aby fungovalo jako transparentní brána pro ostatní zařízení, která komunikují se službou IoT Hub. V tomto článku se používá termín brána IoT Edge, která odkazuje na zařízení IoT Edge nakonfigurované jako transparentní brána. Další informace najdete v tématu Jak se dá zařízení IoT Edge používat jako brána.
Poznámka:
Ve službě IoT Edge verze 1.1 a starší nemůže být zařízení IoT Edge podřízené bráně IoT Edge.
Podřízená zařízení nemůžou používat nahrávání souborů.
Existují tři obecné kroky k nastavení úspěšného transparentního připojení brány. Tento článek popisuje první krok:
- Nakonfigurujte zařízení brány jako server, aby se k němu podřízená zařízení mohly bezpečně připojit. Nastavte bránu tak, aby přijímala zprávy z podřízených zařízení a směrovala je do správného cíle.
- Vytvořte identitu zařízení pro podřízené zařízení, aby se mohl ověřit ve službě IoT Hub. Nakonfigurujte podřízené zařízení tak, aby odesílala zprávy přes zařízení brány. Tyto kroky najdete v tématu Ověření podřízeného zařízení ve službě Azure IoT Hub.
- Připojte podřízené zařízení k zařízení brány a začněte odesílat zprávy. Tyto kroky najdete v tématu Připojení podřízeného zařízení k bráně Azure IoT Edge.
Aby zařízení fungovalo jako brána, musí se bezpečně připojit ke svým podřízeným zařízením. Azure IoT Edge umožňuje použít infrastrukturu veřejných klíčů (PKI) k nastavení zabezpečených připojení mezi zařízeními. V tomto případě umožňujeme podřízené zařízení připojit se k zařízení IoT Edge, které funguje jako transparentní brána. Aby se zachovalo přiměřené zabezpečení, podřízené zařízení by mělo potvrdit identitu zařízení brány. Tato kontrola identity brání zařízením v připojení k potenciálně škodlivým branám.
Podřízené zařízení může být libovolná aplikace nebo platforma, která má identitu vytvořenou s cloudovou službou Azure IoT Hub . Tyto aplikace často používají sadu SDK pro zařízení Azure IoT. Podřízené zařízení může být dokonce aplikace spuštěná na samotném zařízení brány IoT Edge. Zařízení IoT Edge ale nemůže být podřízené bráně IoT Edge.
Můžete vytvořit jakoukoli infrastrukturu certifikátů, která umožňuje důvěryhodnost vyžadovanou pro topologii brány zařízení. V tomto článku předpokládáme stejné nastavení certifikátu, které byste použili k povolení zabezpečení certifikační autority X.509 ve službě IoT Hub, což zahrnuje certifikát ca X.509 přidružený ke konkrétní službě IoT Hub (kořenová certifikační autorita služby IoT Hub), řadu certifikátů podepsaných touto certifikační autoritou a certifikační autoritu pro zařízení IoT Edge.
Poznámka:
Termín kořenový certifikát certifikační autority používaný v těchto článcích odkazuje na veřejný certifikát nejvyšší autority řetězu certifikátů PKI a nemusí nutně být kořenem certifikátu syndikované certifikační autority. V mnoha případech se jedná o veřejný certifikát zprostředkující certifikační autority.
Následující kroky vás provedou procesem vytvoření certifikátů a jejich instalace na správných místech brány. Certifikáty můžete vygenerovat pomocí libovolného počítače a pak je zkopírovat do zařízení IoT Edge.
Požadavky
Zařízení s Linuxem nebo Windows s nainstalovaným IoT Edgem.
Pokud zařízení nemáte připravené, můžete ho vytvořit na virtuálním počítači Azure. Postupujte podle kroků v tématu Nasazení prvního modulu IoT Edge do virtuálního zařízení s Linuxem a vytvořte IoT Hub, vytvořte virtuální počítač a nakonfigurujte modul runtime IoT Edge.
Nastavení certifikátu certifikační autority zařízení
Všechny brány IoT Edge potřebují nainstalovaný certifikát certifikační autority zařízení. Proces démon zabezpečení IoT Edge používá certifikát certifikační autority zařízení IoT Edge k podepsání certifikátu certifikační autority úlohy, který pak podepíše certifikát serveru pro centrum IoT Edge. Brána během inicializace připojení předloží podřízeným zařízením svůj certifikát serveru. Podřízené zařízení zkontroluje, jestli je certifikát serveru součástí řetězu certifikátů, který se zahrne do kořenového certifikátu certifikační autority. Tento proces umožňuje podřízené zařízení potvrdit, že brána pochází z důvěryhodného zdroje. Další informace najdete v tématu Vysvětlení toho, jak Azure IoT Edge používá certifikáty.
Kořenový certifikát certifikační autority a certifikát certifikační autority zařízení (s jeho privátním klíčem) musí být přítomné na zařízení brány IoT Edge a nakonfigurované v konfiguračním souboru IoT Edge. Nezapomeňte, že v tomto případě kořenový certifikát certifikační autority znamená nejvyšší certifikační autoritu pro tento scénář IoT Edge. Certifikát certifikační autority zařízení brány a podřízené certifikáty zařízení musí být zařazeny do stejného kořenového certifikátu certifikační autority.
Tip
Proces instalace certifikátu kořenové certifikační autority a certifikátu certifikační autority zařízení na zařízení IoT Edge je podrobněji vysvětlen také v části Správa certifikátů na zařízení IoT Edge.
Připravte následující soubory:
- Kořenový certifikát certifikační autority
- Certifikát certifikační autority zařízení
- Privátní klíč certifikační autority zařízení
V produkčních scénářích byste tyto soubory měli vygenerovat s vlastní certifikační autoritou. Pro scénáře vývoje a testování můžete použít ukázkové certifikáty.
Vytvoření ukázkových certifikátů
Pokud nemáte vlastní certifikační autoritu a chcete používat ukázkové certifikáty, postupujte podle pokynů v části Vytvoření ukázkových certifikátů a otestujte funkce zařízení IoT Edge a vytvořte své soubory. Na této stránce musíte provést následující kroky:
- Začněte tím, že nastavíte skripty pro generování certifikátů na vašem zařízení.
- Vytvořte kořenový certifikát certifikační autority. Na konci těchto pokynů budete mít soubor
<path>/certs/azure-iot-test-only.root.ca.cert.pem
certifikátu kořenové certifikační autority . - Vytvořte certifikáty certifikační autority zařízení IoT Edge. Na konci těchto pokynů budete mít certifikát
<path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem
certifikační autority zařízení, který je jeho privátní klíč<path>/private/iot-edge-device-ca-<cert name>.key.pem
.
Kopírování certifikátů do zařízení
Zkontrolujte, jestli certifikát splňuje požadavky na formát.
Pokud jste certifikáty vytvořili na jiném počítači, zkopírujte je do zařízení IoT Edge. Můžete použít jednotku USB, službu, jako je Azure Key Vault, nebo s funkcí, jako je zabezpečené kopírování souborů.
Přesuňte soubory do upřednostňovaného adresáře pro certifikáty a klíče. Používá se
/var/aziot/certs
pro certifikáty a/var/aziot/secrets
klíče.Vytvořte certifikáty a adresáře klíčů a nastavte oprávnění. Certifikáty a klíče byste měli uložit do upřednostňovaného
/var/aziot
adresáře. Používá se/var/aziot/certs
pro certifikáty a/var/aziot/secrets
klíče.# If the 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
Změňte vlastnictví a oprávnění certifikátů a klíčů.
# 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 {} \;
Konfigurace certifikátů na zařízení
Na zařízení IoT Edge otevřete konfigurační soubor démon zabezpečení.
- Windows:
C:\ProgramData\iotedge\config.yaml
- Linux:
/etc/iotedge/config.yaml
- IoT Edge pro Linux ve Windows:
/etc/iotedge/config.yaml
Tip
Pokud používáte IoT Edge pro Linux ve Windows (EFLOW), budete se muset připojit k virtuálnímu počítači EFLOW a změnit soubor uvnitř virtuálního počítače. K virtuálnímu počítači EFLOW se můžete připojit pomocí rutiny
Connect-EflowVm
PowerShellu a pak použít preferovaný editor.- Windows:
Najděte část Nastavení certifikátu souboru. Odkomentujte čtyři řádky začínající certifikáty : a zadejte identifikátory URI souboru pro vaše tři soubory jako hodnoty následujících vlastností:
- device_ca_cert: Certifikát certifikační autority zařízení
- device_ca_pk: Privátní klíč certifikační autority zařízení
- trusted_ca_certs: kořenový certifikát certifikační autority
Ujistěte se, že na řádku nejsou žádné prázdné znaky a že ostatní řádky jsou odsazené dvěma mezerami.
Soubor uložte a zavřete.
Restartujte IoT Edge.
- Windows:
Restart-Service iotedge
- Linux:
sudo systemctl restart iotedge
- IoT Edge pro Linux ve Windows:
sudo systemctl restart iotedge
- Windows:
Nasazení edgeHubu a směrování zpráv
Podřízená zařízení odesílají telemetrii a zprávy do zařízení brány, kde modul centra IoT Edge zodpovídá za směrování informací do jiných modulů nebo do IoT Hubu. Pokud chcete pro tuto funkci připravit zařízení brány, ujistěte se, že:
Modul Centra IoT Edge se nasadí do zařízení.
Při první instalaci IoT Edge na zařízení se automaticky spustí jenom jeden systémový modul: agent IoT Edge. Jakmile vytvoříte první nasazení pro zařízení, spustí se také druhý systémový modul a centrum IoT Edge. Pokud na vašem zařízení není spuštěný modul EdgeHub , vytvořte pro své zařízení nasazení.
Modul centra IoT Edge má nastavené trasy pro zpracování příchozích zpráv z podřízených zařízení.
Zařízení brány musí mít zavedenou trasu pro zpracování zpráv z podřízených zařízení nebo jinak se tyto zprávy nezpracují. Zprávy můžete odesílat do modulů na zařízení brány nebo přímo do IoT Hubu.
Pokud chcete nasadit modul centra IoT Edge a nakonfigurovat ho pomocí tras pro zpracování příchozích zpráv z podřízených zařízení, postupujte takto:
Na webu Azure Portal přejděte do svého centra IoT.
V nabídce Správa zařízení přejděte na Zařízení a vyberte zařízení IoT Edge, které chcete použít jako bránu.
Vyberte Nastavit moduly.
Na stránce Moduly můžete přidat všechny moduly, které chcete nasadit do zařízení brány. Pro účely tohoto článku se zaměřujeme na konfiguraci a nasazení modulu EdgeHub, který není potřeba explicitně nastavit na této stránce.
Vyberte Další: Trasy.
Na stránce Trasy se ujistěte, že existuje trasa pro zpracování zpráv přicházejících z podřízených zařízení. Příklad:
Trasa, která odesílá všechny zprávy z modulu nebo z podřízeného zařízení do IoT Hubu:
- Název:
allMessagesToHub
- Hodnota:
FROM /messages/* INTO $upstream
- Název:
Trasa, která odesílá všechny zprávy ze všech podřízených zařízení do IoT Hubu:
- Název:
allDownstreamToHub
- Hodnota:
FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream
Tato trasa funguje, protože na rozdíl od zpráv z modulů IoT Edge zprávy z podřízených zařízení nemají přidružené ID modulu. Použití klauzule WHERE trasy nám umožňuje vyfiltrovat všechny zprávy s danou systémovou vlastností.
Další informace o směrování zpráv naleznete v tématu Nasazení modulů a navázání tras.
- Název:
Po vytvoření trasy nebo tras vyberte Zkontrolovat a vytvořit.
Na stránce Zkontrolovat a vytvořit vyberte Vytvořit.
Otevření portů na zařízení brány
Standardní zařízení IoT Edge nepotřebují k fungování žádné příchozí připojení, protože veškerá komunikace se službou IoT Hub probíhá prostřednictvím odchozích připojení. Zařízení brány se liší, protože potřebují přijímat zprávy ze svých podřízených zařízení. Pokud je brána firewall mezi podřízenými zařízeními a zařízením brány, musí být komunikace možná i přes bránu firewall.
Aby scénář brány fungoval, musí být alespoň jeden z podporovaných protokolů ioT Edge Hubu otevřený pro příchozí provoz z podřízených zařízení. Podporované protokoly jsou MQTT, AMQP, HTTPS, MQTT přes WebSockets a AMQP přes WebSockets.
Port | Protokol |
---|---|
8883 | MQTT |
5671 | AMQP |
443 | HTTPS MQTT+WS AMQP+WS |
Další kroky
Když teď máte zařízení IoT Edge nastavené jako transparentní bránu, musíte nakonfigurovat podřízená zařízení tak, aby bráně důvěřovala a odesílala do ní zprávy. Pokračujte v ověřování podřízeného zařízení ve službě Azure IoT Hub a proveďte další kroky při nastavování scénáře transparentní brány.