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

catatan

Autentikasi perangkat klien versi 2.3.0 telah dihentikan. Kami sangat menyarankan Anda meningkatkan ke autentikasi perangkat klien versi 2.3.1 atau yang lebih baru.

Komponen ini memiliki versi berikut:

  • 2.4.x

  • 2.3.x

  • 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. Nukleus 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 Memantau AWS IoT Greengrass log.

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 termasuk ARN perangkat inti yang menjalankan komponen ini

    • greengrass:VerifyClientDeviceIoTCertificateAssociation, di mana sumber daya menyertakan Nama Sumber Daya Amazon (ARN) dari setiap perangkat klien yang terhubung 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 mencakup 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 mencakup ARN dari topik MQTT berikut:

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

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

    Lihat informasi yang lebih lengkap di Kebijakan AWS IoT untuk operasi bidang data dan Kebijakan AWS IoT minimal untuk mendukung perangkat klien.

  • (Opsional) Untuk menggunakan otentikasi offline, peran AWS Identity and Access Management (IAM) yang digunakan oleh AWS IoT Greengrass layanan harus berisi izin berikut:

    • greengrass:ListClientDevicesAssociatedWithCoreDeviceuntuk mengaktifkan perangkat inti untuk daftar klien untuk otentikasi offline.

  • Komponen autentikasi perangkat klien didukung untuk berjalan di VPC. Untuk menerapkan komponen ini di VPC, berikut ini diperlukan.

    • Komponen autentikasi perangkat klien harus memiliki konektivitas keAWS IoT data, AWS IoT Kredensial, dan Amazon S3.

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 tentang sertifikat AWS IoT barang.

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.4.4

Tabel berikut mencantumkan dependensi untuk versi 2.4.4 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.0 <2.13.0 Lunak
2.4.3

Tabel berikut mencantumkan dependensi untuk versi 2.4.3 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.0 <2.12.0 Lunak
2.4.1 and 2.4.2

Tabel berikut mencantumkan dependensi untuk versi 2.4.1 dan 2.4.2 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.0 <2.11.0 Lunak
2.3.0 – 2.4.0

Tabel berikut mencantumkan dependensi untuk versi 2.3.0 hingga 2.4.0 dari komponen ini.

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

Tabel berikut mencantumkan dependensi untuk versi 2.3.0 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.0 <2.10.0 Lunak
2.2.3

Tabel berikut mencantumkan dependensi untuk versi 2.2.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.0 <=2.9.0 Lunak
2.2.2

Tabel berikut mencantumkan dependensi untuk versi 2.2.2 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.6.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 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.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.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 Lunak
2.0.2 and 2.0.3

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

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.2.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.4.5
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

Gunakan wildcard * untuk mencocokkan beberapa perangkat klien dengan satu pilihan klausul aturan. Anda dapat menggunakan wildcard ini di awal dan akhir nama benda untuk mencocokkan perangkat klien yang namanya dimulai atau diakhiri 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 seleksi (gunakan wildcard)

Aturan pemilihan berikut cocok dengan perangkat klien yang namanya diakhiri denganMyClientDevice.

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 mereka.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimum AWS Cloud permintaan untuk mengantri sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

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

Default: 1

certificateAuthority

(Opsional) Opsi konfigurasi otoritas sertifikat untuk mengganti otoritas perantara perangkat inti dengan otoritas sertifikat perantara Anda sendiri.

catatan

Jika Anda mengonfigurasi perangkat inti Greengrass Anda dengan otoritas sertifikat khusus (CA) dan menggunakan CA yang sama untuk menerbitkan sertifikat perangkat klien, Greengrass melewati pemeriksaan kebijakan otorisasi untuk operasi MQTT perangkat klien. Komponen autentikasi perangkat klien sepenuhnya mempercayai klien menggunakan sertifikat yang ditandatangani oleh CA yang dikonfigurasi untuk digunakan.

