Buat dan provisikan perangkat IoT Edge di Linux menggunakan kunci simetris

Berlaku untuk:IoT Edge 1.4 checkmark IoT Edge 1.4

Penting

IoT Edge 1.4 adalah rilis yang didukung Jika Anda menggunakan rilis sebelumnya, lihat Memperbarui IoT Edge.

Artikel ini menyediakan instruksi menyeluruh untuk mendaftarkan dan menyediakan perangkat Linux IoT Edge yang mencakup penginstalan IoT Edge.

Setiap perangkat yang terhubung ke hub IoT memiliki ID perangkat yang digunakan untuk melacak komunikasi cloud-ke-perangkat atau perangkat-ke-cloud . Anda mengonfigurasi perangkat dengan informasi koneksinya, yang mencakup:

  • Nama host Azure IoT Hub
  • ID Perangkat
  • Detail autentikasi untuk menyambungkan ke IoT Hub

Langkah-langkah dalam artikel ini menelusuri proses yang disebut provisi manual, tempat Anda menyambungkan satu perangkat ke hub IoT-nya. Untuk penyediaan manual, Anda memiliki dua opsi untuk mengautentikasi perangkat IoT Edge:

  • Kunci simetris: Saat Anda membuat identitas perangkat baru di IoT Hub, layanan ini membuat dua kunci. Anda menempatkan salah satu kunci pada perangkat, dan menyajikan kunci ke IoT Hub saat mengautentikasi.

    Metode autentikasi ini lebih cepat untuk memulai, tetapi tidak sama amannya.

  • X.509 self-signed: Anda membuat dua sertifikat identitas X.509 dan menempatkannya di perangkat. Saat Anda membuat identitas perangkat baru di IoT Hub, Anda menyediakan thumbprint dari kedua sertifikat. Saat perangkat mengautentikasi ke IoT Hub, perangkat menyajikan satu sertifikat dan IoT Hub memverifikasi bahwa sertifikat cocok dengan thumbprint-nya.

    Metode autentikasi ini lebih aman dan disarankan untuk skenario produksi.

Artikel ini membahas penggunaan kunci simetris sebagai metode autentikasi Anda. Jika Anda ingin menggunakan sertifikat X.509, lihat Membuat dan memprovisikan perangkat IoT Edge di Linux menggunakan sertifikat X.509.

Catatan

Jika Anda memiliki banyak perangkat untuk disiapkan dan tidak ingin memprovisikan masing-masing perangkat secara manual, gunakan salah satu artikel berikut untuk mempelajari cara kerja IoT Edge dengan layanan provisi perangkat IoT Hub:

Prasyarat

Artikel ini menunjukkan cara mendaftarkan perangkat IoT Edge Anda dan menginstal IoT Edge (juga disebut runtime IoT Edge) di perangkat Anda. Pastikan Anda memiliki alat manajemen perangkat pilihan Anda, misalnya Azure CLI, dan persyaratan perangkat sebelum Anda mendaftar dan menginstal perangkat Anda.

Alat manajemen perangkat

Anda dapat menggunakan portal Azure, Visual Studio Code, atau Azure CLI untuk langkah-langkah mendaftarkan perangkat Anda. Setiap utilitas memiliki prasyaratnya sendiri atau mungkin perlu diinstal:

Hub IoT gratis atau standar di langganan Azure Anda.

Persyaratan perangkat

Perangkat Linux X64, ARM32, atau ARM64.

Microsoft menerbitkan paket penginstalan untuk berbagai sistem operasi.

Untuk informasi terkini tentang sistem operasi mana yang saat ini didukung untuk skenario produksi, lihat Sistem yang didukung Azure IoT Edge.

Ekstensi Visual Studio Code

Jika Anda menggunakan Visual Studio Code, ada ekstensi Azure IoT bermanfaat yang mempermudah pembuatan dan proses manajemen perangkat.

Instal ekstensi Azure IoT Edge dan Azure IoT Hub:

Mendaftarkan perangkat Anda

