Auth perangkat klien - AWS IoT Greengrass

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

Auth perangkat klien

Komponen auth perangkat klien (aws.greengrass.clientdevices.Auth) mengautentikasi perangkat klien dan mengotorisasi tindakan perangkat klien.

catatan

Perangkat klien adalah perangkat IoT lokal yang terhubung ke perangkat inti Greengrass untuk mengirim pesan MQTT dan data yang akan diproses. Untuk informasi selengkapnya, lihat Berinteraksilah dengan perangkat IoT lokal.

Versi

Komponen ini memiliki versi berikut:

  • 2.2.x

  • 2.1.x

  • 2.0.x

Tipe

Komponen ini adalah komponen plugin (aws.greengrass.plugin). Inti Greengrass menjalankan komponen plugin dalam Java Virtual Machine (JVM) yang sama sebagai inti. Nucleus dimulai ulang saat Anda mengubah versi komponen ini di perangkat inti.

Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat PemantauanAWS IoT Greengrasslog.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

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

  • Linux

  • Windows

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

  • Peran layanan Greengrass harus dikaitkan dengan Akun AWS Anda dan memungkinkan izin iot:DescribeCertificate.

  • Kebijakan perangkat inti AWS IoT ini harus memungkinkan izin berikut:

    • greengrass:GetConnectivityInfo, di mana sumber daya menyertakan ARN perangkat inti yang menjalankan komponen ini

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, di mana sumber daya menyertakan Amazon Resource Name (ARN) dari setiap perangkat klien yang tersambung ke perangkat inti

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish, di mana sumber daya termasuk ARN dari topik MQTT berikut:

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe, di mana sumber daya termasuk ARN dari filter topik MQTT berikut:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive, di mana sumber daya termasuk ARN dari topik MQTT berikut:

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    Untuk informasi selengkapnya, lihat Kebijakan AWS IoT untuk operasi bidang data dan Kebijakan AWS IoT minimal untuk mendukung perangkat klien.

Titik akhir dan port

Komponen ini harus dapat melakukan permintaan keluar ke titik akhir dan port berikut, selain titik akhir dan port yang diperlukan untuk operasi dasar. Untuk informasi selengkapnya, lihat Izinkan lalu lintas perangkat melalui proxy atau firewall.

Titik Akhir Port Diperlukan Deskripsi

iot.region.amazonaws.com

443 Ya

Digunakan untuk mendapatkan informasi tentangAWS IoTsertifikat hal.

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.

2.2.2

Tabel berikut mencantumkan dependensi untuk versi 2.2.2 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.6.0 <2.8.0 <2.8.0 Lunak
2.2.1

Tabel berikut mencantumkan dependensi untuk versi 2.2.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.6.0 <2.8.0 <2.8.0 Lunak
2.2.0

Tabel berikut mencantumkan dependensi untuk versi 2.2.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.6.0 <2.6.0 <2.7.0 Lunak
2.1.0

Tabel berikut mencantumkan dependensi untuk versi 2.1.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.2.0 <2.2.0 <2.7.0 Lunak
2.0.4

Tabel berikut mencantumkan dependensi untuk versi 2.0.4 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.2.0 <2.6.0 <2.6.0 Lunak
2.0.2 and 2.0.3

Tabel berikut mencantumkan dependensi untuk versi 2.0.2 dan 2.0.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass =2.2.0 <2.5.0 <2.5.0 Lunak
2.0.1

Tabel berikut mencantumkan dependensi untuk versi 2.0.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.2.0 <2.4.0 Lunak
2.0.0

Tabel berikut mencantumkan dependensi untuk versi 2.0.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.2.0 <2.3.0 Lunak

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.

v2.2.x
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pilihan untuk mengidentifikasi grup perangkat klien, dan tentukanKebijakan otorisasi perangkat klienyang menentukan izin untuk setiap grup perangkat.

Objek ini berisi informasi berikut:

formatVersion

Versi format untuk objek konfigurasi ini.