Untuk membatasi perilaku ini saat menggunakan CA kustom, buat dan tandatangani perangkat klien menggunakan CA atau CA perantara yang berbeda, lalu sesuaikan certificateChainUri bidang certificateUri dan untuk menunjuk ke CA perantara yang benar.

Objek ini berisi informasi berikut.

CertificateURI

Lokasi sertifikat. Ini bisa berupa URI sistem file atau URI yang menunjuk ke sertifikat yang disimpan dalam modul keamanan perangkat keras.

certificateChainUri

Lokasi rantai sertifikat untuk perangkat inti CA. Ini harus menjadi rantai sertifikat lengkap kembali ke CA root Anda. Ini bisa berupa URI sistem file atau URI yang menunjuk ke rantai sertifikat yang disimpan dalam modul keamanan perangkat keras.

privateKeyUri

Lokasi kunci pribadi perangkat inti. Ini bisa berupa URI sistem file atau URI yang menunjuk ke kunci pribadi sertifikat yang disimpan dalam modul keamanan perangkat keras.

security

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

clientDeviceTrustDurationMinutes

Durasi dalam hitungan menit bahwa informasi otentikasi perangkat klien dapat dipercaya sebelum diperlukan untuk mengautentikasi ulang dengan perangkat inti. Nilai default adalah 1.

metrics

(Opsional) Opsi metrik untuk perangkat inti ini. Metrik kesalahan hanya akan ditampilkan jika ada kesalahan dengan autentikasi perangkat klien. Objek ini berisi informasi berikut:

disableMetrics

Jika disableMetrics bidang disetel sebagaitrue, autentikasi perangkat klien tidak akan mengumpulkan metrik.

Default: false

aggregatePeriodSeconds

Periode agregasi dalam hitungan detik yang menentukan seberapa sering autentikasi perangkat klien mengumpulkan metrik dan mengirimkannya ke agen telemetri. Ini tidak mengubah seberapa sering metrik diterbitkan karena agen telemetri masih menerbitkannya sekali sehari.

Default: 3600

startupTimeoutSeconds

(Opsional) Maksimum waktu dalam hitungan detik untuk memulai komponen. Status komponen berubah menjadi BROKEN jika melebihi batas waktu ini.

Default: 120

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 terhubung dan mempublikasikan/berlangganan pada 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.4.2 - v2.4.4
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 mereka.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimum AWS Cloud permintaan untuk mengantri sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

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

Default: 1

certificateAuthority

(Opsional) Opsi konfigurasi otoritas sertifikat untuk mengganti otoritas perantara perangkat inti dengan otoritas sertifikat perantara Anda sendiri.

catatan

Jika Anda mengonfigurasi perangkat inti Greengrass Anda dengan otoritas sertifikat khusus (CA) dan menggunakan CA yang sama untuk menerbitkan sertifikat perangkat klien, Greengrass melewati pemeriksaan kebijakan otorisasi untuk operasi MQTT perangkat klien. Komponen autentikasi perangkat klien sepenuhnya mempercayai klien menggunakan sertifikat yang ditandatangani oleh CA yang dikonfigurasi untuk digunakan.

Untuk membatasi perilaku ini saat menggunakan CA kustom, buat dan tandatangani perangkat klien menggunakan CA atau CA perantara yang berbeda, lalu sesuaikan certificateChainUri bidang certificateUri dan untuk menunjuk ke CA perantara yang benar.

Objek ini berisi informasi berikut.

CertificateURI

Lokasi sertifikat. Ini bisa berupa URI sistem file atau URI yang menunjuk ke sertifikat yang disimpan dalam modul keamanan perangkat keras.

certificateChainUri

Lokasi rantai sertifikat untuk perangkat inti CA. Ini harus menjadi rantai sertifikat lengkap kembali ke CA root Anda. Ini bisa berupa URI sistem file atau URI yang menunjuk ke rantai sertifikat yang disimpan dalam modul keamanan perangkat keras.