Anda dapat menggunakan portal Microsoft Azure, Visual Studio Code, atau CLI Azure untuk mendaftarkan perangkat, tergantung pada preferensi Anda.

Di hub IoT Anda di portal Microsoft Azure, perangkat IoT Edge dibuat dan dikelola secara terpisah dari perangkat IoT dengan edge tidak aktif.

  1. Masuk ke portal Azure dan navigasikan ke IoT hub Anda.

  2. Di panel kiri, pilih Perangkat dari menu, lalu pilih Tambahkan Perangkat.

  3. Pada halaman Buat perangkat, berikan informasi berikut ini:

    • Buat ID Perangkat deskriptif, misalnya my-edge-device-1 (semua huruf kecil). Salin ID Perangkat ini, karena Anda akan menggunakannya nanti.
    • Centang kotak IoT Edge Device .
    • Pilih Kunci simetris sebagai jenis autentikasi.
    • Gunakan pengaturan default untuk menghasilkan kunci autentikasi secara otomatis, yang menghubungkan perangkat baru ke hub Anda.
  4. Pilih Simpan.

Anda akan melihat perangkat baru Anda tercantum di hub IoT Anda.

Sekarang setelah Anda memiliki perangkat yang terdaftar di IoT Hub, Anda dapat mengambil informasi provisi yang digunakan untuk menyelesaikan penginstalan dan provisi runtime IoT Edge di langkah berikutnya.

Melihat perangkat terdaftar dan mengambil informasi provisi

Perangkat yang menggunakan autentikasi kunci simetris memerlukan string koneksi untuk menyelesaikan penginstalan dan penyediaan runtime IoT Edge. string koneksi akan dihasilkan untuk perangkat IoT Edge Anda saat Anda membuat perangkat. Untuk Visual Studio Code dan Azure CLI, string koneksi berada dalam output JSON. Jika Anda menggunakan portal Azure untuk membuat perangkat, Anda dapat menemukan string koneksi dari perangkat itu sendiri. Saat Anda memilih perangkat di hub IoT, perangkat tersebut tercantum seperti Primary connection string di halaman perangkat.

Perangkat berkemampuan tepi yang tersambung ke hub IoT Anda tercantum di halaman Perangkat hub IoT Anda. Jika Anda memiliki beberapa perangkat, Anda dapat memfilter daftar dengan memilih jenis Perangkat Iot Edge, lalu pilih Terapkan.

Saat Anda siap untuk mengatur perangkat Anda, Anda memerlukan string koneksi yang menghubungkan perangkat fisik Anda dengan identitasnya di hub IoT. Perangkat yang mengautentikasi dengan kunci simetris memiliki string koneksi yang tersedia untuk disalin di portal. Untuk menemukan string koneksi Anda di portal:

  1. Dari halaman Perangkat , pilih ID perangkat IoT Edge dari daftar.
  2. Salin nilai String Koneksi Utama atau String Koneksi Sekunder. Salah satu kunci akan berfungsi.

Pasang IoT Edge

Di bagian ini, Anda menyiapkan mesin virtual Linux atau perangkat fisik Anda untuk IoT Edge. Kemudian, Anda menginstal IoT Edge.

Jalankan perintah berikut untuk menambahkan repositori paket lalu tambahkan kunci penandatanganan paket Microsoft ke daftar kunci tepercaya Anda.

Penting

Pada 30 Juni 2022 Raspberry Pi OS Stretch dihentikan dari daftar dukungan OS Tier 1. Untuk menghindari potensi kerentanan keamanan, perbarui OS host Anda ke Bullseye.

Penginstalan dapat dilakukan dengan beberapa perintah. Buka terminal dan jalankan perintah berikut:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

Untuk informasi selengkapnya tentang versi sistem operasi, lihat Platform yang didukung Azure IoT Edge.

Catatan

