Udostępnij przez


Konfigurowanie urządzenia usługi IoT Edge, aby działało jako przezroczysta brama

Dotyczy:ikona potwierdzenia IoT Edge 1.1

Ważne

Data zakończenia wsparcia usługi IoT Edge 1.1 wynosiła 13 grudnia 2022 r.. Zapoznaj się z cyklem życia produktów firmy Microsoft, aby uzyskać informacje na temat sposobu obsługi tego produktu lub interfejsu API albo tej usługi lub technologii. Aby uzyskać więcej informacji na temat aktualizowania do najnowszej wersji usługi IoT Edge, zobacz Update IoT Edge.

Ten artykuł zawiera szczegółowe instrukcje dotyczące konfigurowania urządzenia IoT Edge jako przezroczystej bramy, przez którą inne urządzenia mogą komunikować się z usługą IoT Hub. W tym artykule użyto terminu Brama usługi IoT Edge, aby odwoływać się do urządzenia usługi IoT Edge skonfigurowanego jako przezroczysta brama. Aby uzyskać więcej informacji, zobacz How an IoT Edge device can be used as a gateway (Jak urządzenie usługi IoT Edge może być używane jako brama).

Uwaga

W wersjach IoT Edge 1.1 i starszych urządzenie IoT Edge nie może być podrzędnym wobec bramy IoT Edge.

Urządzenia podrzędne nie mogą używać przekazywania plików.

Są trzy ogólne kroki pomyślnego skonfigurowania przezroczystego połączenia bramy. W tym artykule opisano pierwszy krok:

  1. Skonfiguruj urządzenie bramy jako serwer, aby urządzenia podrzędne mogły się z nim bezpiecznie łączyć. Skonfiguruj bramę w celu odbierania komunikatów z urządzeń podrzędnych i kierowania ich do odpowiedniego miejsca docelowego.
  2. Utwórz tożsamość urządzenia dla urządzenia podrzędnego, aby umożliwić jego uwierzytelnianie za pomocą usługi IoT Hub. Skonfiguruj urządzenie podrzędne do wysyłania komunikatów za pośrednictwem urządzenia bramy. Aby uzyskać te kroki, zobacz Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub.
  3. Połącz urządzenie podrzędne z urządzeniem bramy i rozpocznij wysyłanie komunikatów. Aby uzyskać te kroki, zobacz Łączenie urządzenia podrzędnego z bramą usługi Azure IoT Edge.

Aby urządzenie działało jako brama, musi bezpiecznie łączyć się ze swoimi urządzeniami podrzędnym. Usługa Azure IoT Edge umożliwia konfigurowanie bezpiecznych połączeń między urządzeniami przy użyciu infrastruktury kluczy publicznych (PKI). W takim przypadku zezwalamy urządzeniom podrzędnym na łączenie się z urządzeniem IoT Edge, pełniącym funkcję przezroczystej bramy. Aby zachować rozsądne zabezpieczenia, urządzenie podrzędne powinno potwierdzić tożsamość urządzenia bramy. Ta kontrola tożsamości uniemożliwia urządzeniom nawiązywanie połączenia z potencjalnie złośliwymi bramami.

Urządzenie podrzędne może być dowolną aplikacją lub platformą, która ma tożsamość utworzoną za pomocą usługi w chmurze usługi Azure IoT Hub . Te aplikacje często używają Azure IoT device SDK. Urządzenie podrzędne może być nawet aplikacją działającą na samym urządzeniu bramy IoT Edge. Jednak urządzenie IoT Edge nie może być podłączone do bramy IoT Edge jako urządzenie podrzędne.

Możesz utworzyć dowolną infrastrukturę certyfikatów, która umożliwia osiągnięcie wymaganego poziomu zaufania dla topologii urządzeń-brama. W tym artykule zakładamy, że używana jest ta sama konfiguracja certyfikatu, którą stosujesz w celu włączenia zabezpieczeń X.509 CA w usłudze IoT Hub, co obejmuje certyfikat X.509 CA skojarzony z określonym centrum IoT (głównym CA centrum IoT), serię certyfikatów podpisanych przez ten CA oraz CA dla urządzenia IoT Edge.