privateKeyUri

Lokasi kunci pribadi perangkat inti. Ini bisa berupa URI sistem file atau URI yang menunjuk ke kunci pribadi sertifikat yang disimpan dalam modul keamanan perangkat keras.

security

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

clientDeviceTrustDurationMinutes

Durasi dalam hitungan menit bahwa informasi otentikasi perangkat klien dapat dipercaya sebelum diperlukan untuk mengautentikasi ulang dengan perangkat inti. Nilai default adalah 1.

metrics

(Opsional) Opsi metrik untuk perangkat inti ini. Metrik kesalahan hanya akan ditampilkan jika ada kesalahan dengan autentikasi perangkat klien. Objek ini berisi informasi berikut:

disableMetrics

Jika disableMetrics bidang disetel sebagaitrue, autentikasi perangkat klien tidak akan mengumpulkan metrik.

Default: false

aggregatePeriodSeconds

Periode agregasi dalam hitungan detik yang menentukan seberapa sering autentikasi perangkat klien mengumpulkan metrik dan mengirimkannya ke agen telemetri. Ini tidak mengubah seberapa sering metrik diterbitkan karena agen telemetri masih menerbitkannya sekali sehari.

Default: 3600

startupTimeoutSeconds

(Opsional) Maksimum waktu dalam hitungan detik untuk memulai komponen. Status komponen berubah menjadi BROKEN jika melebihi batas waktu ini.

Default: 120

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 terhubung dan mempublikasikan/berlangganan pada 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.4.0 - v2.4.1
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 mereka.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimum AWS Cloud permintaan untuk mengantri sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

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

Default: 1

certificateAuthority

(Opsional) Opsi konfigurasi otoritas sertifikat untuk mengganti otoritas perantara perangkat inti dengan otoritas sertifikat perantara Anda sendiri. Objek ini berisi informasi berikut.

Objek ini berisi informasi berikut:

CertificateURI

Lokasi sertifikat. Ini bisa berupa URI sistem file atau URI yang menunjuk ke sertifikat yang disimpan dalam modul keamanan perangkat keras.

certificateChainUri

Lokasi rantai sertifikat untuk perangkat inti CA. Ini harus menjadi rantai sertifikat lengkap kembali ke CA root Anda. Ini bisa berupa URI sistem file atau URI yang menunjuk ke rantai sertifikat yang disimpan dalam modul keamanan perangkat keras.

privateKeyUri

Lokasi kunci pribadi perangkat inti. Ini bisa berupa URI sistem file atau URI yang menunjuk ke kunci pribadi sertifikat yang disimpan dalam modul keamanan perangkat keras.

security

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

clientDeviceTrustDurationMinutes

Durasi dalam hitungan menit bahwa informasi otentikasi perangkat klien dapat dipercaya sebelum diperlukan untuk mengautentikasi ulang dengan perangkat inti. Nilai default adalah 1.

metrics

(Opsional) Opsi metrik untuk perangkat inti ini. Metrik kesalahan hanya akan ditampilkan jika ada kesalahan dengan autentikasi perangkat klien. Objek ini berisi informasi berikut:

disableMetrics

Jika disableMetrics bidang disetel sebagaitrue, autentikasi perangkat klien tidak akan mengumpulkan metrik.

Default: false

aggregatePeriodSeconds

Periode agregasi dalam hitungan detik yang menentukan seberapa sering autentikasi perangkat klien mengumpulkan metrik dan mengirimkannya ke agen telemetri. Ini tidak mengubah seberapa sering metrik diterbitkan karena agen telemetri masih menerbitkannya sekali sehari.

Default: 3600

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 terhubung dan mempublikasikan/berlangganan pada 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.3.x
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 mereka.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimum AWS Cloud permintaan untuk mengantri sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

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

Default: 1

certificateAuthority

