Mengonfigurasi perangkat IoT Edge untuk bertindak sebagai gateway transparan

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 memberikan instruksi mendetail untuk mengonfigurasi perangkat IoT Edge agar berfungsi sebagai gateway transparan bagi perangkat lain untuk berkomunikasi dengan IoT Hub. Artikel ini menggunakan istilah gateway IoT Edge untuk merujuk ke perangkat IoT Edge yang dikonfigurasi sebagai gateway transparan. Untuk mengetahui informasi selengkapnya, lihat Bagaimana perangkat IoT Edge dapat digunakan sebagai gateway.

Catatan

Perangkat hilir tidak dapat menggunakan pengunggahan file.

Ada tiga langkah umum untuk menyiapkan koneksi gateway transparan yang sukses. Artikel ini membahas langkah pertama:

  1. Konfigurasikan perangkat gateway sebagai server sehingga perangkat hilir dapat tersambungkan dengan aman. Siapkan gateway untuk menerima pesan dari perangkat hilir dan merutekannya ke tujuan yang tepat.
  2. Buat identitas perangkat untuk perangkat hilir sehingga dapat mengautentikasi dengan IoT Hub. Konfigurasikan perangkat hilir untuk mengirim pesan melalui perangkat gateway. Untuk langkah-langkah tersebut, lihat Mengautentikasi perangkat hilir ke Azure IoT Hub.
  3. Sambungkan perangkat hilir ke perangkat gateway dan mulai mengirim pesan. Untuk langkah-langkah ini, lihat Menyambungkan perangkat hilir ke gateway Azure IoT Edge.

Agar berfungsi sebagai gateway, perangkat perlu tersambung secara aman ke perangkat hilir. Azure IoT Edge memungkinkan Anda menggunakan infrastruktur kunci umum (PKI) untuk menyiapkan koneksi aman antar perangkat. Dalam kasus ini, kami mengizinkan perangkat hilir tersambung ke perangkat IoT Edge yang bertindak sebagai gateway transparan. Untuk menjaga keamanan yang wajar, perangkat hilir harus mengonfirmasi identitas perangkat gateway. Pemeriksaan identitas ini mencegah perangkat Anda terhubung ke gateway yang berpotensi berbahaya.

Perangkat hilir dapat berupa aplikasi atau platform apa pun yang memiliki identitas yang dibuat dengan layanan cloud Azure IoT Hub. Aplikasi ini sering menggunakan SDK perangkat IoT Azure. Perangkat hilir bahkan bisa menjadi aplikasi yang berjalan pada perangkat gateway IoT Edge itu sendiri.

Anda dapat membuat infrastruktur sertifikat apa pun yang memungkinkan kepercayaan yang diperlukan untuk topologi gateway perangkat Anda. Dalam artikel ini, kami mengasumsikan persiapan sertifikat yang sama yang akan Anda gunakan untuk mengaktifkan keamanan CA X.509 di IoT Hub, yang melibatkan sertifikat CA X.509 yang terkait dengan hub IoT tertentu (CA akar hub IoT), serangkaian sertifikat yang ditandatangani dengan CA ini, dan CA untuk perangkat IoT Edge.

Catatan

Istilah sertifikat CA akar yang digunakan di seluruh artikel ini mengacu pada sertifikat publik otoritas tertinggi dari rantai sertifikat PKI, dan belum tentu akar sertifikat dari otoritas sertifikat bersindikasi. Dalam banyak kasus, sertifikat sebenarnya merupakan sertifikat publik CA menengah.

Langkah-langkah berikut memandu Anda melalui proses pembuatan sertifikat dan memasangnya di tempat yang tepat di gateway. Anda dapat menggunakan komputer apa pun untuk menghasilkan sertifikat, lalu menyalinnya ke perangkat IoT Edge.

Prasyarat

Perangkat Linux atau Windows dengan IoT Edge terpasang.

Jika Anda tidak memiliki perangkat yang siap, Anda dapat membuatnya di komputer virtual Azure. Ikuti langkah-langkah dalam Menyebarkan modul IoT Edge pertama Anda ke perangkat Linux virtual untuk membuat IoT Hub, membuat komputer virtual, dan mengonfigurasi runtime IoT Edge.

Menyiapkan sertifikat OS perangkat