Uwaga

Termin Certyfikat root CA używany w tych artykułach odnosi się do certyfikatu publicznego najwyższego autorytetu w łańcuchu certyfikatów PKI, a niekoniecznie do certyfikatu głównego syndykowanego urzędu certyfikacji. W wielu przypadkach jest to w rzeczywistości pośredni publiczny certyfikat CA.

Poniższe kroki przeprowadzą Cię przez proces tworzenia certyfikatów i instalowania ich w odpowiednich miejscach na bramie. Możesz użyć dowolnej maszyny do wygenerowania certyfikatów, a następnie skopiować je na urządzenie usługi IoT Edge.

Wymagania wstępne

Urządzenie z systemem Linux lub Windows z zainstalowanym IoT Edge.

Jeśli nie masz gotowego urządzenia, możesz go utworzyć na maszynie wirtualnej platformy Azure. Wykonaj kroki opisane w artykule Wdrażanie pierwszego modułu usługi IoT Edge na wirtualnym urządzeniu z systemem Linux, aby utworzyć usługę IoT Hub, utworzyć maszynę wirtualną i skonfigurować środowisko uruchomieniowe usługi IoT Edge.

Konfiguruj certyfikat CA urządzenia

Wszystkie bramy IoT Edge wymagają zainstalowanego na nich certyfikatu urządzenia CA. Demon zabezpieczeń IoT Edge używa certyfikatu CA urządzenia IoT Edge do podpisania certyfikatu CA obciążenia, który z kolei podpisuje certyfikat serwera dla centrum IoT Edge. Brama przedstawia certyfikat serwera urządzeniu podrzędnego podczas inicjowania połączenia. Urządzenie podrzędne sprawdza, czy certyfikat serwera jest częścią łańcucha certyfikatów, który jest zwijany do certyfikatu głównego urzędu certyfikacji. Ten proces umożliwia urządzeniu podrzędnym potwierdzenie, że brama pochodzi z zaufanego źródła. Aby uzyskać więcej informacji, zobacz Omówienie sposobu korzystania z certyfikatów w usłudze Azure IoT Edge.

Konfiguracja certyfikatu bramy

Certyfikat głównego urzędu certyfikacji i certyfikat urzędu certyfikacji urządzenia (z jego kluczem prywatnym) muszą być obecne na urządzeniu bramy usługi IoT Edge i skonfigurowane w pliku konfiguracji usługi IoT Edge. Należy pamiętać, że w tym przypadku certyfikat root CA oznacza najwyższy urząd certyfikacji dla tego scenariusza usługi IoT Edge. Certyfikat urzędu certyfikacji urządzenia bramy i certyfikaty urządzeń podrzędnych muszą być powiązane z tym samym głównym certyfikatem urzędu certyfikacji.

Wskazówka

Proces instalowania certyfikatu głównego urzędu certyfikacji i certyfikatu urzędu certyfikacji urządzenia na urządzeniu usługi IoT Edge jest również bardziej szczegółowo opisany w temacie Zarządzanie certyfikatami na urządzeniu usługi IoT Edge.

Przygotuj następujące pliki:

  • Certyfikat głównego urzędu certyfikacji
  • Certyfikat CA urządzenia
  • Klucz prywatny CA urządzenia

W przypadku scenariuszy produkcyjnych należy wygenerować te pliki przy użyciu własnego urzędu certyfikacji. W przypadku scenariuszy programowania i testowania można użyć certyfikatów demonstracyjnych.

Tworzenie certyfikatów demonstracyjnych