Pilih dari salah satu pilihan berikut:

  • 2021-03-05

definitions

grup perangkat untuk perangkat inti ini. Setiap definisi menentukanaturan seleksiuntuk mengevaluasi apakah perangkat klien adalah anggota dari grup itu. Setiap definisi juga menentukan kebijakan izin untuk diterapkan ke perangkat klien yang cocok dengan aturan pilihan. Jika perangkat klien adalah anggota dari beberapa grup perangkat, izin perangkat terdiri dari kebijakan izin masing-masing grup.

Objek ini berisi informasi berikut:

groupNameKey

Nama grup perangkat ini. GantigroupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien yang merupakan anggota dari grup perangkat ini. Ketika perangkat klien tersambung, perangkat inti mengevaluasi aturan pilihan ini untuk menentukan apakah peranti penangkap klien adalah anggota dari grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan seleksi terdiri dari setidaknya satuKlausa seleksi, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan seleksi menggunakan sintaks kueri yang sama denganAWS IoTpengindeksan armada. Untuk informasi selengkapnya tentang sintaks pemilihan, lihatAWS IoTKueri sintaksdi dalamAWS IoT CorePanduan Pengembang.

Gunakan wildcard * untuk mencocokkan beberapa perangkat klien dengan satu pilihan klausul aturan. Anda dapat menggunakan wildcard ini di akhir nama objek untuk mencocokkan perangkat klien yang namanya dimulai dengan string yang Anda tentukan. Anda juga dapat menggunakan wildcard ini untuk mencocokkan semua perangkat klien.

catatan

Untuk memilih nilai yang berisi karakter titik dua (:), lepaskan titik dua dengan karakter garis miring terbalik (\). Dalam format seperti JSON, Anda harus melepaskan karakter ris miring terbalik, sehingga Anda memasukkan dua karakter ris miring terbalik sebelum karakter titik dua. Sebagai contoh, tentukan thingName: MyTeam\\:ClientDevice1 untuk memilih objek yang namanya MyTeam:ClientDevice1.

Anda dapat menentukan sebagai berikut:

  • thingName — Nama objek AWS IoT perangkat klien.

contoh Contoh aturan pemilihan

Aturan seleksi berikut cocok dengan perangkat klien yang namanya MyClientDevice1 atau MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2

contoh Contoh aturan seleksi (gunakan wildcard)

Aturan seleksi berikut cocok dengan perangkat klien yang namanya dimulai dengan MyClientDevice.

thingName: MyClientDevice*

contoh Contoh aturan pemilihan (cocok dengan semua perangkat)

Aturan seleksi berikut cocok dengan semua perangkat klien.

thingName: *
policyName

Kebijakan izin yang berlaku untuk perangkat klien dalam grup perangkat ini. Tentukan nama kebijakan yang Anda tetapkan di objek policies.

policies

Kebijakan otorisasi perangkat klien untuk perangkat klien yang tersambung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya di mana perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. GantipolicyNameKeydengan nama yang membantu Anda mengidentifikasi kebijakan otorisasi ini. Anda menggunakan nama kebijakan ini untuk menentukan kebijakan yang berlaku untuk grup perangkat.

Objek ini berisi informasi berikut:

statementNameKey

Nama pernyataan kebijakan ini. GantistatementNameKeydengan nama yang membantu Anda mengidentifikasi pernyataan kebijakan ini.

Objek ini berisi informasi berikut:

operations

Daftar operasi untuk mengizinkan sumber daya dalam kebijakan ini.

