AWS IoT Device Defender - AWS IoT Greengrass

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

AWS IoT Device Defender

KlasterAWS IoT Device Defenderkomponen (aws.greengrass.DeviceDefender) memberitahu administrator tentang perubahan pada keadaan perangkat inti Greengrass. Hal ini dapat membantu mengidentifikasi perilaku yang tidak biasa yang mungkin menunjukkan perangkat yang disusupi. Untuk informasi lebih lanjut, lihat AWS IoT Device Defender dalam Panduan DeveloperAWS IoT Core.

Komponen ini membaca metrik sistem pada perangkat inti. Kemudian, ia menerbitkan metrik ke AWS IoT Device Defender. Untuk informasi lebih lanjut tentang cara membaca dan menafsirkan metrik yang dilaporkan oleh komponen ini, lihat Spesifikasi dokumen metrik perangkat dalam Panduan Developer AWS IoT Core.

catatan

Komponen ini menyediakan fungsionalitas yang serupa dengan konektor Pertahanan Perangkat di AWS IoT Greengrass V1. Untuk informasi selengkapnya, lihat Konektor Pertahanan Perangkat dalam Panduan Developer AWS IoT Greengrass V1.

Versi

Komponen ini memiliki versi berikut:

  • 3.1.x

  • 3.0.x

  • 2.0.x

Untuk informasi tentang perubahan di setiap versi komponen, lihat changelog.

Tipe

v3.x

Inikomponen adalah komponen generik (aws.greengrass.generic). KlasterInti Greengrassmenjalankan skrip siklus hidup komponen.

v2.x

Inikomponen adalah komponen Lambda (aws.greengrass.lambda). KlasterInti Greengrassmenjalankan fungsi Lambda komponen ini menggunakanKomponen peluncur Lambda.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

v3.x

Komponen ini dapat diinstal pada perangkat inti yang menjalankan sistem operasi berikut:

  • Linux

  • Windows

v2.x

Komponen ini dapat diinstal pada perangkat inti Linux saja.

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

v3.x
  • Python versi 3.7 diinstal pada perangkat inti dan ditambahkan ke variabel lingkungan PATH.

  • AWS IoT Device Defenderdikonfigurasi untuk menggunakan fitur Deteksi untuk memantau pelanggaran. Untuk informasi selengkapnya, lihat Deteksi di AWS IoT Core Panduan Developer.

v2.x
  • Perangkat inti Anda harus memenuhi persyaratan untuk menjalankan fungsi Lambda. Jika Anda ingin perangkat inti untuk menjalankan fungsi Lambda kontainer, perangkat harus memenuhi persyaratan untuk melakukannya. Untuk informasi selengkapnya, lihat Persyaratan fungsi Lambda.

  • Python versi 3.7 diinstal pada perangkat inti dan ditambahkan ke variabel lingkungan PATH.

  • AWS IoT Device Defenderdikonfigurasi untuk menggunakan fitur Deteksi untuk memantau pelanggaran. Untuk informasi selengkapnya, lihat Deteksi di AWS IoT Core Panduan Developer.

  • Pustaka psutil diinstal pada perangkat inti. Versi 5.7.0 adalah versi terkini yang disahkan untuk bekerja dengan komponen.

  • Pustaka cbor diinstal pada perangkat inti. Versi 1.0.0 adalah versi terkini yang disahkan untuk bekerja dengan komponen.

  • Untuk menerima data output dari komponen ini, Anda harus menggabungkan pembaruan konfigurasi berikut untukkomponen router langganan lama warisan(aws.greengrass.LegacySubscriptionRouter) ketika Anda menyebarkan komponen ini. Konfigurasi ini menentukan topik di mana komponen ini menerbitkan tanggapan.

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "component:aws.greengrass.DeviceDefender", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-device-defender": { "id": "aws-greengrass-device-defender", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version", "subject": "$aws/things/+/defender/metrics/json", "target": "cloud" } } }
    • Ganti wilayah dengan Wilayah AWS yang Anda gunakan.

    • Ganti versi dengan versi fungsi Lambda yang komponen ini jalankan. Untuk menemukan versi fungsi Lambda, Anda harus melihat resep untuk versi komponen ini yang ingin Anda deploy. Buka halaman detail komponen ini di konsol AWS IoT Greengrass tersebut, dan cari pasangan nilai kunci fungsi Lambda. Pasangan kunci-nilai ini berisi nama dan versi fungsi Lambda.

    penting

    Anda harus memperbarui versi fungsi Lambda pada router langganan warisan setiap kali Anda men-deploy komponen ini. Hal ini memastikan bahwa Anda menggunakan versi fungsi Lambda yang benar untuk versi komponen yang Anda deploy.

    Untuk informasi selengkapnya, lihat Buat deployment.

Dependensi

Saat Anda men-deploy komponen, AWS IoT Greengrass juga men-deploy versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass tersebut. Pada halaman detail komponen, cari daftar Dependensi.

3.1.1