Jeśli nie masz własnego urzędu certyfikacji i chcesz używać certyfikatów demonstracyjnych, postępuj zgodnie z instrukcjami w temacie Tworzenie certyfikatów demonstracyjnych, aby przetestować funkcje urządzenia usługi IoT Edge w celu utworzenia plików. Na tej stronie należy wykonać następujące czynności:

  1. Aby rozpocząć, skonfiguruj skrypty do generowania certyfikatów na urządzeniu.
  2. Utwórz certyfikat głównego urzędu certyfikacji. Na końcu tych instrukcji będziesz mieć plik certyfikatu głównego urzędu certyfikacji <path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Utwórz certyfikaty CA dla urządzeń IoT Edge. Na końcu tych instrukcji będziesz mieć certyfikat urzędu certyfikacji urządzenia oraz jego klucz prywatny <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem<path>/private/iot-edge-device-ca-<cert name>.key.pem.

Kopiowanie certyfikatów na urządzenie

  1. Sprawdź, czy certyfikat spełnia wymagania dotyczące formatu.

  2. Jeśli certyfikaty zostały utworzone na innym komputerze, skopiuj je na urządzenie usługi IoT Edge. Możesz użyć dysku USB, usługi takiej jak Azure Key Vault lub funkcji takiej jak Secure file copy.

  3. Przenieś pliki do preferowanego katalogu dla certyfikatów i kluczy. Użyj /var/aziot/certs do certyfikatów i użyj /var/aziot/secrets do kluczy.

  4. Utwórz certyfikaty i katalogi kluczy i ustaw uprawnienia. Certyfikaty i klucze należy przechowywać w preferowanym /var/aziot katalogu. Użyj /var/aziot/certs do certyfikatów i użyj /var/aziot/secrets do kluczy.

    # 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
    
  5. Zmień własność i uprawnienia certyfikatów i kluczy.

    # 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 {} \;
    

Konfigurowanie certyfikatów na urządzeniu

  1. Na urządzeniu usługi IoT Edge otwórz plik konfiguracji demona zabezpieczeń.

    • Windows: C:\ProgramData\iotedge\config.yaml
    • Linux: /etc/iotedge/config.yaml
    • Usługa IoT Edge dla systemu Linux w systemie Windows: /etc/iotedge/config.yaml

    Wskazówka

    Jeśli używasz usługi IoT Edge dla systemu Linux w systemie Windows (EFLOW), musisz nawiązać połączenie z maszyną wirtualną EFLOW i zmienić plik wewnątrz maszyny wirtualnej. Możesz nawiązać połączenie z maszyną wirtualną EFLOW przy użyciu polecenia cmdlet Connect-EflowVm programu PowerShell, a następnie użyć preferowanego edytora.

  2. Znajdź sekcję Ustawienia certyfikatu w pliku. Usuń komentarz z czterech wierszy zaczynających się od certificates: i podaj URI plików do swoich trzech plików jako wartości dla następujących właściwości

    • device_ca_cert: certyfikat urzędu certyfikacji urządzenia
    • device_ca_pk: klucz prywatny CA urządzenia
    • trusted_ca_certs: certyfikat głównego urzędu certyfikacji

    Upewnij się, że w wierszu certyfikaty: nie ma początkowego odstępu, a pozostałe linie są wcięte o dwie spacje.

  3. Zapisz i zamknij plik.

  4. Uruchom ponownie usługę IoT Edge.

    • Windows: Restart-Service iotedge
    • Linux: sudo systemctl restart iotedge
    • Usługa IoT Edge dla systemu Linux w systemie Windows: sudo systemctl restart iotedge

Wdrażanie usługi edgeHub i kierowanie komunikatów

Urządzenia podrzędne wysyłają dane telemetryczne i komunikaty do urządzenia bramy, gdzie moduł centrum usługi IoT Edge jest odpowiedzialny za kierowanie informacji do innych modułów lub do usługi IoT Hub. Aby przygotować urządzenie bramy do tej funkcji, upewnij się, że:

  • Moduł centrum usługi IoT Edge jest wdrażany na urządzeniu.

    Po pierwszym zainstalowaniu usługi IoT Edge na urządzeniu uruchamia się automatycznie tylko jeden moduł systemowy: agent usługi IoT Edge. Po utworzeniu pierwszego wdrożenia dla urządzenia, drugi moduł systemowy oraz IoT Edge hub również rozpoczną się. Jeśli moduł edgeHub nie jest uruchomiony na urządzeniu, utwórz wdrożenie dla urządzenia.

  • Moduł centrum usługi IoT Edge zawiera trasy skonfigurowane do obsługi komunikatów przychodzących z urządzeń podrzędnych.

    Urządzenie bramy musi mieć wyznaczoną trasę do obsługi komunikatów z urządzeń podrzędnych, w przeciwnym razie te komunikaty nie zostaną przetworzone. Komunikaty można wysyłać do modułów na urządzeniu bramy lub bezpośrednio do usługi IoT Hub.