Anda dapat menyertakan salah satu dari operasi berikut:

  • mqtt:connect — Memberikan izin untuk terhubung ke perangkat inti. Perangkat klien harus memiliki izin ini untuk menyambung ke perangkat inti.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:clientId:deviceClientId — Batasi akses berdasarkan ID klien yang digunakan perangkat klien untuk terhubung ke broker MQTT perangkat inti. GantideviceClientIddengan ID klien yang akan digunakan.

  • mqtt:publish — Memberikan izin untuk mempublikasikan pesan MQTT ke topik.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topic:mqttTopic — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. Ganti MqttTopic dengan topik yang akan digunakan.

      Sumber daya ini tidak mendukung wildcard topik MQTT.

  • mqtt:subscribe — Memberikan izin untuk berlangganan filter topik MQTT untuk menerima pesan.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topicfilter:mqttTopicFilter — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. GantimqttTopicFilterdengan filter topik yang akan digunakan.

      Sumber daya ini mendukung wildcard topik MQTT + dan #. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

      Perangkat klien dapat berlangganan filter topik yang tepat yang Anda izinkan. Misalnya, jika Anda mengizinkan perangkat klien untuk berlangganan sumber daya mqtt:topicfilter:client/+/status, perangkat klien dapat berlangganan client/+/status tetapi bukan client/client1/status.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua tindakan.

resources

Daftar operasi yang akan mengizinkan sumber daya dalam kebijakan ini. Tentukan sumber daya yang sesuai dengan operasi dalam kebijakan ini. Misalnya, Anda dapat menentukan daftar sumber daya topik MQTT (mqtt:topic:mqttTopic) dalam kebijakan yang menentukan operasi mqtt:publish.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua sumber daya. Anda tidak dapat menggunakan wildcard * untuk mencocokkan pengidentifikasi sumber daya parsial. Misalnya, Anda dapat menentukan "resources": "*", tetapi Anda tidak dapat menentukan "resources": "mqtt:clientId:*".

statementDescription

(Opsional) Deskripsi untuk pernyataan kebijakan ini.

certificates

(Opsional) Opsi konfigurasi sertifikat untuk perangkat inti ini. Objek ini berisi informasi berikut:

serverCertificateValiditySeconds

(Opsional) Jumlah waktu (dalam detik) setelah sertifikat server MQTT lokal berakhir. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan dan menyambung kembali ke perangkat inti.

Komponen ini memutar sertifikat server MQTT lokal 24 jam sebelum kedaluwarsa. Broker MQTT, sepertiKomponen broker MQTT Moquette, menghasilkan sertifikat baru dan restart. Ketika ini terjadi, semua perangkat klien yang terhubung ke perangkat inti ini terputus. Perangkat klien dapat menyambung kembali ke perangkat inti setelah waktu yang singkat.

Bawaan:604800(7 hari)

Nilai minimum:172800(2 hari)

Nilai maksimum:864000(10 hari)

performance

(Opsional) Opsi konfigurasi kinerja untuk perangkat inti ini. Objek ini berisi informasi berikut:

maxActiveAuthTokens

(Opsional) Jumlah maksimum token otorisasi perangkat klien aktif. Anda dapat meningkatkan jumlah ini untuk mengaktifkan lebih banyak perangkat klien untuk terhubung ke perangkat inti tunggal tanpa mengautentikasi ulang perangkat tersebut.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimumAWS Cloudpermintaan untuk antrian sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

(Opsional) Jumlah maksimum permintaan bersamaan untuk dikirim keAWS Cloud. Anda dapat meningkatkan jumlah ini untuk meningkatkan kinerja otentikasi pada perangkat inti tempat Anda menghubungkan sejumlah besar perangkat klien.

Default: 1

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan yang ketat)

Contoh konfigurasi berikut menentukan untuk memungkinkan perangkat klien yang namanya dimulai dengan MyClientDevice untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan permisif)

Contoh konfigurasi berikut menentukan untuk memungkinkan semua perangkat klien untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.1.x
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pilihan untuk mengidentifikasi grup perangkat klien, dan tentukanKebijakan otorisasi perangkat klienyang menentukan izin untuk setiap grup perangkat.

Objek ini berisi informasi berikut:

formatVersion

Versi format untuk objek konfigurasi ini.

Pilih dari salah satu pilihan berikut:

  • 2021-03-05

definitions

