Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Grup benda statis
Grup hal statis memungkinkan Anda mengelola beberapa hal sekaligus dengan mengkategorikannya ke dalam kelompok. Grup hal statis berisi sekelompok hal yang dikelola dengan menggunakan konsol, CLI, atau API. Grup benda dinamis, di sisi lain, berisi hal-hal yang cocok dengan kueri tertentu. Grup hal statis juga dapat berisi grup benda statis lainnya - Anda dapat membangun hierarki grup. Anda dapat melampirkan kebijakan ke grup induk dan kebijakan tersebut diwarisi oleh grup turunannya, dan oleh semua hal dalam grup dan grup turunannya. Ini membuat kontrol izin mudah untuk sejumlah besar hal.
catatan
Kebijakan grup hal tidak mengizinkan akses ke operasi bidang AWS IoT Greengrass data. Untuk mengizinkan suatu benda mengakses operasi bidang AWS IoT Greengrass data, tambahkan izin ke AWS IoT kebijakan yang Anda lampirkan ke sertifikat benda tersebut. Untuk informasi selengkapnya, lihat Otentikasi dan otorisasi perangkat di panduan AWS IoT Greengrass pengembang.
Berikut adalah hal-hal yang dapat Anda lakukan dengan grup hal statis:
-
Buat, jelaskan, atau hapus grup.
-
Tambahkan sesuatu ke grup, atau ke lebih dari satu grup.
-
Hapus sesuatu dari grup.
-
Buat daftar grup yang telah Anda buat.
-
Daftar semua kelompok anak dari suatu kelompok (keturunan langsung dan tidak langsungnya.)
-
Buat daftar hal-hal dalam grup, termasuk semua hal dalam kelompok anaknya.
-
Daftar semua kelompok leluhur suatu kelompok (orang tua langsung dan tidak langsungnya.)
-
Tambahkan, hapus, atau perbarui atribut grup. (Atribut adalah pasangan nama-nilai yang dapat Anda gunakan untuk menyimpan informasi tentang grup.)
-
Melampirkan atau lepaskan kebijakan ke atau dari grup.
-
Buat daftar kebijakan yang dilampirkan ke grup.
-
Buat daftar kebijakan yang diwarisi oleh suatu benda (berdasarkan kebijakan yang melekat pada grupnya, atau salah satu grup induknya.)
-
Konfigurasikan opsi logging untuk hal-hal dalam grup. Lihat Konfigurasi AWS IoT pencatatan log.
-
Buat pekerjaan yang dikirim ke dan dieksekusi pada setiap hal dalam grup dan grup turunannya. Lihat AWS IoT Lowongan Kerja.
catatan
Ketika sesuatu dilampirkan ke grup benda statis yang AWS IoT Core dilampirkan kebijakan, nama benda harus cocok dengan ID klien.
Berikut adalah beberapa keterbatasan kelompok benda statis:
-
Sebuah kelompok dapat memiliki paling banyak satu orang tua langsung.
-
Jika grup adalah anak dari grup lain, tentukan ini pada saat grup dibuat.
-
Anda tidak dapat mengubah induk grup nanti, jadi pastikan untuk merencanakan hierarki grup Anda dan membuat grup induk sebelum Anda membuat grup turunan apa pun yang dikandungnya.
-
Jumlah kelompok yang dapat dimiliki suatu benda terbatas.
-
Anda tidak dapat menambahkan sesuatu ke lebih dari satu grup dalam hierarki yang sama. (Dengan kata lain, Anda tidak dapat menambahkan sesuatu ke dua grup yang memiliki orang tua yang sama.)
-
Anda tidak dapat mengganti nama grup.
-
Nama grup benda tidak dapat berisi karakter internasional, seperti û, é dan ñ.
-
Jangan gunakan informasi identitas pribadi dalam nama grup barang Anda. Nama grup benda dapat muncul dalam komunikasi dan laporan yang tidak terenkripsi.
Melampirkan dan melepaskan kebijakan ke grup dapat meningkatkan keamanan AWS IoT operasi Anda dalam sejumlah cara yang signifikan. Metode per perangkat untuk melampirkan kebijakan ke sertifikat, yang kemudian dilampirkan ke sesuatu, memakan waktu dan membuatnya sulit untuk memperbarui atau mengubah kebijakan dengan cepat di seluruh armada perangkat. Memiliki kebijakan yang dilampirkan ke grup benda menyimpan langkah-langkah ketika tiba saatnya untuk memutar sertifikat pada sesuatu. Dan kebijakan diterapkan secara dinamis pada hal-hal ketika mereka mengubah keanggotaan grup, jadi Anda tidak perlu membuat ulang kumpulan izin yang rumit setiap kali perangkat mengubah keanggotaan dalam grup.
Buat grup benda statis
Gunakan CreateThingGroup perintah untuk membuat grup benda statis:
$ aws iot create-thing-group --thing-group-name LightBulbs
Per CreateThingGroup intah mengembalikan respons yang berisi nama grup benda statis, ID, dan ARN:
{ "thingGroupName": "LightBulbs", "thingGroupId": "abcdefgh12345678ijklmnop12345678qrstuvwx", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" }
catatan
Kami tidak menyarankan menggunakan informasi identitas pribadi dalam nama grup barang Anda.
Berikut adalah contoh yang menentukan induk dari grup benda statis saat dibuat:
$ aws iot create-thing-group --thing-group-name RedLights --parent-group-name LightBulbs
Seperti sebelumnya, CreateThingGroup perintah mengembalikan respons yang berisi nama grup benda statis, ID, dan ARN:
{ "thingGroupName": "RedLights", "thingGroupId": "abcdefgh12345678ijklmnop12345678qrstuvwx", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights", }
penting
Ingatlah batasan berikut saat membuat hierarki grup benda:
-
Suatu kelompok benda hanya dapat memiliki satu orang tua langsung.
-
Jumlah kelompok anak langsung yang dapat dimiliki kelompok benda terbatas.
-
Kedalaman maksimum hierarki grup terbatas.
-
Jumlah atribut yang dapat dimiliki kelompok benda terbatas. (Atribut adalah pasangan nama-nilai yang dapat Anda gunakan untuk menyimpan informasi tentang grup.) Panjang setiap nama atribut dan setiap nilai juga terbatas.
Jelaskan kelompok benda
Anda dapat menggunakan DescribeThingGroup perintah untuk mendapatkan informasi tentang grup benda:
$ aws iot describe-thing-group --thing-group-name RedLights
Per DescribeThingGroup intah mengembalikan informasi tentang grup yang ditentukan:
{ "thingGroupName": "RedLights", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights", "thingGroupId": "12345678abcdefgh12345678ijklmnop12345678", "version": 1, "thingGroupMetadata": { "creationDate": 1478299948.882 "parentGroupName": "Lights", "rootToParentThingGroups": [ { "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/ShinyObjects", "groupName": "ShinyObjects" }, { "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs", "groupName": "LightBulbs" } ] }, "thingGroupProperties": { "attributePayload": { "attributes": { "brightness": "3400_lumens" }, }, "thingGroupDescription": "string" }, }
Menambahkan sesuatu ke grup benda statis
Anda dapat menggunakan AddThingToThingGroup perintah untuk menambahkan sesuatu ke grup benda statis:
$ aws iot add-thing-to-thing-group --thing-name MyLightBulb --thing-group-name RedLights
Per AddThingToThingGroup intah tidak menghasilkan output apa pun.
penting
Anda dapat menambahkan sesuatu ke maksimal 10 grup. Tetapi Anda tidak dapat menambahkan sesuatu ke lebih dari satu grup dalam hierarki yang sama. (Dengan kata lain, Anda tidak dapat menambahkan sesuatu ke dua grup yang memiliki orang tua yang sama.)
Jika suatu benda termasuk dalam grup benda sebanyak mungkin, dan satu atau lebih grup tersebut adalah grup benda dinamis, Anda dapat menggunakan overrideDynamicGroups flag untuk membuat grup statis lebih diprioritaskan daripada grup dinamis.
Menghapus sesuatu dari grup benda statis
Anda dapat menggunakan RemoveThingFromThingGroup perintah untuk menghapus sesuatu dari grup:
$ aws iot remove-thing-from-thing-group --thing-name MyLightBulb --thing-group-name RedLights
Per RemoveThingFromThingGroup intah tidak menghasilkan output apa pun.
Daftar hal-hal dalam kelompok benda
Anda dapat menggunakan ListThingsInThingGroup perintah untuk membuat daftar hal-hal yang termasuk dalam grup:
$ aws iot list-things-in-thing-group --thing-group-name LightBulbs
Per ListThingsInThingGroup intah mengembalikan daftar hal-hal dalam grup yang diberikan:
{ "things":[ "TestThingA" ] }
Dengan --recursive parameter, Anda dapat membuat daftar hal-hal yang termasuk dalam grup dan yang ada di salah satu grup turunannya:
$ aws iot list-things-in-thing-group --thing-group-name LightBulbs --recursive
{ "things":[ "TestThingA", "MyLightBulb" ] }
catatan
Operasi ini akhirnya konsisten
Daftar kelompok benda
Anda dapat menggunakan ListThingGroups perintah untuk membuat daftar grup hal akun Anda:
$ aws iot list-thing-groups
Per ListThingGroups intah mengembalikan daftar grup hal di Akun AWS:
{ "thingGroups": [ { "groupName": "LightBulbs", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" }, { "groupName": "RedLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights" }, { "groupName": "RedLEDLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLEDLights" }, { "groupName": "RedIncandescentLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedIncandescentLights" } { "groupName": "ReplaceableObjects", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/ReplaceableObjects" } ] }
Gunakan filter opsional untuk membuat daftar grup yang memiliki grup tertentu sebagai induk (--parent-group) atau grup yang namanya dimulai dengan awalan tertentu (--name-prefix-filter.) --recursiveParameter ini memungkinkan Anda untuk membuat daftar semua kelompok anak, bukan hanya kelompok anak langsung dari kelompok benda:
$ aws iot list-thing-groups --parent-group LightBulbs
Dalam hal ini, ListThingGroups perintah mengembalikan daftar grup turunan langsung dari grup benda yang ditentukan dalam Akun AWS:
{ "childGroups":[ { "groupName": "RedLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights" } ] }
Gunakan --recursive parameter dengan ListThingGroups perintah untuk membuat daftar semua kelompok anak dari grup benda, bukan hanya anak langsung:
$ aws iot list-thing-groups --parent-group LightBulbs --recursive
Per ListThingGroups intah mengembalikan daftar semua kelompok anak dari grup benda:
{ "childGroups":[ { "groupName": "RedLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights" }, { "groupName": "RedLEDLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLEDLights" }, { "groupName": "RedIncandescentLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedIncandescentLights" } ] }
catatan
Operasi ini akhirnya konsisten
Daftar grup untuk suatu hal
Anda dapat menggunakan ListThingGroupsForThing perintah untuk membuat daftar grup langsung yang dimiliki suatu benda:
$ aws iot list-thing-groups-for-thing --thing-name MyLightBulb
Per ListThingGroupsForThing intah mengembalikan daftar grup benda langsung yang dimiliki benda ini:
{ "thingGroups":[ { "groupName": "LightBulbs", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" }, { "groupName": "RedLights", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights" }, { "groupName": "ReplaceableObjects", "groupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/ReplaceableObjects" } ] }
Anda juga dapat mengakses API ini dalam mesin aturan menggunakan fungsi inlineget_registry_data(). Anda dapat menggunakan fungsi ini untuk mengakses dan memanfaatkan informasi registri benda secara dinamis (termasuk atribut, jenis benda, dan keanggotaan grup) dengan memanggil DescribeThing dan ListThingGroupsForThing API secara langsung dalam AWS IoT aturan, memungkinkan pemrosesan pesan real-time dan perutean berdasarkan data registri perangkat Anda. Untuk informasi selengkapnya, lihat get_registry_data.
Memperbarui grup benda statis
Anda dapat menggunakan UpdateThingGroup perintah untuk memperbarui atribut grup benda statis:
$ aws iot update-thing-group --thing-group-name "LightBulbs" --thing-group-properties "thingGroupDescription=\"this is a test group\", attributePayload=\"{\"attributes\"={\"Owner\"=\"150\",\"modelNames\"=\"456\"}}"
Per UpdateThingGroup intah mengembalikan respons yang berisi nomor versi grup setelah pembaruan:
{ "version": 4 }
catatan
Jumlah atribut yang dapat dimiliki sesuatu terbatas.
Menghapus grup benda
Untuk menghapus grup benda, gunakan DeleteThingGroup perintah:
$ aws iot delete-thing-group --thing-group-name "RedLights"
Per DeleteThingGroup intah tidak menghasilkan output apa pun.
penting
Jika Anda mencoba menghapus grup benda yang memiliki grup benda turunan, Anda menerima kesalahan:
A client error (InvalidRequestException) occurred when calling the DeleteThingGroup operation: Cannot delete thing group : RedLights when there are still child groups attached to it.
Sebelum Anda menghapus grup, hapus grup anak terlebih dahulu.
Anda dapat menghapus grup yang memiliki hal-hal turunan, tetapi izin apa pun yang diberikan kepada hal-hal tersebut oleh keanggotaan dalam grup tidak lagi berlaku. Sebelum menghapus grup yang memiliki kebijakan terlampir, periksa dengan cermat apakah menghapus izin tersebut tidak akan menghentikan hal-hal dalam grup agar tidak dapat berfungsi dengan baik. Juga, perintah yang menunjukkan grup mana yang dimiliki suatu benda (misalnya,ListGroupsForThing) mungkin terus menampilkan grup saat catatan di cloud sedang diperbarui.
Melampirkan kebijakan ke grup benda statis
Anda dapat menggunakan AttachPolicy perintah untuk melampirkan kebijakan ke grup benda statis dan, secara ekstensi, ke semua hal dalam grup itu dan hal-hal di salah satu grup turunannya:
$ aws iot attach-policy \ --target "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" \ --policy-name "myLightBulbPolicy"
Per AttachPolicy intah tidak menghasilkan output apa pun
penting
Anda dapat melampirkan jumlah maksimum dua kebijakan ke grup.
catatan
Kami tidak menyarankan menggunakan informasi identitas pribadi dalam nama kebijakan Anda.
--targetParameter dapat berupa grup benda ARN (seperti di atas), sertifikat ARN, atau Identitas Amazon Cognito. Untuk informasi selengkapnya tentang kebijakan, sertifikat, dan otentikasi, lihatAutentikasi.
Untuk informasi selengkapnya, lihat AWS IoT Core kebijakan.
Melepaskan kebijakan dari grup benda statis
Anda dapat menggunakan DetachPolicy perintah untuk melepaskan kebijakan dari grup dan, secara ekstensi, untuk semua hal dalam grup itu dan hal-hal di salah satu grup turunannya:
$ aws iot detach-policy --target "arn:aws:iot:us-west-2:123456789012:thinggroup/LightBulbs" --policy-name "myLightBulbPolicy"
Per DetachPolicy intah tidak menghasilkan output apa pun.
Buat daftar kebijakan yang dilampirkan ke grup benda statis
Anda dapat menggunakan ListAttachedPolicies perintah untuk membuat daftar kebijakan yang dilampirkan ke grup benda statis:
$ aws iot list-attached-policies --target "arn:aws:iot:us-west-2:123456789012:thinggroup/RedLights"
--targetParameter dapat berupa grup benda ARN (seperti di atas), sertifikat ARN, atau identitas Amazon Cognito.
Tambahkan --recursive parameter opsional untuk menyertakan semua kebijakan yang dilampirkan ke grup induk grup.
Per ListAttachedPolicies intah mengembalikan daftar kebijakan:
{ "policies": [ "MyLightBulbPolicy" ... ] }
Daftar grup untuk kebijakan
Anda dapat menggunakan ListTargetsForPolicy perintah untuk mencantumkan target, termasuk grup apa pun, yang dilampirkan kebijakan:
$ aws iot list-targets-for-policy --policy-name "MyLightBulbPolicy"
Tambahkan --page-size parameter opsional untuk menentukan jumlah maksimum hasil yang akan dikembalikan untuk setiap kueri, dan number--marker parameter pada panggilan berikutnya untuk mengambil set hasil berikutnya, jika ada.string
Per ListTargetsForPolicy intah mengembalikan daftar target dan token yang akan digunakan untuk mengambil lebih banyak hasil:
{ "nextMarker": "string", "targets": [ "string" ... ] }
Dapatkan kebijakan yang efektif untuk suatu hal
Anda dapat menggunakan GetEffectivePolicies perintah untuk membuat daftar kebijakan yang berlaku untuk suatu hal, termasuk kebijakan yang dilampirkan ke grup mana pun yang dimiliki benda tersebut (apakah grup tersebut adalah induk langsung atau nenek moyang tidak langsung):
$ aws iot get-effective-policies \ --thing-name "MyLightBulb" \ --principal "arn:aws:iot:us-east-1:123456789012:cert/a0c01f5835079de0a7514643d68ef8414ab739a1e94ee4162977b02b12842847"
Gunakan --principal parameter untuk menentukan ARN sertifikat yang dilampirkan pada benda itu. Jika Anda menggunakan otentikasi identitas Amazon Cognito, gunakan --cognito-identity-pool-id parameter dan, secara opsional, tambahkan --principal parameter untuk menentukan identitas Amazon Cognito. Jika Anda hanya menentukan--cognito-identity-pool-id, kebijakan yang terkait dengan peran kumpulan identitas tersebut untuk pengguna yang tidak diautentikasi akan dikembalikan. Jika Anda menggunakan keduanya, kebijakan yang terkait dengan peran kumpulan identitas tersebut untuk pengguna yang diautentikasi akan dikembalikan.
--thing-nameParameter ini opsional dan dapat digunakan sebagai pengganti --principal parameter. Saat digunakan, kebijakan yang dilampirkan ke grup mana pun yang dimiliki benda tersebut, dan kebijakan yang dilampirkan ke grup induk dari grup ini (hingga grup root dalam hierarki) dikembalikan.
Per GetEffectivePolicies intah mengembalikan daftar kebijakan:
{ "effectivePolicies": [ { "policyArn": "string", "policyDocument": "string", "policyName": "string" } ... ] }
Uji otorisasi untuk tindakan MQTT
Anda dapat menggunakan TestAuthorization perintah untuk menguji apakah tindakan MQTT (Publish,Subscribe) diizinkan untuk sesuatu:
aws iot test-authorization \ --principal "arn:aws:iot:us-east-1:123456789012:cert/a0c01f5835079de0a7514643d68ef8414ab739a1e94ee4162977b02b12842847" \ --auth-infos "{\"actionType\": \"PUBLISH\", \"resources\": [ \"arn:aws:iot:us-east-1:123456789012:topic/my/topic\"]}"
Gunakan --principal parameter untuk menentukan ARN sertifikat yang dilampirkan pada benda itu. Jika menggunakan otentikasi Identitas Amazon Cognito, tentukan Identitas Cognito sebagai --principal atau gunakan --cognito-identity-pool-id parameter, atau keduanya. (Jika Anda hanya menentukan --cognito-identity-pool-id maka kebijakan yang terkait dengan peran kumpulan identitas tersebut untuk pengguna yang tidak diautentikasi akan dipertimbangkan. Jika Anda menggunakan keduanya, kebijakan yang terkait dengan peran kumpulan identitas tersebut untuk pengguna yang diautentikasi akan dipertimbangkan.
Tentukan satu atau beberapa tindakan MQTT yang ingin Anda uji dengan mencantumkan kumpulan sumber daya dan jenis tindakan mengikuti --auth-infos parameter. Bid actionType ang harus berisi “PUBLISH”, “SUBSCRIBE”, “RECEIVE”, atau “CONNECT”. Bid resources ang harus berisi daftar ARN sumber daya. Untuk informasi selengkapnya, lihat AWS IoT Core kebijakan-kebijakan.
Anda dapat menguji efek penambahan kebijakan dengan menentukannya dengan --policy-names-to-add parameter. Atau Anda dapat menguji efek penghapusan kebijakan oleh mereka dengan --policy-names-to-skip parameter.
Anda dapat menggunakan --client-id parameter opsional untuk lebih menyempurnakan hasil Anda.
Per TestAuthorization intah mengembalikan detail tindakan yang diizinkan atau ditolak untuk setiap kumpulan --auth-infos kueri yang Anda tentukan:
{ "authResults": [ { "allowed": { "policies": [ { "policyArn": "string", "policyName": "string" } ] }, "authDecision": "string", "authInfo": { "actionType": "string", "resources": [ "string" ] }, "denied": { "explicitDeny": { "policies": [ { "policyArn": "string", "policyName": "string" } ] }, "implicitDeny": { "policies": [ { "policyArn": "string", "policyName": "string" } ] } }, "missingContextValues": [ "string" ] } ] }