Bagikan melalui


Menyambungkan perangkat Azure IoT Edge untuk membuat hierarki

Berlaku untuk: Tanda centang IoT Edge 1.5 IoT Edge 1.5 Tanda centang IoT Edge 1.4 IoT Edge 1.4

Penting

IoT Edge 1.5 LTS dan IoT Edge 1.4 LTS adalah rilis yang didukung. IoT Edge 1.4 LTS adalah akhir masa pakai pada 12 November 2024. Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Artikel ini menyediakan langkah-langkah untuk membuat koneksi tepercaya antara gateway IoT Edge dan perangkat IoT Edge hilir. Konfigurasi ini juga dikenal sebagai tepi berlapis.

Dalam skenario gateway, perangkat IoT Edge bisa menjadi gateway dan perangkat downstream. Beberapa gateway IoT Edge bisa dilapisi untuk membuat hierarki perangkat. Perangkat hilir (turunan) dapat mengautentikasi dan mengirim atau menerima pesan melalui perangkat gateway (induk) mereka.

Ada dua konfigurasi berbeda untuk perangkat IoT Edge dalam hierarki gateway, dan artikel ini membahas keduanya. Yang pertama adalah perangkat IoT Edge lapisan atas. Saat beberapa perangkat IoT Edge terhubung satu sama lain, perangkat apa pun yang tidak memiliki perangkat induk tetapi terhubung langsung ke IoT Hub dianggap berada di lapisan atas. Perangkat ini bertanggung jawab untuk menangani permintaan dari semua perangkat di bawahnya. Konfigurasi lainnya berlaku untuk perangkat IoT Edge apa pun di lapisan hierarki bawah. Perangkat ini mungkin merupakan gateway untuk perangkat IoT hilir dan IoT Edge lainnya, tetapi juga perlu merutekan komunikasi apa pun melalui perangkat induk mereka sendiri.

Beberapa arsitektur jaringan mengharuskan hanya perangkat IoT Edge teratas dalam hierarki yang bisa tersambung ke cloud. Dalam konfigurasi ini, semua perangkat IoT Edge di lapisan hierarki yang lebih rendah hanya dapat berkomunikasi dengan perangkat gateway (induk) dan perangkat hilir (turunan).

Semua langkah dalam artikel ini dibangun pada Mengonfigurasi perangkat IoT Edge untuk bertindak sebagai gateway transparan, yang menyiapkan perangkat IoT Edge menjadi gateway untuk perangkat IoT hilir. Langkah-langkah dasar yang sama berlaku untuk semua skenario gateway:

  • Autentikasi: Membuat identitas IoT Hub untuk semua perangkat dalam hierarki gateway.
  • Otorisasi: Siapkan hubungan induk/anak di IoT Hub untuk mengotorisasi perangkat hilir agar tersambung ke perangkat induk mereka seperti yang akan mereka sambungkan ke IoT Hub.
  • Penemuan gateway: Pastikan bahwa perangkat hilir dapat menemukan perangkat induknya di jaringan lokal.
  • Koneksi aman: Membuat koneksi aman dengan sertifikat tepercaya yang merupakan bagian dari rantai yang sama.

Prasyarat

  • Hub IoT gratis atau standar.
  • Setidaknya dua perangkat IoT Edge, satu untuk menjadi perangkat lapisan atas dan satu atau beberapa perangkat lapisan bawah. Jika Anda tidak memiliki perangkat IoT Edge yang tersedia, Anda Bisa Menjalankan Azure IoT Edge di komputer virtual Ubuntu.
  • Jika Anda menggunakan Azure CLI untuk membuat dan mengelola perangkat, instal ekstensi Azure IoT.

Tip

Artikel ini menyediakan langkah-langkah dan opsi mendetail untuk membantu Anda membuat hierarki gateway yang tepat untuk skenario Anda. Untuk tutorial terpandu, lihat Membuat hierarki perangkat IoT Edge menggunakan gateway.

Membuat hierarki gateway

Anda membuat hierarki gateway IoT Edge dengan menentukan hubungan induk/anak untuk perangkat IoT Edge dalam skenario. Anda bisa mengatur perangkat induk saat membuat identitas perangkat baru, atau Anda Bisa mengelola induk dan anak dari identitas perangkat yang ada.

Langkah menyiapkan hubungan induk/anak mengotorisasi perangkat hilir untuk terhubung ke perangkat induk mereka seperti yang akan mereka sambungkan ke IoT Hub.

Hanya perangkat IoT Edge yang Bisa menjadi perangkat induk, tetapi perangkat IoT Edge dan perangkat IoT bisa menjadi anak. Induk bisa memiliki banyak anak, tetapi seorang anak hanya bisa memiliki satu induk. Hierarki gateway dibuat dengan menautkan set induk/anak bersama-sama sehingga anak dari satu perangkat adalah induk dari perangkat lain.

Secara default, induk dapat memiliki hingga 100 turunan. Anda dapat mengubah batas ini dengan mengatur variabel lingkungan MaxConnectedClients dalam modul edgeHub perangkat induk.

Di portal Azure, Anda bisa mengelola hubungan induk/anak saat membuat identitas perangkat baru, atau dengan mengedit perangkat yang sudah ada.