Semua gateway IoT Edge memerlukan sertifikat OS perangkat yang terpasang di dalamnya. Daemon keamanan IoT Edge menggunakan sertifikat OS perangkat IoT Edge untuk menandatangani sertifikat OS beban kerja, yang pada gilirannya menandatangani sertifikat server untuk hub IoT Edge. Gateway menyajikan sertifikat servernya ke perangkat hilir selama inisiasi koneksi. Perangkat hilir memeriksa untuk memastikan bahwa sertifikat server adalah bagian dari rantai sertifikat yang di-rollup ke sertifikat OS akar. Proses ini memungkinkan perangkat hilir untuk mengonfirmasi bahwa gateway berasal dari sumber tepercaya. Untuk mengetahui informasi selengkapnya, lihat Memahami cara Azure IoT Edge menggunakan sertifikat.

Cuplikan layar yang memperlihatkan penyiapan sertifikat gateway.

Sertifikat CA akar dan sertifikat CA perangkat (dengan kunci privat) harus ada pada perangkat gateway IoT Edge dan dikonfigurasi dalam file konfigurasi IoT Edge. Ingat bahwa dalam hal ini sertifikat OS akar berarti otoritas sertifikat paling atas untuk skenario IoT Edge ini. Sertifikat CA perangkat gateway dan sertifikat perangkat hilir perlu di-rollup ke sertifikat CA akar yang sama.

Tip

Proses pemasangan sertifikat OS akar dan sertifikat OS perangkat pada perangkat IoT Edge juga dijelaskan secara lebih rinci dalam Mengelola sertifikat pada perangkat IoT Edge.

Siapkan file berikut ini:

  • Sertifikat OS Akar
  • Sertifikat OS perangkat
  • Kunci privat OS Perangkat

Untuk skenario produksi, Anda harus membuat file-file ini dengan otoritas sertifikat Anda sendiri. Untuk skenario pengembangan dan pengujian, Anda dapat menggunakan sertifikat demo.

Membuat sertifikat demo

Jika Anda tidak memiliki otoritas sertifikat sendiri dan ingin menggunakan sertifikat demo, ikuti instruksi dalam Membuat sertifikat demo untuk menguji fitur perangkat IoT Edge untuk membuat file Anda. Pada halaman tersebut, Anda perlu melakukan langkah-langkah berikut:

  1. Untuk memulai, siapkan skrip untuk menghasilkan sertifikat di perangkat Anda.
  2. Membuat sertifikat OS akar. Di akhir instruksi tersebut, Anda akan memiliki file <path>/certs/azure-iot-test-only.root.ca.cert.pemsertifikat OS akar .
  3. Membuat sertifikat OS perangkat IoT Edge. Di akhir instruksi tersebut, Anda akan memiliki sertifikat <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem OS perangkat kunci <path>/private/iot-edge-device-ca-<cert name>.key.pemprivatnya .

Menyalin sertifikat ke perangkat

  1. Periksa sertifikat memenuhi persyaratan format.

  2. Jika Anda membuat sertifikat di komputer lain, salin ke perangkat IoT Edge Anda. Anda dapat menggunakan drive USB, layanan seperti Azure Key Vault, atau dengan fungsi seperti Salinan file aman.

  3. Pindahkan file ke direktori pilihan untuk sertifikat dan kunci. Gunakan /var/aziot/certs untuk sertifikat dan /var/aziot/secrets untuk kunci.

  4. Buat direktori sertifikat dan kunci dan atur izin. Anda harus menyimpan sertifikat dan kunci Anda ke direktori pilihan /var/aziot . Gunakan /var/aziot/certs untuk sertifikat dan /var/aziot/secrets untuk kunci.

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

Mengonfigurasi sertifikat pada perangkat

  1. Di perangkat IoT Edge Anda, buka file konfigurasi: /etc/aziot/config.toml. Jika Anda menggunakan IoT Edge untuk Linux di Windows, Anda harus terhubung ke komputer virtual EFLOW menggunakan Connect-EflowVm cmdlet PowerShell.

    Tip

    Jika file konfigurasi belum ada di perangkat Anda, maka gunakan /etc/aziot/config.toml.edge.template sebagai templat untuk membuatnya.

  2. Temukan parameter trust_bundle_cert. Batalkan komentar baris ini dan berikan URI file ke file sertifikat OS akar pada perangkat Anda.

  3. Temukan bagian [edge_ca] file. Batalkan komentar tiga baris di bagian ini dan berikan URI file ke sertifikat dan file kunci Anda sebagai nilai untuk properti berikut ini:

    • cert: sertifikat OS Perangkat
    • pk: kunci privat OS Perangkat
  4. Simpan dan tutup file.

  5. Terapkan perubahan Anda.

    sudo iotedge config apply
    