Aby wdrożyć moduł centrum usługi IoT Edge i skonfigurować go przy użyciu tras do obsługi komunikatów przychodzących z urządzeń podrzędnych, wykonaj następujące kroki:

  1. W portalu Azure przejdź do swojego IoT Hub.

  2. Przejdź do pozycji Urządzenia w menu Zarządzanie urządzeniami i wybierz urządzenie usługi IoT Edge, którego chcesz użyć jako bramy.

  3. Wybierz pozycję Ustaw moduły.

  4. Na stronie Moduły możesz dodać wszystkie moduły, które chcesz wdrożyć na urządzeniu bramy. Na potrzeby tego artykułu koncentrujemy się na konfigurowaniu i wdrażaniu modułu edgeHub, który nie musi być jawnie ustawiony na tej stronie.

  5. Wybierz pozycję Dalej: trasy.

  6. Na stronie Trasy upewnij się, że istnieje trasa do obsługi komunikatów pochodzących z urządzeń podrzędnych. Na przykład:

    • Trasa, która wysyła wszystkie komunikaty z modułu lub z urządzenia podrzędnego do usługi IoT Hub:

      • Nazwa: allMessagesToHub
      • Wartość: FROM /messages/* INTO $upstream
    • Trasa, która wysyła wszystkie komunikaty ze wszystkich urządzeń podrzędnych do usługi IoT Hub:

      • Nazwa: allDownstreamToHub
      • Wartość: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Ta trasa działa, ponieważ w przeciwieństwie do komunikatów z modułów usługi IoT Edge komunikaty z urządzeń podrzędnych nie mają skojarzonego identyfikatora modułu. Użycie klauzuli WHERE trasy pozwala nam odfiltrować wszelkie komunikaty z tą właściwością systemową.

      Aby uzyskać więcej informacji na temat routingu komunikatów, zobacz Wdrażanie modułów i ustanawianie tras.

  7. Po utworzeniu trasy lub tras kliknij Przejrzyj i utwórz.

  8. Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz.

Otwieranie portów na urządzeniu bramy sieciowej

Standardowe urządzenia IoT Edge nie wymagają żadnej łączności przychodzącej do działania, ponieważ cała komunikacja z IoT Hub odbywa się przez połączenia wychodzące. Urządzenia bramowe są różne, ponieważ muszą odbierać komunikaty od urządzeń podrzędnych. Jeśli zapora znajduje się między urządzeniami podrzędnymi a urządzeniem bramy, to komunikacja musi być możliwa również przez zaporę.

Aby scenariusz bramy działał, co najmniej jeden z obsługiwanych protokołów usługi IoT Edge Hub musi być otwarty dla ruchu przychodzącego z urządzeń podrzędnych. Obsługiwane protokoły to MQTT, AMQP, HTTPS, MQTT za pośrednictwem WebSocket i AMQP za pośrednictwem WebSocket.

Port Protokół
8883 MQTT
5671 AMQP (Protokół przesyłania danych asynchronicznych)
443 HTTPS
MQTT+WS
AMQP+WS

Następne kroki

Po skonfigurowaniu urządzenia usługi IoT Edge jako przezroczystej bramy należy skonfigurować urządzenia podrzędne tak, aby ufały bramie i wysyłały do niej komunikaty. Przejdź do sekcji Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub, aby wykonać kolejne kroki konfiguracji scenariusza przejrzystej bramy.