Saat Anda membuat perangkat IoT Edge baru, Anda memiliki opsi untuk memilih perangkat induk dan anak dari daftar perangkat IoT Edge yang ada di hub tersebut.

  1. Di portal Azure, navigasi ke hub IoT Anda.
  2. Pilih Perangkat di bawah menu Manajemen perangkat .
  3. Pilih Tambahkan perangkat lalu centang kotak Perangkat IoT Edge.
  4. Seiring dengan pengaturan ID perangkat dan autentikasi, Anda bisa Mengatur perangkat induk atau Memilih perangkat anak.
  5. Pilih perangkat atau perangkat yang Anda inginkan sebagai induk atau anak.

Anda juga bisa membuat atau mengelola hubungan induk/anak untuk perangkat yang ada.

  1. Di portal Azure, navigasi ke hub IoT Anda.
  2. Pilih Perangkat di menu Manajemen perangkat .
  3. Pilih perangkat IoT Edge yang ingin Anda kelola dari daftar.
  4. Pilih ikon Atur gigi perangkat induk atau Kelola perangkat turunan.
  5. Tambahkan atau hapus perangkat induk atau anak apa pun.

Catatan

Jika Anda ingin membuat hubungan induk-anak secara terprogram, Anda bisa menggunakan C#, Java, atau Node.js IoT Hub Service SDK.

Berikut adalah contoh penetapan perangkat anak menggunakan C# SDK. Tugas ini RegistryManager_AddAndRemoveDeviceWithScope() menunjukkan cara membuat hierarki tiga lapisan secara terprogram. Perangkat IoT Edge berada di lapisan satu, sebagai induk. Perangkat IoT Edge lainnya berada di lapisan dua, berfungsi sebagai anak dan induk. Terakhir, perangkat IoT berada di lapisan tiga, sebagai perangkat anak lapisan terendah.

Membuat sertifikat

Rantai sertifikat yang konsisten harus diinstal di seluruh perangkat dalam hierarki gateway yang sama untuk membuat komunikasi yang aman di antara sertifikat. Setiap perangkat dalam hierarki, baik perangkat IoT Edge atau perangkat hilir IoT, memerlukan salinan sertifikat OS akar yang sama. Setiap perangkat IoT Edge dalam hierarki kemudian menggunakan sertifikat CA akar tersebut sebagai akar untuk sertifikat CA Edge-nya.

Dengan penyiapan ini, setiap perangkat IoT Edge hilir dapat memverifikasi identitas induknya dengan memverifikasi bahwa edgeHub yang mereka sambungkan memiliki sertifikat server yang ditandatangani oleh sertifikat CA akar bersama.

Ilustrasi rantai sertifikat yang dikeluarkan oleh CA akar di gateway dan perangkat hilir

Untuk informasi selengkapnya tentang persyaratan sertifikat IoT Edge, lihat Memahami cara Azure IoT Edge menggunakan sertifikat.

  1. Buat atau minta sertifikat berikut:

    • Sertifikat CA akar, yang merupakan sertifikat bersama paling atas untuk semua perangkat dalam hierarki gateway tertentu. Sertifikat ini terinstal pada semua perangkat.
    • Setiap sertifikat perantara yang ingin Anda sertakan dalam rantai sertifikat akar.
    • Sertifikat OS Edge dan kunci privatnya, dihasilkan oleh sertifikat akar dan menengah. Anda memerlukan satu sertifikat EDGE CA unik untuk setiap perangkat IoT Edge dalam hierarki gateway.

    Anda bisa menggunakan otoritas sertifikat yang ditandatangani sendiri atau membelinya dari otoritas sertifikat komersial tepercaya seperti Baltimore, Verisign, Digicert, atau GlobalSign.

  2. Jika Anda tidak memiliki sertifikat Anda sendiri untuk digunakan untuk pengujian, buat satu set sertifikat akar dan menengah, lalu buat sertifikat Edge CA untuk setiap perangkat. Dalam artikel ini, kita akan menggunakan sertifikat pengujian yang dihasilkan menggunakan sertifikat CA pengujian untuk sampel dan tutorial. Misalnya, perintah berikut membuat sertifikat OS akar, sertifikat perangkat induk, dan sertifikat perangkat anak.

    # !!! 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"
    

    Peringatan

    Jangan gunakan sertifikat yang dibuat oleh skrip pengujian untuk produksi. Mereka berisi kata sandi yang dikodekan secara permanen dan kedaluwarsa secara default setelah 30 hari. Sertifikat CA pengujian disediakan untuk tujuan demonstrasi untuk membantu Anda memahami Sertifikat CA. Gunakan praktik terbaik keamanan Anda sendiri untuk pembuatan sertifikasi dan manajemen seumur hidup dalam produksi.

    Untuk informasi selengkapnya tentang membuat sertifikat pengujian, lihat membuat sertifikat demo untuk menguji fitur perangkat IoT Edge.

  3. Anda harus mentransfer sertifikat dan kunci ke setiap perangkat. Anda dapat menggunakan drive USB, layanan seperti Azure Key Vault, atau dengan fungsi seperti Salinan file aman. Pilih salah satu metode ini yang paling sesuai dengan skenario Anda. Salin file ke direktori pilihan untuk sertifikat dan kunci. Gunakan /var/aziot/certs untuk sertifikat dan /var/aziot/secrets untuk kunci.

Untuk informasi selengkapnya tentang menginstal sertifikat di perangkat, lihat Mengelola sertifikat di perangkat IoT Edge.

Mengonfigurasi perangkat induk

Untuk mengonfigurasi perangkat induk Anda, buka shell perintah lokal atau jarak jauh.