Menyebarkan edgeHub dan merutekan pesan

Perangkat hilir mengirim telemetri dan pesan ke perangkat gateway, di mana modul hub IoT Edge bertanggung jawab untuk merutekan informasi ke modul lain atau ke IoT Hub. Untuk menyiapkan perangkat gateway Anda untuk fungsi ini, pastikan bahwa:

  • Modul hub IoT Edge disebarkan ke perangkat.

    Ketika Anda pertama kali memasang IoT Edge pada perangkat, hanya satu modul sistem yang dimulai secara otomatis: agen IoT Edge. Setelah Anda membuat penyebaran pertama untuk perangkat, modul sistem kedua dan hub IoT Edge juga dimulai. Jika modul edgeHub tidak berjalan di perangkat Anda, buat penyebaran untuk perangkat Anda.

  • Modul hub IoT Edge memiliki rute yang disiapkan untuk menangani pesan masuk dari perangkat hilir.

    Perangkat gateway harus memiliki rute untuk menangani pesan dari perangkat hilir atau pesan tersebut tidak akan diproses. Anda dapat mengirim pesan ke modul di perangkat gateway atau langsung ke IoT Hub.

Untuk menyebarkan modul hub IoT Edge dan mengonfigurasinya dengan rute untuk menangani pesan masuk dari perangkat hilir, ikuti langkah-langkah berikut:

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

  2. Buka Perangkat di bawah menu Manajemen perangkat dan pilih perangkat IoT Edge yang ingin Anda gunakan sebagai gateway.

  3. Pilih Atur Modul.

  4. Pada halaman Modul, Anda dapat menambahkan modul apa pun yang ingin Anda sebarkan ke perangkat gateway. Untuk tujuan artikel ini, kami berfokus pada konfigurasi dan penyebaran modul edgeHub, yang tidak perlu diatur secara eksplisit di halaman ini.

  5. Pilih Berikutnya: Rute.

  6. Pada halaman Rute, pastikan bahwa ada rute untuk menangani pesan yang berasal dari perangkat hilir. Contohnya:

    • Rute yang mengirim semua pesan, baik dari modul atau dari perangkat hilir, ke IoT Hub:

      • Nama: allMessagesToHub
      • Nilai: FROM /messages/* INTO $upstream
    • Rute yang mengirim semua pesan dari semua perangkat hilir ke IoT Hub:

      • Nama: allDownstreamToHub
      • Nilai: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Rute ini berfungsi karena, tidak seperti pesan dari modul IoT Edge, pesan dari perangkat hilir tidak memiliki ID modul yang terkait dengannya. Menggunakan klausul WHERE dari rute memungkinkan kami untuk mengatur pesan apa pun dengan properti sistem tersebut.

      Untuk mengetahui informasi selengkapnya tentang perutean pesan, lihat Menyebarkan modul dan membuat rute.

  7. Setelah rute atau beberapa rute Anda dibuat, pilih Tinjau + buat.

  8. Pada halaman Tinjau + buat, pilih Buat.

Buka port pada perangkat gateway

Perangkat IoT Edge standar tidak memerlukan konektivitas masuk untuk berfungsi, karena semua komunikasi dengan IoT Hub dilakukan melalui koneksi keluar. Perangkat gateway berbeda karena mereka perlu menerima pesan dari perangkat hilir. Jika firewall berada di antara perangkat hilir dan perangkat gateway, maka komunikasi juga harus dimungkinkan melalui firewall.

Agar skenario gateway berfungsi, setidaknya salah satu protokol IoT Edge Hub yang didukung harus terbuka untuk lalu lintas masuk dari perangkat hilir. Protokol yang didukung adalah MQTT, AMQP, HTTPS, MQTT melalui WebSocket, dan AMQP melalui WebSocket.

Port Protokol
8883 MQTT
5671 AMQP
443 HTTPS
MQTT+WS
AMQP+WS

Langkah berikutnya

Sekarang setelah Anda memiliki perangkat IoT Edge yang disiapkan sebagai gateway transparan, Anda perlu mengonfigurasi perangkat hilir Anda untuk mempercayai gateway dan mengirim pesan ke sana. Lanjutkan ke Autentikasi perangkat hilir ke Azure IoT Hub untuk langkah-langkah berikutnya dalam menyiapkan skenario gateway transparan Anda.