Udostępnij przez


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

Dotyczy:Znacznik wyboru usługi IoT Edge 1.5 IoT Edge 1.5

Ważne

Obsługiwana wersja usługi IoT Edge 1.5 LTS. Usługa IoT Edge 1.4 LTS kończy się od 12 listopada 2024 r. Jeśli korzystasz z wcześniejszej wersji, zobacz aktualizację Azure IoT Edge.

Ten artykuł zawiera szczegółowe instrukcje dotyczące konfigurowania urządzenia usługi IoT Edge jako przezroczystej bramy, aby inne urządzenia mogły łączyć się z usługą IoT Hub. W tym artykule IoT Edge gateway oznacza urządzenie IoT Edge skonfigurowane 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

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

Istnieją trzy główne kroki skonfigurowania transparentnego połączenia bramy. W tym artykule opisano pierwszy krok:

  1. Skonfiguruj urządzenie bramy jako serwer, aby urządzenia podrzędne mogły się 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 działać jako brama, urządzenie musi bezpiecznie połą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 urządzenie podrzędne łączy się z urządzeniem IoT Edge, pełniącym funkcję przezroczystej bramy. Aby zapewnić bezpieczeństwo, urządzenie podrzędne sprawdza tożsamość urządzenia bramy. Ta kontrola pomaga uniemożliwić urządzeniom nawiązywanie połączenia ze złośliwymi bramami.

Urządzenie podrzędne może być dowolną aplikacją lub platformą z tożsamością utworzoną w usłudze Azure IoT Hub. Te aplikacje często używają zestawu SDK urządzeń Usługi Azure IoT. Urządzenie podrzędne może być nawet aplikacją działającą na samym urządzeniu bramy usługi IoT Edge.

Możesz utworzyć dowolną infrastrukturę certyfikatów, która umożliwia zaufanie wymagane dla topologii bramy urządzeń. W tym artykule używamy tych samych ustawień certyfikatu co zabezpieczenia urzędu certyfikacji X.509 w usłudze IoT Hub. Ta konfiguracja wykorzystuje certyfikat urzędu certyfikacji X.509 skojarzony z konkretnym hubem IoT (głównym urzędem certyfikacji hubu IoT), serię certyfikatów podpisanych tą jednostką certyfikacyjną oraz urząd certyfikacji dla urządzenia IoT Edge.

Uwaga

Termin Certyfikat głównego urzędu certyfikacji używany w tych artykułach odnosi się do najwyższego poziomu publicznego certyfikatu urzędu łańcucha certyfikatów PKI, a niekoniecznie certyfikatu głównego urzędu certyfikacji syndyka. W wielu przypadkach jest to publiczny certyfikat pośredniego urzędu certyfikacji.

Wykonaj następujące kroki, aby utworzyć certyfikaty i zainstalować je w odpowiednich miejscach w bramie. Użyj dowolnej maszyny do wygenerowania certyfikatów, a następnie skopiuj je na urządzenie usługi IoT Edge.

Wymagania wstępne

Potrzebujesz urządzenia z systemem Linux lub Windows z zainstalowaną usługą IoT Edge.

Jeśli nie masz gotowego urządzenia, utwórz je 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.

Konfigurowanie certyfikatu urzędu certyfikacji usługi Edge

Wszystkie bramy usługi IoT Edge wymagają zainstalowanego na nich certyfikatu urzędu certyfikacji usługi Edge. Demon zabezpieczeń usługi IoT Edge używa certyfikatu urzędu certyfikacji usługi Edge do podpisania certyfikatu urzędu certyfikacji obciążenia, który z kolei podpisuje certyfikat serwera dla centrum usługi 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.

Zrzut ekranu przedstawiający konfigurację certyfikatu bramy.

Certyfikat główny CA i certyfikat CA Edge (z jego kluczem prywatnym) muszą być przechowywane na urządzeniu bramy IoT Edge i skonfigurowane w pliku konfiguracji IoT Edge. W takim przypadku certyfikat głównego urzędu certyfikacji oznacza najwyższy urząd certyfikacji dla tego scenariusza usługi IoT Edge. Certyfikat urzędu certyfikacji bramy Edge oraz certyfikaty podrzędnych urządzeń muszą być zgodne z tym samym certyfikatem głównego urzędu certyfikacji.

Napiwek

Proces instalowania certyfikatu głównego urzędu certyfikacji i certyfikatu urzędu certyfikacji usługi Edge 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 urzędu certyfikacji usługi Edge
  • Klucz prywatny urzędu certyfikacji urządzenia