(Opsional) Opsi konfigurasi otoritas sertifikat untuk mengganti otoritas perantara perangkat inti dengan otoritas sertifikat perantara Anda sendiri. Objek ini berisi informasi berikut.

CertificateURI

Lokasi sertifikat. Ini bisa berupa URI sistem file atau URI yang menunjuk ke sertifikat yang disimpan dalam modul keamanan perangkat keras.

certificateChainUri

Lokasi rantai sertifikat untuk perangkat inti CA. Ini harus menjadi rantai sertifikat lengkap kembali ke CA root Anda. Ini bisa berupa URI sistem file atau URI yang menunjuk ke rantai sertifikat yang disimpan dalam modul keamanan perangkat keras.

privateKeyUri

Lokasi kunci pribadi perangkat inti. Ini bisa berupa URI sistem file atau URI yang menunjuk ke kunci pribadi sertifikat yang disimpan dalam modul keamanan perangkat keras.

security

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

clientDeviceTrustDurationMinutes

Durasi dalam hitungan menit bahwa informasi otentikasi perangkat klien dapat dipercaya sebelum diperlukan untuk mengautentikasi ulang dengan perangkat inti. Nilai default adalah 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 terhubung dan mempublikasikan/berlangganan pada 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.2.x
deviceGroups

Grup perangkat adalah grup perangkat klien yang memiliki izin untuk menyambung dan berkomunikasi dengan perangkat inti. Gunakan aturan pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 mereka.

Default: 2500

cloudRequestQueueSize

(Opsional) Jumlah maksimum AWS Cloud permintaan untuk mengantri sebelum komponen ini menolak permintaan.

Default: 100

maxConcurrentCloudRequests

(Opsional) Jumlah maksimum permintaan bersamaan untuk dikirim ke. AWS Cloud Anda dapat meningkatkan angka 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 terhubung dan mempublikasikan/berlangganan pada 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 pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 kedaluwarsa. Anda dapat mengonfigurasi opsi ini untuk menyesuaikan seberapa sering perangkat klien memutuskan sambungan dan menyambung kembali ke perangkat inti.

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

Default: 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 terhubung dan mempublikasikan/berlangganan pada 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 pemilihan untuk mengidentifikasi grup perangkat klien, dan menentukan kebijakan otorisasi perangkat klien yang 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 menentukan aturan pemilihan untuk mengevaluasi apakah perangkat klien adalah anggota grup. Setiap definisi juga menentukan kebijakan izin yang akan diterapkan ke perangkat klien yang cocok dengan aturan pemilihan. 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. Ganti groupNameKeydengan nama yang membantu Anda mengidentifikasi grup perangkat ini.

Objek ini berisi informasi berikut:

selectionRule

Kueri yang menentukan perangkat klien mana yang menjadi anggota grup perangkat ini. Saat perangkat klien terhubung, perangkat inti mengevaluasi aturan pemilihan ini untuk menentukan apakah perangkat klien adalah anggota grup perangkat ini. Jika perangkat klien adalah anggota, perangkat inti akan menggunakan kebijakan grup perangkat ini untuk mengotorisasi tindakan perangkat klien.

Setiap aturan pemilihan terdiri dari setidaknya satu klausa aturan pemilihan, yang merupakan kueri ekspresi tunggal yang dapat mencocokkan perangkat klien. Aturan pemilihan menggunakan sintaks kueri yang sama dengan pengindeksan AWS IoT armada. Untuk informasi selengkapnya tentang sintaks aturan pemilihan, lihat sintaks kueri pengindeksan AWS IoT armada di Panduan Pengembang. AWS IoT Core

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 terhubung ke perangkat inti. Setiap kebijakan otorisasi menentukan serangkaian tindakan dan sumber daya tempat perangkat klien dapat melakukan tindakan tersebut.

Objek ini berisi informasi berikut:

policyNameKey