Untuk mengaktifkan koneksi aman, setiap perangkat induk IoT Edge dalam skenario gateway perlu dikonfigurasi dengan sertifikat CA Edge unik dan salinan sertifikat OS akar yang dibagikan oleh semua perangkat dalam hierarki gateway.

  1. Periksa sertifikat Anda memenuhi persyaratan format.

  2. Transfer sertifikat OS akar, sertifikat OS Edge induk, dan kunci privat induk ke perangkat induk.

  3. Salin sertifikat dan kunci ke direktori yang benar. Direktori pilihan untuk sertifikat perangkat adalah /var/aziot/certs untuk sertifikat dan /var/aziot/secrets untuk kunci.

    ### 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. Ubah kepemilikan dan izin sertifikat dan kunci.

    # 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
    

    Output daftar dengan kepemilikan dan izin yang benar mirip dengan yang berikut ini:

    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. Instal sertifikat OS akar pada perangkat IoT Edge induk dengan memperbarui penyimpanan sertifikat pada perangkat menggunakan perintah khusus platform.

    # 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
    

    Untuk informasi selengkapnya tentang penggunaan update-ca-trust di EFLOW, lihat Manajemen sertifikat CBL-Mariner SSL CA.

Perintah melaporkan satu sertifikat ditambahkan ke /etc/ssl/certs.

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

Memperbarui file konfigurasi induk