grup perangkat untuk perangkat inti ini. Setiap definisi menentukanaturan seleksiuntuk mengevaluasi apakah perangkat klien adalah anggota dari grup itu. Setiap definisi juga menentukan kebijakan izin untuk diterapkan ke perangkat klien yang cocok dengan aturan pilihan. Jika perangkat klien adalah anggota dari beberapa grup perangkat, izin perangkat terdiri dari kebijakan izin masing-masing grup.

Objek ini berisi informasi berikut:

groupNameKey

Nama grup perangkat ini. GantigroupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien yang merupakan anggota dari grup perangkat ini. Ketika perangkat klien tersambung, perangkat inti mengevaluasi aturan pilihan ini untuk menentukan apakah peranti penangkap klien adalah anggota dari grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan seleksi terdiri dari setidaknya satuKlausa seleksi, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan seleksi menggunakan sintaks kueri yang sama denganAWS IoTpengindeksan armada. Untuk informasi selengkapnya tentang sintaks pemilihan, lihatAWS IoTKueri sintaksdi dalamAWS IoT CorePanduan Pengembang.

Gunakan wildcard * untuk mencocokkan beberapa perangkat klien dengan satu pilihan klausul aturan. Anda dapat menggunakan wildcard ini di akhir nama objek untuk mencocokkan perangkat klien yang namanya dimulai dengan string yang Anda tentukan. Anda juga dapat menggunakan wildcard ini untuk mencocokkan semua perangkat klien.

catatan

Untuk memilih nilai yang berisi karakter titik dua (:), lepaskan titik dua dengan karakter garis miring terbalik (\). Dalam format seperti JSON, Anda harus melepaskan karakter ris miring terbalik, sehingga Anda memasukkan dua karakter ris miring terbalik sebelum karakter titik dua. Sebagai contoh, tentukan thingName: MyTeam\\:ClientDevice1 untuk memilih objek yang namanya MyTeam:ClientDevice1.

Anda dapat menentukan sebagai berikut:

  • thingName — Nama objek AWS IoT perangkat klien.

contoh Contoh aturan pemilihan

Aturan seleksi berikut cocok dengan perangkat klien yang namanya MyClientDevice1 atau MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2

contoh Contoh aturan seleksi (gunakan wildcard)

Aturan seleksi berikut cocok dengan perangkat klien yang namanya dimulai dengan MyClientDevice.

thingName: MyClientDevice*

contoh Contoh aturan pemilihan (cocok dengan semua perangkat)

Aturan seleksi berikut cocok dengan semua perangkat klien.

thingName: *
policyName

Kebijakan izin yang berlaku untuk perangkat klien dalam grup perangkat ini. Tentukan nama kebijakan yang Anda tetapkan di objek policies.

policies

Kebijakan otorisasi perangkat klien untuk perangkat klien yang tersambung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya di mana perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. GantipolicyNameKeydengan nama yang membantu Anda mengidentifikasi kebijakan otorisasi ini. Anda menggunakan nama kebijakan ini untuk menentukan kebijakan yang berlaku untuk grup perangkat.

Objek ini berisi informasi berikut:

statementNameKey

Nama pernyataan kebijakan ini. GantistatementNameKeydengan nama yang membantu Anda mengidentifikasi pernyataan kebijakan ini.

Objek ini berisi informasi berikut:

operations

Daftar operasi untuk mengizinkan sumber daya dalam kebijakan ini.