Tabel berikut mencantumkan dependensi untuk versi 3.1.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=======2.1.0 Lunak
Layanan pertukaran token >=0.0.0 Keras
3.0.0 - 3.0.2

Tabel berikut mencantumkan dependensi untuk versi 3.0.0 ke 3.0.2 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=======2.1.0 Lunak
Layanan pertukaran token >=0.0.0 Keras
2.0.10

Tabel berikut mencantumkan dependensi untuk versi 2.0.10 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=======2.2.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.9

Tabel berikut mencantumkan dependensi untuk versi 2.0.9 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >===========2.1.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.8

Tabel berikut mencantumkan dependensi untuk versi 2.0.8 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=========2.1.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.7

Tabel berikut mencantumkan dependensi untuk versi 2.0.7 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=======2.2.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.6

Tabel berikut mencantumkan dependensi untuk versi 2.0.6 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.4.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.5

Tabel berikut mencantumkan dependensi untuk versi 2.0.5 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.3.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.4

Tabel berikut mencantumkan dependensi untuk versi 2.0.4 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.2.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran token ^2.0.0 Keras
2.0.3

Tabel berikut mencantumkan dependensi untuk versi 2.0.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.3 <2.1.0 Keras
Peluncur Lambda >=1.0.0 Keras
Runtime Lambda >=1.0.0 Lunak
Layanan pertukaran token >=1.0.0 Keras

Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.

Konfigurasi

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.

v3.x
PublishRetryCount

Jumlah kali publikasi akan dicoba ulang. Fitur ini tersedia dalam versi 3.1.1.

Minimum adalah 0.

Maksimum adalah 72.

Default: 5

SampleIntervalSeconds

(Opsional) Jumlah waktu dalam hitungan detik antara setiap siklus tempat komponen mengumpulkan dan melaporkan metrik.

Nilai minimum adalah 300 detik (5 menit).

Default: 300 detik

UseInstaller

(Opsional) Nilai Boolean yang mendefinisikan apakah akan menggunakan skrip installer dalam komponen ini untuk menginstal dependensi komponen ini.

Tetapkan nilai ini kefalsejika Anda ingin menggunakan skrip khusus untuk menginstal dependensi, atau jika Anda ingin menyertakan dependensi runtime dalam gambar Linux yang sudah dibuat sebelumnya. Untuk menggunakan komponen ini, Anda harus menginstal pustaka berikut, termasuk dependensi apa pun, dan membuatnya tersedia untuk pengguna sistem Greengrass default.

  • AWS IoT Device SDKv2 untuk Python

  • cborperpustakaan. Versi 1.0.0 adalah versi terkini yang disahkan untuk bekerja dengan komponen.

  • psutilperpustakaan. Versi 5.7.0 adalah versi terkini yang disahkan untuk bekerja dengan komponen.

catatan

Jika Anda menggunakan versi 3.0.0 atau 3.0.1 komponen ini pada perangkat inti yang Anda konfigurasikan untuk menggunakan proxy HTTPS, Anda harus menetapkan nilai inifalse. Skrip installer tidak mendukung operasi di belakang proxy HTTPS dalam versi komponen ini.

Default: true

v2.x
catatan

Konfigurasi default komponen ini meliputi parameter fungsi Lambda. Kami sarankan Anda mengedit hanya parameter berikut untuk mengonfigurasi komponen ini pada perangkat Anda.

lambdaParams

Sebuah objek yang berisi parameter untuk fungsi Lambda komponen ini. Objek ini berisi informasi berikut:

EnvironmentVariables

Sebuah objek yang berisi parameter fungsi Lambda ini. Objek ini berisi informasi berikut:

PROCFS_PATH

(Opsional) Jalur ke folder /proc.

  • Untuk menjalankan komponen ini di kontainer, gunakan nilai default, /host-proc. Komponen berjalan dalam kontainer secara default.

  • Untuk menjalankan komponen ini ketika tidak ada mode kontainer, tentukan /proc untuk parameter ini.

Default: /host-proc. Ini adalah jalur default di mana komponen ini memasang/procfolder dalam wadah.

catatan

Komponen ini memiliki akses hanya-baca ke folder ini.

SAMPLE_INTERVAL_SECONDS

(Opsional) Jumlah waktu dalam hitungan detik antara setiap siklus tempat komponen mengumpulkan dan melaporkan metrik.

Nilai minimum adalah 300 detik (5 menit).

Default: 300 detik

containerMode

(Opsional) Mode kontainerisasi untuk komponen ini. Pilih dari salah satu pilihan berikut:

  • GreengrassContainer – Komponen tersebut berjalan di lingkungan waktu aktif yang terisolasi di dalam kontainer AWS IoT Greengrass.

  • NoContainer – Komponen tersebut tidak berjalan di lingkungan waktu aktif terisolasi.

    Jika Anda menentukan opsi ini, Anda harus menentukan /proc untuk parameter variabel lingkungan PROCFS_PATH.

Default: GreengrassContainer

containerParams

(Opsional) Sebuah objek yang berisi parameter kontainer untuk komponen ini. Komponen menggunakan parameter ini jika Anda menentukan GreengrassContainer untuk containerMode.