Paket perangkat lunak Azure IoT Edge tunduk pada ketentuan lisensi yang terletak di setiap paket (direktori usr/share/doc/{package-name} atau LICENSE). Baca syarat lisensi sebelum menggunakan paket. Dengan memasang dan menggunakan paket ini, berarti Anda menyetujui syarat tersebut. Jika Anda tidak setuju dengan syarat lisensi, jangan gunakan paket tersebut.

Memasang komputer kontainer

Azure IoT Edge bergantung pada runtime kontainer yang kompatibel dengan OCI. Untuk skenario produksi, kami menyarankan Anda menggunakan mesin Moby. Mesin Moby adalah satu-satunya mesin kontainer yang secara resmi didukung dengan IoT Edge. Gambar kontainer Docker CE/EE kompatibel dengan runtime Moby.

Pasang mesin Moby.

sudo apt-get update; \
  sudo apt-get install moby-engine

Secara default, mesin kontainer tidak mengatur batas ukuran log kontainer. Seiring waktu, hal ini dapat menyebabkan perangkat terisi dengan log dan kehabisan ruang disk. Namun, Anda dapat mengonfigurasi log untuk ditampilkan secara lokal, meskipun bersifat opsional. Untuk mempelajari selengkapnya tentang konfigurasi pengelogan, lihat Daftar Periksa Penyebaran Produksi.

Langkah-langkah berikut menunjukkan kepada Anda cara mengonfigurasi kontainer Anda untuk menggunakan local driver pengelogan sebagai mekanisme pengelogan.

  1. Membuat atau mengedit file konfigurasi daemon Docker yang ada

    sudo nano /etc/docker/daemon.json
    
  2. Atur driver pengelogan default ke local driver pengelogan seperti yang ditunjukkan dalam contoh.

       {
          "log-driver": "local"
       }
    
  3. Mulai ulang mesin kontainer agar perubahan diterapkan.

    sudo systemctl restart docker
    

Mengonfigurasi runtime IoT Edge

Layanan IoT Edge menyediakan dan mempertahankan standar keamanan di perangkat IoT Edge. Layanan dimulai pada setiap boot dan bootstrap perangkat dengan memulai sisa runtime IoT Edge.

Catatan

Dimulai dengan versi 1.2, layanan identitas IoT menangani provisi dan manajemen identitas untuk IoT Edge dan untuk komponen perangkat lain yang perlu berkomunikasi dengan IoT Hub.

Langkah-langkah di bagian ini mewakili proses umum untuk menginstal versi IoT Edge terbaru pada perangkat yang memiliki koneksi internet. Jika Anda perlu menginstal versi tertentu, seperti versi pra-rilis, atau perlu menginstal saat offline, ikuti langkah-langkah penginstalan versi Offline atau versi tertentu nanti di artikel ini.

Tip

Jika Anda sudah memiliki perangkat IoT Edge yang menjalankan versi yang lebih lama dan ingin meningkatkan ke rilis terbaru, gunakan langkah-langkah dalam Memperbarui daemon dan runtime keamanan IoT Edge. Versi yang lebih baru cukup berbeda dari versi IoT Edge sebelumnya yang diperlukan langkah-langkah khusus untuk ditingkatkan.

Instal versi terbaru IoT Edge dan paket layanan identitas IoT (jika Anda belum diperbarui):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Paket opsional defender-iot-micro-agent-edge mencakup pertahanan Microsoft untuk agen mikro keamanan IoT yang memberikan visibilitas titik akhir ke dalam manajemen postur keamanan, kerentanan, deteksi ancaman, manajemen armada, dan banyak lagi untuk membantu Anda mengamankan perangkat IoT Edge Anda. Disarankan untuk menginstal agen mikro dengan agen Edge untuk mengaktifkan pemantauan dan pengerasan keamanan perangkat Edge Anda. Untuk mempelajari selengkapnya tentang Pertahanan Microsoft untuk IoT, lihat Apa itu Pertahanan Microsoft untuk IoT untuk penyusun perangkat.

Menentukan perangkat dengan identitas cloud-nya

Sekarang setelah mesin kontainer dan runtime IoT Edge diinstal di perangkat Anda, Anda siap untuk menyiapkan perangkat dengan identitas cloud dan informasi autentikasinya.