W przypadku scenariuszy produkcyjnych wygeneruj te pliki za pomocą 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 wykonaj następujące kroki:

  1. Skonfiguruj skrypty do generowania certyfikatów na urządzeniu.
  2. Utwórz certyfikat głównego urzędu certyfikacji. Na końcu masz plik certyfikatu głównego urzędu certyfikacji (rootowego) <path>/certs/azure-iot-test-only.root.ca.cert.pem.
  3. Utwórz certyfikaty urzędu certyfikacji usługi Edge. Na końcu masz certyfikat urzędu certyfikacji Edge <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem i jego klucz prywatny <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 innej maszynie, skopiuj je na urządzenie usługi IoT Edge. Użyj dysku USB, usługi, takiej jak Azure Key Vault, lub polecenia takiego jak Bezpieczne kopiowanie plików.

  3. Przenieś pliki do preferowanego katalogu dla certyfikatów i kluczy: /var/aziot/certs dla certyfikatów i /var/aziot/secrets kluczy.

  4. Utwórz certyfikaty i katalogi kluczy i ustaw uprawnienia. Przechowuj certyfikaty i klucze w preferowanym /var/aziot katalogu: /var/aziot/certs dla certyfikatów i /var/aziot/secrets 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 dla 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: /etc/aziot/config.toml. Jeśli używasz usługi IoT Edge dla systemu Linux w systemie Windows, połącz się z maszyną wirtualną Connect-EflowVm EFLOW przy użyciu polecenia cmdlet programu PowerShell.

    Napiwek

    Jeśli plik konfiguracji nie istnieje jeszcze na urządzeniu, użyj /etc/aziot/config.toml.edge.template go jako szablonu, aby go utworzyć.

  2. trust_bundle_cert Znajdź parametr . Usuń komentarz z tego wiersza i podaj identyfikator URI pliku do pliku certyfikatu głównego urzędu certyfikacji na urządzeniu.

  3. Znajdź sekcję [edge_ca] pliku. Usuń komentarz z trzech wierszy w tej sekcji i podaj identyfikatory URI plików certyfikatu i plików kluczy jako wartości dla następujących właściwości:

    • Certyfikat: certyfikat urzędu certyfikacji brzegowego
    • pk: klucz prywatny urzędu certyfikacji urządzenia
  4. Zapisz i zamknij plik.

  5. Zastosuj zmiany.

    sudo iotedge config apply
    

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 kieruje informacje 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.

    Podczas instalowania usługi IoT Edge na urządzeniu uruchamia się automatycznie tylko jeden moduł systemowy: agent usługi IoT Edge. Podczas tworzenia pierwszego wdrożenia urządzenia drugi moduł systemowy i centrum usługi IoT Edge również są uruchamiane. 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 wymaga trasy do obsługi komunikatów z urządzeń podrzędnych, w przeciwnym razie nie będą one przetwarzane. 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ć trasy do obsługi komunikatów przychodzących z urządzeń podrzędnych, wykonaj następujące kroki:

  1. Na 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óre ma być używane jako brama.

  3. Wybierz pozycję Ustaw moduły.

  4. Na stronie Moduły dodaj wszystkie moduły , które chcesz wdrożyć na urządzeniu bramy. W tym artykule koncentrujesz 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 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 umożliwia odfiltrowanie komunikatów 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 wybierz pozycję Przejrzyj i utwórz.

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

Otwieranie portów na urządzeniu bramy

Standardowe urządzenia usługi IoT Edge nie wymagają żadnej łączności przychodzącej z funkcją, ponieważ cała komunikacja z usługą IoT Hub odbywa się za pośrednictwem połączeń wychodzących. Urządzenia bramy są różne, ponieważ muszą odbierać komunikaty z urządzeń podrzędnych. Jeśli zapora znajduje się między urządzeniami podrzędnym a urządzeniem bramy, komunikacja musi być również możliwa 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 protokołów WebSocket i AMQP za pośrednictwem obiektów WebSocket.

Port Protokół
8883 protokół komunikacyjny 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 skonfiguruj urządzenia podrzędne, aby ufały bramie i wysyłały do niej komunikaty. Przejdź do pozycji Uwierzytelnianie urządzenia podrzędnego w usłudze Azure IoT Hub, aby wykonać następne kroki w scenariuszu przezroczystej bramy.