Anda dapat menyertakan salah satu dari operasi berikut:

  • mqtt:connect — Memberikan izin untuk terhubung ke perangkat inti. Perangkat klien harus memiliki izin ini untuk menyambung ke perangkat inti.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:clientId:deviceClientId — Batasi akses berdasarkan ID klien yang digunakan perangkat klien untuk terhubung ke broker MQTT perangkat inti. GantideviceClientIddengan ID klien yang akan digunakan.

  • mqtt:publish — Memberikan izin untuk mempublikasikan pesan MQTT ke topik.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topic:mqttTopic — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. Ganti MqttTopic dengan topik yang akan digunakan.

      Sumber daya ini tidak mendukung wildcard topik MQTT.

  • mqtt:subscribe — Memberikan izin untuk berlangganan filter topik MQTT untuk menerima pesan.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topicfilter:mqttTopicFilter — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. GantimqttTopicFilterdengan filter topik yang akan digunakan.

      Sumber daya ini mendukung wildcard topik MQTT + dan #. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

      Perangkat klien dapat berlangganan filter topik yang tepat yang Anda izinkan. Misalnya, jika Anda mengizinkan perangkat klien untuk berlangganan sumber daya mqtt:topicfilter:client/+/status, perangkat klien dapat berlangganan client/+/status tetapi bukan client/client1/status.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua tindakan.

resources

Daftar operasi yang akan mengizinkan sumber daya dalam kebijakan ini. Tentukan sumber daya yang sesuai dengan operasi dalam kebijakan ini. Misalnya, Anda dapat menentukan daftar sumber daya topik MQTT (mqtt:topic:mqttTopic) dalam kebijakan yang menentukan operasi mqtt:publish.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua sumber daya. Anda tidak dapat menggunakan wildcard * untuk mencocokkan pengidentifikasi sumber daya parsial. Misalnya, Anda dapat menentukan "resources": "*", tetapi Anda tidak dapat menentukan "resources": "mqtt:clientId:*".

statementDescription

(Opsional) Deskripsi untuk pernyataan kebijakan ini.

certificates

(Opsional) Opsi konfigurasi sertifikat untuk perangkat inti ini. Objek ini berisi informasi berikut:

serverCertificateValiditySeconds

(Opsional) Jumlah waktu (dalam detik) setelah sertifikat server MQTT lokal berakhir. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan dan menyambung kembali ke perangkat inti.

Komponen ini memutar sertifikat server MQTT lokal 24 jam sebelum kedaluwarsa. Broker MQTT, sepertiKomponen broker MQTT Moquette, menghasilkan sertifikat baru dan restart. Ketika ini terjadi, semua perangkat klien yang terhubung ke perangkat inti ini terputus. Perangkat klien dapat menyambung kembali ke perangkat inti setelah waktu yang singkat.

Bawaan:604800(7 hari)

Nilai minimum:172800(2 hari)

Nilai maksimum:864000(10 hari)

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan yang ketat)

Contoh konfigurasi berikut menentukan untuk memungkinkan perangkat klien yang namanya dimulai dengan MyClientDevice untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan permisif)

Contoh konfigurasi berikut menentukan untuk memungkinkan semua perangkat klien untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
v2.0.x
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pilihan untuk mengidentifikasi grup perangkat klien, dan tentukanKebijakan otorisasi perangkat klienyang menentukan izin untuk setiap grup perangkat.

Objek ini berisi informasi berikut:

formatVersion

Versi format untuk objek konfigurasi ini.

Pilih dari salah satu pilihan berikut:

  • 2021-03-05

definitions

grup perangkat untuk perangkat inti ini. Setiap definisi menentukanaturan seleksiuntuk mengevaluasi apakah perangkat klien adalah anggota dari grup itu. Setiap definisi juga menentukan kebijakan izin untuk diterapkan ke perangkat klien yang cocok dengan aturan pilihan. Jika perangkat klien adalah anggota dari beberapa grup perangkat, izin perangkat terdiri dari kebijakan izin masing-masing grup.

Objek ini berisi informasi berikut:

groupNameKey

Nama grup perangkat ini. GantigroupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien yang merupakan anggota dari grup perangkat ini. Ketika perangkat klien tersambung, perangkat inti mengevaluasi aturan pilihan ini untuk menentukan apakah peranti penangkap klien adalah anggota dari grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan seleksi terdiri dari setidaknya satuKlausa seleksi, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan seleksi menggunakan sintaks kueri yang sama denganAWS IoTpengindeksan armada. Untuk informasi selengkapnya tentang sintaks pemilihan, lihatAWS IoTKueri sintaksdi dalamAWS IoT CorePanduan Pengembang.