Anda dapat mengonfigurasi perangkat IoT Edge Anda dengan autentikasi kunci konten menggunakan perintah berikut:

sudo iotedge config mp --connection-string 'PASTE_DEVICE_CONNECTION_STRING_HERE'

Perintah ini iotedge config mp membuat file konfigurasi pada perangkat dan memasukkan string koneksi Anda dalam file konfigurasi.

  1. Terapkan perubahan konfigurasi.

    sudo iotedge config apply
    
  2. Untuk melihat file konfigurasi, Anda dapat membukanya:

    sudo nano /etc/aziot/config.toml
    

Sebarkan modul

Untuk menyebarkan modul IoT Edge Anda, buka hub IoT Anda di portal Azure, lalu:

  1. Pilih Perangkat dari menu IoT Hub.

  2. Pilih perangkat Anda untuk membuka halamannya.

  3. Pilih tab Atur Modul .

  4. Karena kita ingin menyebarkan modul default IoT Edge (edgeAgent dan edgeHub), kita tidak perlu menambahkan modul apa pun ke panel ini, jadi pilih Tinjau + buat di bagian bawah.

  5. Anda melihat konfirmasi JSON modul Anda. Pilih Buat untuk menyebarkan modul.

Untuk informasi selengkapnya, lihat Menyebarkan modul.

Memverifikasi konfigurasi yang berhasil

Pastikan bahwa runtime berhasil dipasang dan dikonfigurasi pada perangkat IoT Edge Anda.

Tip

Anda memerlukan hak istimewa yang lebih tinggi untuk menjalankan perintah iotedge. Setelah Anda keluar dari komputer Anda dan masuk kembali pertama kali setelah menginstal runtime IoT Edge, izin Anda akan diperbarui secara otomatis. Sampai saat itu, gunakan sudo di depan perintah.

  1. Periksa untuk melihat layanan sistem IoT Edge sedang berjalan.

    sudo iotedge system status
    

    Respons status yang aziot berhasil menunjukkan layanan sebagai berjalan atau siap.

  2. Jika Anda perlu memecahkan masalah layanan, ambil log layanan.

    sudo iotedge system logs
    
  3. Gunakan alat check untuk memverifikasi konfigurasi dan status koneksi perangkat.

    sudo iotedge check
    

    Anda dapat mengharapkan berbagai respons yang mungkin mencakup OK (hijau), Peringatan (kuning), atau Kesalahan (merah). Untuk memecahkan masalah kesalahan umum, lihat Solusi untuk masalah umum untuk Azure IoT Edge.

    Screenshot of sample responses from the check command.

    Tip

    Selalu gunakan sudo untuk menjalankan alat pemeriksaan, bahkan setelah izin Anda diperbarui. Alat ini membutuhkan hak istimewa yang ditingkatkan untuk mengakses file konfigurasi untuk memverifikasi status konfigurasi.

    Catatan

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

    × kesiapan produksi: Direktori penyimpanan Azure Stack Edge Hub bertahan pada sistem file host - KesalahanTidak dapat memeriksa status kontainer edgeHub saat ini

    Kesalahan ini diharapkan pada perangkat yang baru disediakan karena modul IoT Edge Hub belum berjalan. Pastikan modul IoT Edge Anda disebarkan di langkah-langkah sebelumnya. Penyebaran mengatasi kesalahan ini.

    Atau, Anda mungkin melihat kode status sebagai 417 -- The device's deployment configuration is not set. Setelah modul Anda disebarkan, status ini akan berubah.

  4. Saat layanan dimulai untuk pertama kalinya, Anda hanya akan melihat modul edgeAgent yang berjalan. Modul edgeAgent berjalan secara default dan membantu memasang dan memulai modul tambahan yang Anda sebarkan ke perangkat Anda.

    Periksa apakah perangkat dan modul Anda disebarkan dan dijalankan, dengan melihat halaman perangkat Anda di portal Azure.

    Screenshot of IoT Edge modules deployed and running confirmation in the Azure portal.

    Setelah modul Anda disebarkan dan berjalan, cantumkan di perangkat atau komputer virtual Anda dengan perintah berikut:

    sudo iotedge list
    