Nama kebijakan otorisasi ini. Ganti policyNameKeydengan 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. Ganti statementNameKeydengan 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. Ganti deviceClientIddengan 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. Ganti mqttTopicFilterdengan 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 terhubung dan mempublikasikan/berlangganan pada 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 ini menggunakan file log yang sama dengan komponen inti Greengrass.

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/v2 atau C:\greengrass\v2 dengan jalur ke folder AWS IoT Greengrass root.

    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.4.5

Fitur baru

Menambahkan dukungan untuk awalan wildcard untuk memilih nama benda dengan parameter. selectionRule

Perbaikan bug dan peningkatan

Memperbaiki masalah saat sertifikat tidak diperbarui dengan informasi konektivitas baru dalam kasus tertentu.

2.4.4

Versi diperbarui untuk Greengrass nucleus versi 2.12.0 rilis.

2.4.3

Versi diperbarui untuk Greengrass nucleus versi 2.11.0 rilis.

2.4.2

Fitur baru

Menambahkan opsi startupTimeoutSeconds konfigurasi baru.

2.4.1

Versi diperbarui untuk Greengrass nucleus versi 2.10.0 rilis.

2.4.0

Fitur baru
  • Menambahkan dukungan untuk autentikasi perangkat klien untuk memancarkan metrik operasional yang akan diterbitkan oleh agen telemetri.

Perbaikan bug dan peningkatan
  • Memperbaiki masalah saat autentikasi perangkat klien membutuhkan waktu lebih dari 10 detik untuk memverifikasi identitas perangkat klien.

  • Peningkatan dan perbaikan kecil tambahan.

2.3.2

Perbaikan bug dan peningkatan
  • Menambahkan dukungan untuk caching informasi nama host sehingga komponen menghasilkan subjek sertifikat dengan benar saat di-restart saat offline.

2.3.1

Perbaikan bug dan peningkatan
  • Memperbaiki kebocoran memori.

2.3.0

Awas

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

Fitur baru

  • Menambahkan dukungan untuk otentikasi offline perangkat klien sehingga mereka dapat terus terhubung ke perangkat inti ketika perangkat inti tidak terhubung ke Internet.

  • Menambahkan dukungan untuk otoritas sertifikat yang disediakan pelanggan yang digunakan perangkat inti sebagai sertifikat root untuk menghasilkan sertifikat broker MQTT.

2.2.3

Versi diperbarui untuk Greengrass nucleus versi 2.8.0 rilis.

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 diperbarui untuk Greengrass nucleus versi 2.7.0 rilis.

2.2.0

Fitur baru
  • Menambahkan dukungan untuk komponen kustom untuk memanggil operasi komunikasi antarproses (IPC) untuk mengautentikasi dan mengotorisasi perangkat klien. Anda dapat menggunakan operasi ini dalam komponen broker MQTT khusus, misalnya. Untuk informasi selengkapnya, lihat IPC: Mengautentikasi dan mengotorisasi perangkat klien.

  • MenambahkanmaxActiveAuthTokens,cloudQueueSize, dan threadPoolSize opsi yang dapat Anda konfigurasikan untuk menyesuaikan kinerja komponen ini.

2.1.0

Fitur baru
  • Menambahkan serverCertificateValiditySeconds opsi yang dapat Anda konfigurasi 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 cara 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 dari komponen broker Moquette MQTT.

  • Meningkatkan pesan yang dicatat oleh komponen ini saat memutar sertifikat.

  • Versi diperbarui untuk Greengrass nucleus versi 2.6.0 rilis.

2.0.4

Versi diperbarui untuk Greengrass nucleus versi 2.5.0 rilis.

2.0.3

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

  • Pembaruan untuk membuat pesan log lebih jelas.

2.0.2

Versi diperbarui untuk Greengrass nucleus versi 2.4.0 rilis.

2.0.1

Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0.

2.0.0

Versi awal.