Gunakan wildcard * untuk mencocokkan beberapa perangkat klien dengan satu pilihan klausul aturan. Anda dapat menggunakan wildcard ini di akhir nama objek untuk mencocokkan perangkat klien yang namanya dimulai dengan string yang Anda tentukan. Anda juga dapat menggunakan wildcard ini untuk mencocokkan semua perangkat klien.

catatan

Untuk memilih nilai yang berisi karakter titik dua (:), lepaskan titik dua dengan karakter garis miring terbalik (\). Dalam format seperti JSON, Anda harus melepaskan karakter ris miring terbalik, sehingga Anda memasukkan dua karakter ris miring terbalik sebelum karakter titik dua. Sebagai contoh, tentukan thingName: MyTeam\\:ClientDevice1 untuk memilih objek yang namanya MyTeam:ClientDevice1.

Anda dapat menentukan sebagai berikut:

  • thingName — Nama objek AWS IoT perangkat klien.

contoh Contoh aturan pemilihan

Aturan seleksi berikut cocok dengan perangkat klien yang namanya MyClientDevice1 atau MyClientDevice2.

thingName: MyClientDevice1 OR thingName: MyClientDevice2

contoh Contoh aturan seleksi (gunakan wildcard)

Aturan seleksi berikut cocok dengan perangkat klien yang namanya dimulai dengan MyClientDevice.

thingName: MyClientDevice*

contoh Contoh aturan pemilihan (cocok dengan semua perangkat)

Aturan seleksi berikut cocok dengan semua perangkat klien.

thingName: *
policyName

Kebijakan izin yang berlaku untuk perangkat klien dalam grup perangkat ini. Tentukan nama kebijakan yang Anda tetapkan di objek policies.

policies

Kebijakan otorisasi perangkat klien untuk perangkat klien yang tersambung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya di mana perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. GantipolicyNameKeydengan nama yang membantu Anda mengidentifikasi kebijakan otorisasi ini. Anda menggunakan nama kebijakan ini untuk menentukan kebijakan yang berlaku untuk grup perangkat.

Objek ini berisi informasi berikut:

statementNameKey

Nama pernyataan kebijakan ini. GantistatementNameKeydengan nama yang membantu Anda mengidentifikasi pernyataan kebijakan ini.

Objek ini berisi informasi berikut:

operations

Daftar operasi untuk mengizinkan sumber daya dalam kebijakan ini.

Anda dapat menyertakan salah satu dari operasi berikut:

  • mqtt:connect — Memberikan izin untuk terhubung ke perangkat inti. Perangkat klien harus memiliki izin ini untuk menyambung ke perangkat inti.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:clientId:deviceClientId — Batasi akses berdasarkan ID klien yang digunakan perangkat klien untuk terhubung ke broker MQTT perangkat inti. GantideviceClientIddengan ID klien yang akan digunakan.

  • mqtt:publish — Memberikan izin untuk mempublikasikan pesan MQTT ke topik.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topic:mqttTopic — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. Ganti MqttTopic dengan topik yang akan digunakan.

      Sumber daya ini tidak mendukung wildcard topik MQTT.

  • mqtt:subscribe — Memberikan izin untuk berlangganan filter topik MQTT untuk menerima pesan.

    Operasi ini mendukung sumber daya berikut:

    • mqtt:topicfilter:mqttTopicFilter — Membatasi akses berdasarkan topik MQTT di mana perangkat klien menerbitkan pesan. GantimqttTopicFilterdengan filter topik yang akan digunakan.

      Sumber daya ini mendukung wildcard topik MQTT + dan #. Untuk informasi selengkapnya, lihat topik MQTT di Panduan Developer AWS IoT Core.

      Perangkat klien dapat berlangganan filter topik yang tepat yang Anda izinkan. Misalnya, jika Anda mengizinkan perangkat klien untuk berlangganan sumber daya mqtt:topicfilter:client/+/status, perangkat klien dapat berlangganan client/+/status tetapi bukan client/client1/status.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua tindakan.