Penginstalan versi offline atau versi spesifik (opsional)

Langkah-langkah di bagian ini adalah untuk skenario yang tidak dicakup oleh langkah-langkah penginstalan standar. Ini mungkin termasuk:

  • Menginstal IoT Edge saat offline
  • Menginstal versi kandidat rilis

Gunakan langkah-langkah di bagian ini jika Anda ingin menginstal versi tertentu dari runtime Azure IoT Edge yang tidak tersedia melalui manajer paket Anda. Daftar paket Microsoft hanya berisi sekumpulan terbatas versi dan sub-versi terbarunya, jadi langkah-langkah ini adalah untuk siapa saja yang ingin menginstal versi lama atau versi RC.

Jika Anda menggunakan snap Ubuntu, Anda dapat mengunduh snap dan menginstalnya secara offline. Untuk informasi selengkapnya, lihat Mengunduh snap dan menginstal offline.

Dengan menggunakan perintah curl, Anda bisa menargetkan file komponen langsung dari repositori IoT Edge GitHub.

Catatan

Jika perangkat Anda saat ini menjalankan paket IoT Edge versi 1.1 atau lebih lama, hapus instalasi paket iotedge dan libiothsm-std sebelum mengikuti langkah-langkah di bagian ini. Untuk informasi selengkapnya, lihat Memperbarui dari 1.0 atau 1.1 ke rilis terbaru.

  1. Navigasikan ke rilis Azure IoT Edge, dan temukan versi rilis yang ingin Anda targetkan.

  2. Perluas bagian Aset untuk versi tersebut.

  3. Setiap rilis harus memiliki file baru untuk IoT Edge dan layanan identitas. Jika Anda akan menginstal IoT Edge pada perangkat offline, unduh file-file ini sebelumnya. Jika tidak, gunakan perintah berikut ini untuk memperbarui komponen tersebut.

    1. Temukan file aziot-identity-service yang cocok dengan arsitektur perangkat IoT Edge Anda. Klik kanan tautan file dan salin alamat tautan.

    2. Gunakan tautan yang disalin dalam perintah berikut untuk menginstal versi layanan identitas tersebut:

      curl -L <identity service link> -o aziot-identity-service.deb && sudo apt-get install ./aziot-identity-service.deb
      

    1. Temukan file aziot-edge yang cocok dengan arsitektur perangkat IoT Edge Anda. Klik kanan tautan file dan salin alamat tautan.

    2. Gunakan tautan yang disalin dalam perintah berikut untuk menginstal versi IoT Edge tersebut.

      curl -L <iotedge link> -o aziot-edge.deb && sudo apt-get install ./aziot-edge.deb
      

Mencopot pemasangan IoT Edge

Jika Anda ingin mencopot pemasangan IoT Edge dari perangkat Anda, gunakan perintah berikut.

Hapus runtime{i>

sudo apt-get autoremove --purge aziot-edge

--purge Tinggalkan bendera jika Anda berencana untuk menginstal ulang IoT Edge dan menggunakan informasi konfigurasi yang sama di masa mendatang. Bendera --purge menghapus semua file yang terkait dengan IoT Edge, termasuk file konfigurasi Anda.

Ketika runtime IoT Edge dihapus, kontainer apa pun yang dibuatnya akan dihentikan tetapi masih ada di perangkat Anda. Lihat semua kontainer untuk melihat mana yang masih tersisa.

sudo docker ps -a

Hapus kontainer dari perangkat Anda, termasuk dua kontainer runtime.

sudo docker rm -f <container ID>

Terakhir, hapus runtime kontainer dari perangkat Anda.

sudo apt-get autoremove --purge moby-engine

Langkah berikutnya

Lanjutkan ke menyebarkan modul IoT Edge untuk mempelajari cara menggunakan modul ke perangkat Anda.