Anda harus sudah menginstal IoT Edge di perangkat Anda. Jika tidak, ikuti instruksi untuk Memprovisikan satu perangkat IoT Edge Linux secara manual.

  1. Verifikasi bahwa /etc/aziot/config.toml file konfigurasi ada pada perangkat induk.

    Jika file konfigurasi tidak ada di perangkat Anda, gunakan perintah berikut untuk membuatnya berdasarkan file templat:

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

    Anda juga dapat menggunakan file templat sebagai referensi untuk menambahkan parameter konfigurasi di bagian ini.

  2. Buka file konfigurasi IoT Edge menggunakan editor. Misalnya, gunakan nano editor untuk membuka /etc/aziot/config.toml file.

    sudo nano /etc/aziot/config.toml
    
  3. Temukan parameter nama host atau tambahkan ke awal file konfigurasi. Perbarui nilai menjadi nama domain yang sepenuhnya memenuhi syarat (FQDN) atau alamat IP perangkat induk IoT Edge. Contohnya:

    hostname = "10.0.0.4"
    

    Untuk mengaktifkan penemuan gateway, setiap perangkat gateway IoT Edge (induk) perlu menentukan parameter nama host yang akan digunakan perangkat anaknya untuk menemukannya di jaringan lokal. Setiap perangkat IoT Edge hilir perlu menentukan parameter parent_hostname untuk mengidentifikasi induknya. Dalam skenario hierarkis di mana satu perangkat IoT Edge adalah perangkat induk dan anak, perangkat tersebut memerlukan kedua parameter.

    Parameter nama host dan trust_bundle_cert harus berada di awal file konfigurasi sebelum bagian apa pun. Menambahkan parameter sebelum bagian yang ditentukan, memastikan parameter diterapkan dengan benar.

    Gunakan nama host yang lebih pendek dari 64 karakter, yang merupakan batas karakter untuk nama umum sertifikat server.

    Konsisten dengan pola nama host di seluruh hierarki gateway. Gunakan FQDN atau alamat IP, tetapi tidak keduanya. FQDN atau alamat IP diperlukan untuk menyambungkan perangkat hilir.

    Atur nama host sebelum kontainer edgeHub dibuat. Jika edgeHub berjalan, mengubah nama host dalam file konfigurasi tidak akan berlaku sampai kontainer dibuat ulang. Untuk informasi selengkapnya tentang cara memverifikasi nama host diterapkan, lihat bagian verifikasi konfigurasi induk.

  4. Temukan parameter sertifikasi bundel Kepercayaan atau tambahkan ke awal file konfigurasi.

    trust_bundle_cert Perbarui parameter dengan URI file ke sertifikat OS akar di perangkat Anda. Contohnya:

    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
  5. Temukan atau tambahkan bagian sertifikat EDGE CA di file konfigurasi. Perbarui parameter sertifikat cert dan kunci pk privat dengan jalur URI file untuk sertifikat rantai penuh dan file kunci pada perangkat IoT Edge induk. IoT Edge mengharuskan sertifikat dan kunci privat berada dalam format email yang ditingkatkan privasi (PEM) berbasis teks. Contohnya:

    [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. Verifikasi perangkat IoT Edge Anda menggunakan versi agen IoT Edge yang benar saat dimulai. Temukan bagian Agen Edge Default dan atur nilai gambar untuk IoT Edge ke versi 1.5. Contohnya:

    [agent]
    name = "edgeAgent"
    type = "docker"
    
    [agent.config]
    image = "mcr.microsoft.com/azureiotedge-agent:1.5"
    
  7. Awal file konfigurasi induk Anda akan terlihat mirip dengan contoh berikut.

    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. Simpan dan tutup config.toml file konfigurasi. Misalnya jika Anda menggunakan editor nano, pilih Ctrl+O - Write Out, Enter, dan Ctrl+X - Exit.

  9. Jika Anda telah menggunakan sertifikat lain untuk IoT Edge sebelumnya, hapus file di dua direktori berikut untuk memastikan bahwa sertifikat baru Anda diterapkan:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys
  10. Terapkan perubahan Anda.

    sudo iotedge config apply
    
  11. Periksa kesalahan dalam konfigurasi.

    sudo iotedge check --verbose
    

    Catatan

    Pada perangkat yang baru disediakan, Anda mungkin melihat kesalahan yang terkait dengan IoT Edge Hub:

    × kesiapan produksi: Direktori penyimpanan Edge Hub dipertahankan pada sistem file host - Kesalahan

    Tidak dapat memeriksa status kontainer edgeHub saat ini

    Kesalahan ini diharapkan pada perangkat yang baru disediakan karena modul IoT Edge Hub tidak berjalan. Untuk mengatasi kesalahan, di IoT Hub, atur modul untuk perangkat dan buat penyebaran. Membuat penyebaran untuk perangkat memulai modul pada perangkat termasuk modul IoT Edge Hub.

Memverifikasi konfigurasi induk

Nama host harus merupakan nama domain yang memenuhi syarat (FQDN) atau alamat IP perangkat IoT Edge karena IoT Edge menggunakan nilai ini di sertifikat server saat perangkat hilir tersambung. Nilai harus cocok atau Anda akan mendapatkan kesalahan ketidakcocokan alamat IP.

Untuk memverifikasi nama host, Anda perlu memeriksa variabel lingkungan kontainer edgeHub .

  1. Cantumkan kontainer IoT Edge yang sedang berjalan.

    iotedge list
    

    Verifikasi kontainer edgeAgent dan edgeHub sedang berjalan. Output perintah harus mirip dengan contoh berikut.

    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. Periksa kontainer edgeHub.

    sudo docker inspect edgeHub
    
  3. Dalam output, temukan parameter EdgeDeviceHostName di bagian Env .

    "EdgeDeviceHostName=10.0.0.4"
    
  4. Verifikasi nilai parameter EdgeDeviceHostName cocok dengan config.toml pengaturan nama host. Jika tidak cocok, kontainer edgeHub berjalan saat Anda memodifikasi dan menerapkan konfigurasi. Untuk memperbarui EdgeDeviceHostName, hapus kontainer edgeAgent .

    sudo docker rm -f edgeAgent
    

    Kontainer edgeAgent dan edgeHub dibuat ulang dan dimulai dalam beberapa menit. Setelah kontainer edgeHub berjalan, periksa kontainer dan verifikasi parameter EdgeDeviceHostName cocok dengan file konfigurasi.

Mengonfigurasi perangkat hilir

Untuk mengonfigurasi perangkat hilir Anda, buka shell perintah lokal atau jarak jauh.

Untuk mengaktifkan koneksi aman, setiap perangkat hilir IoT Edge dalam skenario gateway perlu dikonfigurasi dengan sertifikat EDGE CA unik dan salinan sertifikat OS akar yang dibagikan oleh semua perangkat dalam hierarki gateway.

  1. Periksa sertifikat Anda memenuhi persyaratan format.

  2. Transfer sertifikat OS akar, sertifikat CA Edge anak, dan kunci privat anak ke perangkat hilir.

  3. Salin sertifikat dan kunci ke direktori yang benar. Direktori pilihan untuk sertifikat perangkat adalah /var/aziot/certs untuk sertifikat dan /var/aziot/secrets untuk kunci.

    ### 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. Ubah kepemilikan dan izin sertifikat dan kunci.

    # 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. Instal sertifikat OS akar pada perangkat IoT Edge hilir dengan memperbarui penyimpanan sertifikat pada perangkat menggunakan perintah khusus platform.

    # 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
    

    Untuk informasi selengkapnya tentang penggunaan update-ca-trust di EFLOW, lihat Manajemen sertifikat CBL-Mariner SSL CA.

Perintah melaporkan satu sertifikat ditambahkan ke /etc/ssl/certs.

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

Memperbarui file konfigurasi hilir

Anda harus sudah menginstal IoT Edge di perangkat Anda. Jika tidak, ikuti instruksi untuk Memprovisikan satu perangkat IoT Edge Linux secara manual.

  1. Verifikasi bahwa /etc/aziot/config.toml file konfigurasi ada di perangkat hilir.

    Jika file konfigurasi tidak ada di perangkat Anda, gunakan perintah berikut untuk membuatnya berdasarkan file templat:

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

    Anda juga dapat menggunakan file templat sebagai referensi untuk menambahkan parameter konfigurasi di bagian ini.

  2. Buka file konfigurasi IoT Edge menggunakan editor. Misalnya, gunakan nano editor untuk membuka /etc/aziot/config.toml file.

    sudo nano /etc/aziot/config.toml
    
  3. Temukan parameter parent_hostname atau tambahkan ke awal file konfigurasi Setiap perangkat IoT Edge hilir perlu menentukan parameter parent_hostname untuk mengidentifikasi induknya. parent_hostname Perbarui parameter menjadi FQDN atau alamat IP perangkat induk, yang cocok dengan apa pun yang disediakan sebagai nama host dalam file konfigurasi perangkat induk. Contohnya:

    parent_hostname = "10.0.0.4"
    
  4. Temukan parameter sertifikasi bundel Kepercayaan atau tambahkan ke awal file konfigurasi.

    trust_bundle_cert Perbarui parameter dengan URI file ke sertifikat OS akar di perangkat Anda. Contohnya:

    trust_bundle_cert = "file:///var/aziot/certs/azure-iot-test-only.root.ca.cert.pem"
    
  5. Temukan atau tambahkan bagian sertifikat EDGE CA di file konfigurasi. Perbarui parameter sertifikat cert dan kunci pk privat dengan jalur URI file untuk sertifikat rantai penuh dan file kunci pada perangkat hilir IoT Edge. IoT Edge mengharuskan sertifikat dan kunci privat berada dalam format email yang ditingkatkan privasi (PEM) berbasis teks. Contohnya:

    [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. Verifikasi perangkat IoT Edge Anda menggunakan versi agen IoT Edge yang benar saat dimulai. Temukan bagian Agen Edge Default dan atur nilai gambar untuk IoT Edge ke versi 1.5. Contohnya:

    [agent]
    name = "edgeAgent"
    type = "docker"
    
    [agent.config]
    image: "mcr.microsoft.com/azureiotedge-agent:1.5"
    
  7. Awal file konfigurasi hilir Anda akan terlihat mirip dengan contoh berikut.

    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. Simpan dan tutup config.toml file konfigurasi. Misalnya jika Anda menggunakan editor nano, pilih Ctrl+O - Write Out, Enter, dan Ctrl+X - Exit.

  9. Jika Anda telah menggunakan sertifikat lain untuk IoT Edge sebelumnya, hapus file di dua direktori berikut untuk memastikan bahwa sertifikat baru Anda diterapkan:

    • /var/lib/aziot/certd/certs
    • /var/lib/aziot/keyd/keys
  10. Terapkan perubahan Anda.

    sudo iotedge config apply
    
  11. Periksa kesalahan dalam konfigurasi.

    sudo iotedge check --verbose
    

    Tip

    Alat pemeriksaan IoT Edge menggunakan kontainer untuk melakukan beberapa pemeriksaan diagnostik. Jika Anda ingin menggunakan alat ini di perangkat IoT Edge downstream, pastikan perangkat bisa mengakses mcr.microsoft.com/azureiotedge-diagnostics:latest, atau memiliki gambar kontainer di registri kontainer privat Anda.

    Catatan

    Pada perangkat yang baru disediakan, Anda mungkin melihat kesalahan yang terkait dengan IoT Edge Hub:

    × kesiapan produksi: Direktori penyimpanan Edge Hub dipertahankan pada sistem file host - Kesalahan

    Tidak dapat memeriksa status kontainer edgeHub saat ini

    Kesalahan ini diharapkan pada perangkat yang baru disediakan karena modul IoT Edge Hub tidak berjalan. Untuk mengatasi kesalahan, di IoT Hub, atur modul untuk perangkat dan buat penyebaran. Membuat penyebaran untuk perangkat memulai modul pada perangkat termasuk modul IoT Edge Hub.

Jaringan mengisolasi perangkat downstream

Langkah-langkah sejauh ini dalam artikel ini menyiapkan perangkat IoT Edge sebagai perangkat downstream atau gateway, dan membuat koneksi tepercaya di antaranya. Perangkat gateway menangani interaksi antara perangkat downstream dan IoT Hub, termasuk autentikasi dan perutean pesan. Modul yang disebarkan ke perangkat IoT Edge downstream masih bisa membuat koneksinya sendiri ke layanan cloud.

Beberapa arsitektur jaringan, seperti yang mengikuti standar ISA-95, berusaha meminimalkan jumlah koneksi internet. Dalam skenario tersebut, Anda bisa mengonfigurasi perangkat IoT Edge downstream tanpa konektivitas internet langsung. Selain merutekan komunikasi IoT Hub melalui perangkat gateway, perangkat IoT Edge downstream bisa mengandalkan perangkat gateway untuk semua koneksi cloud.

Konfigurasi jaringan ini hanya mengharuskan perangkat IoT Edge di lapisan atas hierarki gateway memiliki koneksi langsung ke cloud. Perangkat IoT Edge di lapisan bawah hanya bisa berkomunikasi dengan perangkat induk atau perangkat anak apa pun. Modul khusus pada perangkat gateway mengaktifkan skenario ini, termasuk:

  • Modul proksi API diperlukan pada gateway IoT Edge yang memiliki perangkat IoT Edge lain di bawahnya. Itu berarti harus pada setiap lapisan hierarki gateway kecuali lapisan bawah. Modul ini menggunakan proksi terbalik nginx untuk merutekan data HTTP melalui lapisan jaringan melalui satu port. Ini sangat dapat dikonfigurasi melalui variabel kembar modul dan lingkungannya, sehingga dapat disesuaikan agar sesuai dengan persyaratan skenario gateway Anda.

  • Modul registri Docker bisa disebarkan pada gateway IoT Edge di lapisan atas hierarki gateway. Modul ini bertanggung jawab untuk mengambil dan membuat cache gambar kontainer atas nama semua perangkat IoT Edge di lapisan bawah. Alternatif untuk menyebarkan modul ini di lapisan atas adalah menggunakan registri lokal, atau memuat gambar kontainer secara manual ke perangkat dan mengatur kebijakan tarik modul ke tidak pernah.

  • Azure Blob Storage di IoT Edge bisa disebarkan pada gateway IoT Edge di lapisan atas hierarki gateway. Modul ini bertanggung jawab untuk mengunggah blob atas nama semua perangkat IoT Edge di lapisan bawah. Kemampuan untuk mengunggah blob juga memungkinkan fungsionalitas pemecahan masalah yang berguna untuk perangkat IoT Edge di lapisan bawah, seperti pengunggahan log modul dan upload paket dukungan.

Konfigurasi jaringan

Untuk setiap perangkat gateway di lapisan atas, operator jaringan perlu:

  • Menyediakan alamat IP statis atau nama domain yang sepenuhnya memenuhi syarat (FQDN).

  • Mengotorisasi komunikasi keluar dari alamat IP ini ke nama host Azure IoT Hub Anda melalui port 443 (HTTPS) dan 5671 (AMQP).

  • Mengotorisasi komunikasi keluar dari alamat IP ini ke nama host Azure Container Registry Anda melalui port 443 (HTTPS).

    Modul proksi API hanya bisa menangani koneksi ke satu registri kontainer pada satu waktu. Sebaiknya miliki semua gambar kontainer, termasuk gambar publik yang disediakan oleh Microsoft Container Registry (mcr.microsoft.com), yang disimpan dalam registri kontainer privat Anda.

Untuk setiap perangkat gateway di lapisan bawah, operator jaringan perlu:

  • Menyediakan alamat IP statik.
  • Mengotorisasi komunikasi keluar dari alamat IP ini ke alamat IP gateway induk melalui port 443 (HTTPS) dan 5671 (AMQP).

Menyebarkan modul ke perangkat lapisan atas

Perangkat IoT Edge di lapisan atas hierarki gateway memiliki serangkaian modul yang diperlukan yang harus disebarkan ke perangkat, selain modul beban kerja apa pun yang mungkin Anda jalankan di perangkat.

Modul proksi API dirancang untuk disesuaikan untuk menangani skenario gateway yang paling umum. Artikel ini menyediakan contoh untuk menyiapkan modul dalam konfigurasi dasar. Lihat Mengonfigurasi modul proksi API untuk skenario hierarki gateway Anda untuk informasi yang lebih mendetail dan contohnya.

  1. Di portal Azure, navigasi ke hub IoT Anda.

  2. Pilih Perangkat di bawah menu Manajemen perangkat .

  3. Pilih perangkat IoT Edge lapisan atas yang Anda konfigurasi dari daftar.

  4. Pilih Set modul.

  5. Di bagian modul IoT Edge, pilih Tambahkan lalu pilih Modul IoT Edge.

  6. Perbarui pengaturan modul berikut:

    Pengaturan Nilai
    Nama Modul IoT IoTEdgeAPIProxy
    URI gambar mcr.microsoft.com/azureiotedge-api-proxy:latest
    Memulai ulang kebijakan always
    Status yang diinginkan dijalankan

    Jika Anda ingin menggunakan versi atau arsitektur modul proksi API yang berbeda, temukan gambar yang tersedia di Registri Artefak Microsoft.

    1. Di tab Variabel lingkungan , tambahkan variabel bernama NGINX_DEFAULT_PORT jenis Teks dengan nilai 443.

    2. Di tab Opsi buat Kontainer, perbarui pengikatan port ke port referensi 443.

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

    Perubahan ini mengonfigurasi modul proksi API untuk mendengarkan port 443. Untuk mencegah tabrakan pengikatan port, Anda perlu mengonfigurasi modul edgeHub untuk tidak mendengarkan port 443. Sebagai gantinya, modul proksi API akan merutekan lalu lintas edgeHub apa pun di port 443.

  7. Pilih Tambahkan untuk menambahkan modul ke penyebaran.

  8. Pilih Pengaturan Runtime dan temukan opsi Buat Kontainer modul edgeHub. Hapus pengikatan port untuk port 443, meninggalkan pengikatan untuk port 5671 dan 8883.

    {
      "HostConfig": {
        "PortBindings": {
          "5671/tcp": [
            {
              "HostPort": "5671"
            }
          ],
          "8883/tcp": [
            {
              "HostPort": "8883"
            }
          ]
        }
      }
    }
    
  9. Pilih Terapkan untuk menyimpan perubahan Anda ke pengaturan runtime.

  10. Berikan nilai berikut untuk menambahkan modul registri Docker ke penyebaran Anda.

    1. Di bagian modul IoT Edge, pilih Tambahkan lalu pilih Modul IoT Edge.

      Pengaturan Nilai
      Nama Modul IoT registry
      URI gambar registry:latest
      Memulai ulang kebijakan always
      Status yang diinginkan running
    2. Di tab Variabel lingkungan , tambahkan variabel berikut:

      Nama Jenis Nilai
      REGISTRY_PROXY_REMOTEURL Teks URL untuk registri kontainer tempat Anda ingin modul registri ini dipetakan. Contohnya,https://myregistry.azurecr. Modul registri hanya bisa memetakan ke satu registri kontainer, jadi kami sarankan untuk memiliki semua gambar kontainer dalam satu registri kontainer privat.
      REGISTRY_PROXY_USERNAME Teks Nama pengguna untuk mengautentikasi ke registri kontainer.
      REGISTRY_PROXY_PASSWORD Teks Kata sandi untuk mengautentikasi ke registri kontainer.
    3. Di tab Opsi pembuatan kontainer, perbarui pengikatan port ke port referensi 5000.

    {
      "HostConfig": {
        "PortBindings": {
          "5000/tcp": [
            {
              "HostPort": "5000"
            }
          ]
        }
      }
    }
    
  11. Pilih Tambahkan untuk menambahkan modul ke penyebaran.

  12. Pilih Berikutnya: Rute untuk masuk ke langkah berikutnya.

  13. Untuk mengaktifkan pesan perangkat ke cloud dari perangkat downstream untuk mencapai IoT Hub, sertakan rute yang meneruskan semua pesan ke IoT Hub. Contohnya:

    1. Nama: Route
    2. Nilai: FROM /messages/* INTO $upstream
  14. Pilih Tinjau + buat untuk masuk ke langkah terakhir.

  15. Pilih Buat untuk menyebarkan ke perangkat Anda.

Menyebarkan modul ke perangkat lapisan bawah

Perangkat IoT Edge di lapisan bawah hierarki gateway memiliki satu modul yang diperlukan yang harus disebarkan ke perangkat, selain modul beban kerja apa pun yang mungkin Anda jalankan di perangkat.

Penarikan gambar kontainer rute

Sebelum membahas modul proksi yang diperlukan untuk perangkat IoT Edge dalam hierarki gateway, penting untuk memahami bagaimana perangkat IoT Edge di lapisan bawah mendapatkan gambar modul.

Jika perangkat lapisan bawah Anda tidak bisa tersambung ke cloud, tetapi Anda ingin perangkat menarik gambar modul seperti biasa, perangkat lapisan atas hierarki gateway harus dikonfigurasi untuk menangani permintaan ini. Perangkat lapisan atas perlu menjalankan modul registri Dokter yang dipetakan ke registri kontainer Anda. Kemudian, konfigurasikan modul proksi API untuk merutekan permintaan kontainer ke dalamnya. Detail tersebut dibahas di bagian sebelumnya dari artikel ini. Dalam konfigurasi ini, perangkat lapisan bawah tidak boleh menunjuk ke registri kontainer cloud, tetapi ke registri yang berjalan di lapisan atas.

Misalnya, alih-alih memanggil mcr.microsoft.com/azureiotedge-api-proxy:1.1, perangkat lapisan bawah harus memanggil $upstream:443/azureiotedge-api-proxy:1.1.

Parameter $upstream menunjuk ke induk perangkat lapisan bawah, sehingga permintaan akan merutekan melalui semua lapisan sampai mencapai lapisan atas yang memiliki permintaan kontainer perutean lingkungan proksi ke modul registri. Port :443 dalam contoh ini harus diganti dengan port mana pun yang didengarkan modul proksi API di perangkat induk.

Modul proksi API hanya bisa merutekan ke satu modul registri, dan setiap modul registri hanya bisa memetakan ke satu registri kontainer. Oleh karena itu, setiap gambar yang perlu ditarik oleh perangkat lapisan bawah harus disimpan dalam satu registri kontainer.

Jika Anda tidak ingin perangkat lapisan bawah membuat permintaan pull modul melalui hierarki gateway, opsi lain adalah mengelola solusi registri lokal. Atau, dorong gambar modul ke perangkat sebelum membuat penyebaran dan kemudian mengatur imagePullPolicy ke tidak pernah.

Bootstrap agen IoT Edge

Agen IoT Edge adalah komponen runtime pertama yang dimulai di perangkat IoT Edge mana pun. Anda perlu memastikan bahwa perangkat IoT Edge downstream bisa mengakses gambar modul edgeAgent saat perangkat memulai, dan kemudian perangkat bisa mengakses penyebaran dan memulai sisa gambar modul.

Saat Anda masuk ke file konfigurasi di perangkat IoT Edge untuk memberikan informasi autentikasi, sertifikat, dan nama host induk, juga memperbarui gambar kontainer edgeAgent.

Jika perangkat gateway tingkat atas dikonfigurasi untuk menangani permintaan gambar kontainer, ganti mcr.microsoft.com dengan nama host induk dan port mendengarkan proksi API. Dalam manifes penyebaran, Anda bisa menggunakan $upstream sebagai pintasan, tetapi yang memerlukan modul edgeHub untuk menangani perutean dan modul tersebut belum dimulai pada saat ini. Contohnya:

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

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

Jika Anda menggunakan registri kontainer lokal, atau menyediakan gambar kontainer secara manual di perangkat, perbarui file konfigurasi yang sesuai.

Mengonfigurasi runtime dan menyebarkan modul proksi

Modul proksi API diperlukan untuk merutekan semua komunikasi antara cloud dan perangkat IoT Edge downstream. Perangkat IoT Edge di lapisan bawah hierarki, tanpa perangkat IoT Edge downstream, tidak memerlukan modul ini.

Modul proksi API dirancang untuk disesuaikan untuk menangani skenario gateway yang paling umum. Artikel ini secara singkat membahas langkah-langkah untuk menyiapkan modul dalam konfigurasi dasar. Lihat Mengonfigurasi modul proksi API untuk skenario hierarki gateway Anda untuk informasi yang lebih mendetail dan contohnya.

  1. Di portal Azure, navigasi ke hub IoT Anda.

  2. Pilih Perangkat di bawah menu Manajemen perangkat .

  3. Pilih perangkat IoT Edge lapisan bawah yang Anda konfigurasi dari daftar.

  4. Pilih Set modul.

  5. Di bagian modul IoT Edge, pilih Tambahkan lalu pilih Modul IoT Edge.

  6. Perbarui pengaturan modul berikut:

    Pengaturan Nilai
    Nama Modul IoT IoTEdgeAPIProxy
    URI gambar mcr.microsoft.com/azureiotedge-api-proxy:latest
    Memulai ulang kebijakan always
    Status yang diinginkan running

    Jika Anda ingin menggunakan versi atau arsitektur modul proksi API yang berbeda, temukan gambar yang tersedia di Registri Artefak Microsoft.

    1. Di tab Variabel lingkungan , tambahkan variabel bernama NGINX_DEFAULT_PORT jenis Teks dengan nilai 443.

    2. Di tab Opsi buat Kontainer, perbarui pengikatan port ke port referensi 443.

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

    Perubahan ini mengonfigurasi modul proksi API untuk mendengarkan port 443. Untuk mencegah tabrakan pengikatan port, Anda perlu mengonfigurasi modul edgeHub untuk tidak mendengarkan port 443. Sebagai gantinya, modul proksi API akan merutekan lalu lintas edgeHub apa pun di port 443.

  7. Pilih Pengaturan Runtime.

  8. Perbarui pengaturan modul edgeHub:

    1. Di bidang Gambar, ganti mcr.microsoft.com dengan $upstream:443.
    2. Di bidang Opsi buat, hapus pengikatan port untuk port 443, meninggalkan pengikatan untuk port 5671 dan 8883.
    {
      "HostConfig": {
        "PortBindings": {
          "5671/tcp": [
            {
              "HostPort": "5671"
            }
          ],
          "8883/tcp": [
            {
              "HostPort": "8883"
            }
          ]
        }
      }
    }
    
  9. Perbarui pengaturan modul edgeAgent:

    1. Di bidang Gambar, ganti mcr.microsoft.com dengan $upstream:443.
  10. Pilih Terapkan untuk menyimpan perubahan Anda ke pengaturan runtime.

  11. Pilih Berikutnya: Rute untuk masuk ke langkah berikutnya.

  12. Untuk mengaktifkan pesan perangkat ke cloud dari perangkat downstream untuk mencapai IoT Hub, sertakan rute yang meneruskan semua pesan ke $upstream. Parameter upstram menunjuk ke perangkat induk dalam kasus perangkat lapisan bawah. Contohnya:

    1. Nama: Route
    2. Nilai: FROM /messages/* INTO $upstream
  13. Pilih Tinjau + buat untuk masuk ke langkah terakhir.

  14. Pilih Buat untuk menyebarkan ke perangkat Anda.

Memverifikasi konektivitas dari anak ke induk

  1. Verifikasi koneksi TLS/SSL dari anak ke induk dengan menjalankan perintah berikut openssl pada perangkat hilir. Ganti <parent hostname> dengan FQDN atau alamat IP induk.

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

    Perintah harus menegaskan validasi rantai sertifikat induk yang berhasil mirip dengan contoh berikut:

    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
    

    Pesan "Tidak dapat menggunakan SSL_get_servername" dapat diabaikan.

    Nilai depth=0 CN = harus cocok dengan parameter nama host yang ditentukan dalam file konfigurasi induk config.toml .

    Jika perintah habis, mungkin ada port yang diblokir antara anak dan perangkat induk. Tinjau konfigurasi dan pengaturan jaringan untuk perangkat.

    Peringatan

    Tidak menggunakan sertifikat rantai penuh di bagian gateway [edge_ca] menghasilkan kesalahan validasi sertifikat dari perangkat hilir. Misalnya, perintah di openssl s_client ... atas akan menghasilkan:

    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
    

    Masalah yang sama terjadi untuk perangkat berkemampuan TLS yang terhubung ke perangkat IoT Edge hilir jika sertifikat perangkat rantai penuh tidak digunakan dan dikonfigurasi pada perangkat hilir.

Mengintegrasikan Pertahanan Microsoft untuk IoT dengan gateway IoT Edge

Perangkat hilir dapat digunakan untuk mengintegrasikan agen mikro Pertahanan Microsoft untuk IoT dengan gateway IoT Edge menggunakan proksi perangkat hilir.

Pelajari selengkapnya tentang agen mikro Defender for IoT.

Untuk mengintegrasikan Pertahanan Microsoft untuk IoT dengan IoT Edge menggunakan proksi perangkat hilir:

  1. Masuk ke portal Azure.

  2. Menavigasi ke Perangkat manajemen>Perangkat IoT Hub>Your Hub>

  3. Silakan pilih perangkat Anda.

    Cuplikan layar memperlihatkan di mana perangkat Anda berada untuk pilihan.

  4. Pilih modul kembar DefenderIotMicroAgent yang Anda buat dari instruksi ini.

    Cuplikan layar memperlihatkan lokasi DefenderIotMicroAgent.

  5. Pilih tombol untuk menyalin string Koneksi (kunci utama) Anda.

  6. Tempelkan string koneksi ke dalam aplikasi pengeditan teks, dan tambahkan GatewayHostName ke string. GatewayHostName adalah nama domain atau alamat IP yang sepenuhnya memenuhi syarat dari perangkat induk. Contohnya,HostName=nested11.azure-devices.net;DeviceId=downstream1;ModuleId=module1;SharedAccessKey=xxx;GatewayHostName=10.16.7.4.

  7. Buka terminal pada perangkat hilir.

  8. Gunakan perintah berikut untuk menempatkan string koneksi yang dikodekan dalam utf-8 di direktori agen Defender untuk Cloud ke dalam file connection_string.txt di jalur berikut: /etc/defender_iot_micro_agent/connection_string.txt

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

    connection_string.txt sekarang harus terletak di lokasi /etc/defender_iot_micro_agent/connection_string.txtjalur berikut .

  9. Mulai ulang layanan menggunakan perintah ini:

    sudo systemctl restart defender-iot-micro-agent.service 
    
  10. Navigasikan kembali ke perangkat.

    Cuplikan layar memperlihatkan cara menavigasi kembali ke perangkat Anda.

  11. Aktifkan koneksi ke IoT Hub, dan pilih ikon gigi.

    Cuplikan layar memperlihatkan apa yang harus dipilih untuk mengatur perangkat induk.

  12. Pilih perangkat induk dari daftar yang ditampilkan.

  13. Pastikan port 8883 (MQTT) antara perangkat hilir dan perangkat IoT Edge terbuka.

Langkah berikutnya

Cara perangkat IoT Edge bisa digunakan sebagai gateway

Mengonfigurasi modul proksi API untuk skenario hierarki gateway Anda