resources

Daftar operasi yang akan mengizinkan sumber daya dalam kebijakan ini. Tentukan sumber daya yang sesuai dengan operasi dalam kebijakan ini. Misalnya, Anda dapat menentukan daftar sumber daya topik MQTT (mqtt:topic:mqttTopic) dalam kebijakan yang menentukan operasi mqtt:publish.

Anda dapat menentukan wildcard * untuk mengizinkan akses ke semua sumber daya. Anda tidak dapat menggunakan wildcard * untuk mencocokkan pengidentifikasi sumber daya parsial. Misalnya, Anda dapat menentukan "resources": "*", tetapi Anda tidak dapat menentukan "resources": "mqtt:clientId:*".

statementDescription

(Opsional) Deskripsi untuk pernyataan kebijakan ini.

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan yang ketat)

Contoh konfigurasi berikut menentukan untuk memungkinkan perangkat klien yang namanya dimulai dengan MyClientDevice untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }

contoh Contoh: Pembaruan gabungan konfigurasi (menggunakan kebijakan permisif)

Contoh konfigurasi berikut menentukan untuk memungkinkan semua perangkat klien untuk menyambung dan mempublikasikan/berlangganan semua topik.

{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }

File log lokal

Komponen menggunakan file log yang sama sepertiInti Greengrasskomponen.

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.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/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

Versi

Perubahan

2.2.2

Perbaikan bug dan peningkatan
  • Memperbaiki masalah di mana sertifikat server MQTT lokal berputar lebih sering daripada yang dimaksudkan dalam skenario tertentu.

2.2.1

Versi yang diperbarui untuk rilis inti Greengrass versi 2.7.0.

2.2.0

Fitur baru
  • Menambahkan dukungan untuk komponen kustom untuk memanggil operasi interprocess communication (IPC) untuk mengotentikasi dan mengotorisasi perangkat klien. Anda dapat menggunakan operasi ini dalam komponen broker MQTT kustom, misalnya. Untuk informasi selengkapnya, lihatIPC: Mengautentikasi dan mengotorisasi perangkat klien.

  • TambahkanmaxActiveAuthTokens,cloudQueueSize, danthreadPoolSizeopsi yang dapat Anda konfigurasi untuk menyesuaikan kinerja komponen ini.

2.1.0

Fitur baru
  • TambahkanserverCertificateValiditySecondsopsi yang dapat Anda konfigurasikan untuk menyesuaikan ketika sertifikat server broker MQTT kedaluwarsa. Anda dapat mengonfigurasi sertifikat server untuk kedaluwarsa setelah 2 hingga 10 hari.

Perbaikan bug dan peningkatan
  • Memperbaiki masalah dengan bagaimana komponen ini menangani pembaruan pengaturan ulang konfigurasi.

  • Memperbaiki masalah di mana sertifikat server MQTT lokal berputar lebih sering daripada yang dimaksudkan dalam skenario tertentu.

    Untuk menerapkan perbaikan ini, Anda juga harus menggunakan v2.1.0 atau yang lebih baru dariKomponen broker MQTT Moquette.

  • Meningkatkan pesan yang log komponen ini saat memutar sertifikat.

  • Versi yang diperbarui untuk rilis inti Greengrass versi 2.6.0.

2.0.4

Versi yang diperbarui untuk rilis inti Greengrass versi 2.5.0.

2.0.3

Perbaikan bug dan peningkatan
  • Kredensial sekarang disegarkan jika Anda memutar kunci pribadi perangkat inti.

  • Pembaruan untuk membuat pesan log lebih jelas.

2.0.2

Versi yang diperbarui untuk rilis inti Greengrass versi 2.4.0.

2.0.1

Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0.

2.0.0

Versi awal.