Objek ini berisi informasi berikut:

memorySize

(Opsional) Jumlah memori (dalam kilobyte) yang akan dialokasikan ke komponen.

Defaultnya 50.000 KB.

pubsubTopics

(Opsional) Sebuah objek yang berisi topik di mana komponen berlangganan untuk menerima pesan. Anda dapat menentukan setiap topik dan apakah komponen berlangganan topik MQTT dari AWS IoT Core atau topik publish/subscribe lokal.

Objek ini berisi informasi berikut:

0 - Ini adalah indeks himpunan sebagai string.

Objek yang berisi informasi berikut:

type

(Opsional) Jenis olahpesan publikasikan/berlangganan yang digunakan oleh komponen ini untuk berlangganan pesan. Pilih dari salah satu pilihan berikut:

  • Pubsub — Berlangganan pesan publish/subscribe lokal. Jika Anda memilih opsi ini, topik tidak dapat berisi wildcard MQTT. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Pesan lokal publikasi/berlangganan.

  • IotCore – Berlangganan pesan MQTT AWS IoT Core. Jika Anda memilih opsi ini, topik dapat berisi wildcard MQTT. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Publikasi/berlangganan pesan MQTT AWS IoT Core.

Default: Pubsub

topic

(Opsional) Topik yang menjadi langganan komponen untuk menerima pesan. Jika Anda menentukan IotCore untuk type, Anda dapat menggunakan wildcard MQTT (+ dan #) dalam topik ini.

contoh Contoh: Pembaruan gabungan konfigurasi (mode kontainer)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/host_proc" } }, "containerMode": "GreengrassContainer" }

contoh Contoh: Pembaruan gabungan konfigurasi (tidak ada mode kontainer)

{ "lambdaExecutionParameters": { "EnvironmentVariables": { "PROCFS_PATH": "/proc" } }, "containerMode": "NoContainer" }

Data input

Komponen ini tidak menerima pesan sebagai data input.

Data output

Komponen ini menerbitkan metrik keamanan untuk topik yang dismpan berikut untuk AWS IoT Device Defender. Komponen ini menggantikancoreDeviceNamedengan nama perangkat inti saat menerbitkan metrik.

Topik (MQTT AWS IoT Core): $aws/things/coreDeviceName/defender/metrics/json

contoh Contoh keluaran

{ "header": { "report_id": 1529963534, "version": "1.0" }, "metrics": { "listening_tcp_ports": { "ports": [ { "interface": "eth0", "port": 24800 }, { "interface": "eth0", "port": 22 }, { "interface": "eth0", "port": 53 } ], "total": 3 }, "listening_udp_ports": { "ports": [ { "interface": "eth0", "port": 5353 }, { "interface": "eth0", "port": 67 } ], "total": 2 }, "network_stats": { "bytes_in": 1157864729406, "bytes_out": 1170821865, "packets_in": 693092175031, "packets_out": 738917180 }, "tcp_connections": { "established_connections":{ "connections": [ { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" }, { "local_interface": "eth0", "local_port": 80, "remote_addr": "192.168.0.1:8000" } ], "total": 2 } } } }

Untuk informasi lebih lanjut tentang metrik yang dilaporkan oleh komponen ini, lihat spesifikasi dokumen metrik perangkat dalam Panduan Developer AWS IoT Core.

File log lokal

Komponen ini menggunakan file log berikut.

Linux
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log

Untuk melihat log komponen ini

  • Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti/greengrass/v2atauC:\greengrass\v2dengan jalur keAWS IoT Greengrassfolder akar.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait

Lisensi

Komponen ini dirilis menurut Perjanjian Lisensi Perangkat Lunak Greengrass Core.

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

v3.x

Versi

Perubahan

3.1.1

Perbaikan bug dan peningkatan
  • Menambahkan percobaan ulang untuk koneksi klien saat koneksi gagal pulih setelah pemadaman jaringan.

  • Menambahkan percobaan ulang yang dapat dikonfigurasi untuk metrik penerbitan.

3.1.0

Perbaikan bug dan peningkatan

3.0.1

Memperbaiki masalah dengan cara komponen menghitung nilai delta untuk metrik.

3.0.0

Awas

Versi ini tidak lagi tersedia. Perbaikan dalam versi ini tersedia di versi komponen ini yang lebih baru.

Versi awal.

v2.x

Versi

Perubahan

2.0.10

Versi yang diperbarui untuk rilis inti Greengrass versi 2.0.

2.0.9

Versi yang diperbarui untuk rilis inti Greengrass versi 2.6.0.

2.0.8

Versi yang diperbarui untuk rilis inti Greengrass versi 2.5.0.

2.7

Versi yang diperbarui untuk rilis inti Greengrass versi 2.4.0.

2.0.6

Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0.

2.0.5

Versi yang diperbarui untuk rilis inti Greengrass versi 2.2.0.

2.0.4

Versi yang diperbarui untuk rilis inti Greengrass versi 2.1.0.

2.0.3

Versi awal.