Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass - AWS IoT Greengrass

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

Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan armada, Anda harus terlebih dahulu menyiapkan sumber daya berikut di perangkat Anda. Akun AWS Sumber daya ini memungkinkan perangkat untuk mendaftarkan diri AWS IoT dan beroperasi sebagai perangkat inti Greengrass. Ikuti langkah-langkah di bagian ini sekali untuk membuat dan mengonfigurasi sumber daya ini di bagian AndaAkun AWS.

  • Peran IAM pertukaran token, yang digunakan perangkat inti untuk mengotorisasi panggilan ke AWS layanan.

  • Alias AWS IoT peran yang menunjuk ke peran pertukaran token.

  • (Opsional) AWS IoT Kebijakan, yang digunakan perangkat inti untuk mengotorisasi panggilan ke AWS IoT dan AWS IoT Greengrass layanan. AWS IoTKebijakan ini harus mengizinkan iot:AssumeRoleWithCertificate izin untuk alias AWS IoT peran yang menunjuk ke peran pertukaran token.

    Anda dapat menggunakan satu AWS IoT kebijakan untuk semua perangkat inti di armada Anda, atau Anda dapat mengonfigurasi templat penyediaan armada untuk membuat AWS IoT kebijakan untuk setiap perangkat inti.

  • AWS IoTTemplate penyediaan armada. Template ini harus menentukan yang berikut:

    • Sumber daya AWS IoT sesuatu. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.

    • Sumber daya AWS IoT kebijakan. Sumber daya ini dapat menentukan salah satu properti berikut:

      • Nama AWS IoT kebijakan yang ada. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan yang sama, dan Anda dapat mengelola izinnya sebagai armada.

      • Dokumen AWS IoT kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan unik, dan Anda dapat mengelola izin untuk setiap perangkat inti individual.

    • Sumber daya AWS IoT sertifikat. Sumber daya sertifikat ini harus menggunakan AWS::IoT::Certificate::Id parameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihat ust-in-time Penyediaan J di Panduan AWS IoTPengembang.

  • Sertifikat klaim AWS IoT penyediaan dan kunci pribadi untuk templat penyediaan armada. Anda dapat menyematkan sertifikat dan kunci pribadi ini di perangkat selama pembuatan, sehingga perangkat dapat mendaftar dan menyediakan sendiri ketika mereka online.

    penting

    Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat Pemantauan AWS IoT di Panduan AWS IoT Core Pengembang.

    Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat AndaAkun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. Untuk informasi selengkapnya, lihat Pra-penyediaan kait di Panduan Pengembang. AWS IoT Core

  • AWS IoTKebijakan yang Anda lampirkan ke sertifikat klaim penyediaan untuk mengizinkan perangkat mendaftar dan menggunakan templat penyediaan armada.

Buat peran pertukaran token

Perangkat inti Greengrass menggunakan peran layanan IAM, yang disebut peran pertukaran token, untuk mengotorisasi panggilan ke layanan AWS. Perangkat menggunakan penyedia AWS IoT kredensil untuk mendapatkan AWS kredensil sementara untuk peran ini, yang memungkinkan perangkat berinteraksi, mengirim log ke Amazon LogAWS IoT, dan mengunduh CloudWatch artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

Anda menggunakan alias AWS IoT peran untuk mengonfigurasi peran pertukaran token untuk perangkat inti Greengrass. Alias peran memungkinkan Anda mengubah peran pertukaran token untuk suatu perangkat tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat Mengotorisasi panggilan langsung ke layanan AWS di Panduan Developer AWS IoT Core.

Pada bagian ini, Anda membuat pertukaran token IAM role dan alias peran AWS IoT yang menunjuk ke peran tersebut. Jika Anda telah menyiapkan perangkat inti Greengrass, Anda dapat menggunakan peran pertukaran token dan alias peran alih-alih membuat yang baru.

Buat peran pertukaran token IAM role
  1. Buat peran IAM yang dapat digunakan perangkat Anda sebagai peran pertukaran token. Lakukan hal-hal berikut:

    1. Buat file yang berisi dokumen kebijakan kepercayaan yang memerlukan peran pertukaran token.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano device-role-trust-policy.json

      Salin JSON berikut ke dalam file.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Buat peran pertukaran token dengan dokumen kebijakan kepercayaan.

      • Ganti GreenGrassV2 TokenExchangeRole dengan nama peran IAM yang akan dibuat.

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. Buat file yang berisi dokumen kebijakan akses yang diperlukan oleh peran pertukaran token.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano device-role-access-policy.json

      Salin JSON berikut ke dalam file.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      catatan

      Kebijakan akses ini tidak mengizinkan akses ke artefak komponen dalam bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat Izinkan akses ke bucket S3 untuk artefak komponen.

      Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

    4. Buat kebijakan IAM dari dokumen kebijakan.

      • Ganti GreenGrassV2 TokenExchangeRoleAccess dengan nama kebijakan IAM yang akan dibuat.

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. Lampirkan kebijakan IAM untuk peran pertukaran token.

      • Ganti GreenGrassV2 TokenExchangeRole dengan nama peran IAM.

      • Ganti ARN peran dengan ARN dari kebijakan IAM yang Anda buat di langkah sebelumnya.

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

  2. Buat alias AWS IoT peran yang menunjuk ke peran pertukaran token.

    • Ganti GreengrassCoreTokenExchangeRoleAliasdengan nama alias peran yang akan dibuat.

    • Ganti ARN peran dengan ARN dari IAM role yang Anda buat di langkah sebelumnya.

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    catatan

    Untuk membuat alias peran, Anda harus memiliki izin untuk melewati IAM role pertukaran token ke AWS IoT. Jika Anda menerima pesan galat saat mencoba membuat alias peran, periksa apakah AWS pengguna Anda memiliki izin ini. Untuk informasi lebih lanjut, lihat Memberikan izin pengguna untuk meneruskan peran ke layanan AWS di Panduan Pengguna AWS Identity and Access Management.

Buat AWS IoT kebijakan

Setelah Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat tersebut dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini mencakup satu atau beberapa AWS IoT kebijakan yang menentukan izin yang dapat digunakan perangkat dengan sertifikat. Kebijakan ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT danAWS IoT Greengrass.

Dengan penyediaan AWS IoT armada, perangkat terhubung AWS IoT untuk membuat dan mengunduh sertifikat perangkat. Di templat penyediaan armada yang dibuat di bagian berikutnya, Anda dapat menentukan apakah AWS IoT melampirkan AWS IoT kebijakan yang sama ke sertifikat semua perangkat, atau membuat kebijakan baru untuk setiap perangkat.

Di bagian ini, Anda membuat AWS IoT kebijakan yang AWS IoT melekat pada semua sertifikat perangkat. Dengan pendekatan ini, Anda dapat mengelola izin untuk semua perangkat sebagai armada. Jika Anda lebih suka membuat AWS IoT kebijakan baru untuk setiap perangkat, Anda dapat melewati bagian ini, dan merujuk ke kebijakan di dalamnya saat Anda menentukan templat armada Anda.

Untuk membuat AWS IoT kebijakan
  • Buat AWS IoT kebijakan yang menentukan AWS IoT izin untuk armada perangkat inti Greengrass Anda. Kebijakan berikut memungkinkan akses ke semua topik MQTT dan operasi Greengrass, sehingga perangkat Anda bekerja dengan aplikasi kustom dan perubahan di masa mendatang yang memerlukan operasi Greengrass baru. Kebijakan ini juga mengizinkan iot:AssumeRoleWithCertificate izin, yang memungkinkan perangkat Anda menggunakan peran pertukaran token yang Anda buat di bagian sebelumnya. Anda dapat membatasi kebijakan ini berdasarkan kasus penggunaan Anda. Untuk informasi selengkapnya, lihat Kebijakan AWS IoT minimal untuk perangkat inti AWS IoT Greengrass V2.

    Lakukan hal-hal berikut:

    1. Buat file yang berisi dokumen AWS IoT kebijakan yang dibutuhkan perangkat inti Greengrass.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano greengrass-v2-iot-policy.json

      Salin JSON berikut ke dalam file.

      • Ganti iot:AssumeRoleWithCertificate sumber daya dengan ARN alias AWS IoT peran yang Anda buat di bagian sebelumnya.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. Buat AWS IoT kebijakan dari dokumen kebijakan.

      • Ganti GreenGrassV2IoT ThingPolicy dengan nama kebijakan yang akan dibuat.

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Subscribe\", \"iot:Receive\", \"iot:Connect\", \"greengrass:*\" ], \"Resource\": [ \"*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:AssumeRoleWithCertificate\", \"Resource\": \"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\" } ] }", "policyVersionId": "1" }

Buat template penyediaan armada

AWS IoTTemplat penyediaan armada menentukan cara menyediakan AWS IoT berbagai hal, kebijakan, dan sertifikat. Untuk menyediakan perangkat inti Greengrass dengan plugin penyediaan armada, Anda harus membuat templat yang menentukan hal berikut:

  • Sumber daya AWS IoT sesuatu. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.

  • Sumber daya AWS IoT kebijakan. Sumber daya ini dapat menentukan salah satu properti berikut:

    • Nama AWS IoT kebijakan yang ada. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan yang sama, dan Anda dapat mengelola izinnya sebagai armada.

    • Dokumen AWS IoT kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan unik, dan Anda dapat mengelola izin untuk setiap perangkat inti individual.

  • Sumber daya AWS IoT sertifikat. Sumber daya sertifikat ini harus menggunakan AWS::IoT::Certificate::Id parameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihat ust-in-time Penyediaan J di Panduan AWS IoTPengembang.

Dalam template, Anda dapat menentukan untuk menambahkan AWS IoT hal ke daftar grup hal yang ada. Ketika perangkat inti terhubung AWS IoT Greengrass untuk pertama kalinya, ia menerima penerapan Greengrass untuk setiap grup hal di mana ia menjadi anggota. Anda dapat menggunakan grup benda untuk menyebarkan perangkat lunak terbaru ke setiap perangkat segera setelah online. Untuk informasi selengkapnya, lihat Deploy komponen AWS IoT Greengrass ke perangkat.

AWS IoTLayanan memerlukan izin untuk membuat dan memperbarui AWS IoT sumber daya di perangkat Anda Akun AWS saat menyediakan perangkat. Untuk memberikan akses AWS IoT layanan, Anda membuat peran IAM dan menyediakannya saat Anda membuat template. AWS IoTmenyediakan kebijakan terkelola AWSIoTThingsRegistration, yang memungkinkan akses ke semua izin yang AWS IoT mungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang mencakup izin dalam kebijakan terkelola untuk kasus penggunaan Anda.

Di bagian ini, Anda membuat peran IAM yang memungkinkan AWS IoT penyediaan sumber daya untuk perangkat, dan Anda membuat templat penyediaan armada yang menggunakan peran IAM tersebut.

Untuk membuat template penyediaan armada
  1. Buat peran IAM yang AWS IoT dapat diasumsikan untuk menyediakan sumber daya di AndaAkun AWS. Lakukan hal-hal berikut:

    1. Buat file yang berisi dokumen kebijakan kepercayaan yang memungkinkan AWS IoT untuk mengambil peran.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano aws-iot-trust-policy.json

      Salin JSON berikut ke dalam file.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Buat peran IAM dengan dokumen kebijakan kepercayaan.

      • Ganti GreengrassFleetProvisioningRoledengan nama peran IAM yang akan dibuat.

      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "Role": { "Path": "/", "RoleName": "GreengrassFleetProvisioningRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole", "CreateDate": "2021-07-26T00:15:12+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } }
    3. Tinjau AWSIoTThingsRegistrationkebijakan, yang memungkinkan akses ke semua izin yang AWS IoT mungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang menentukan izin cakupan bawah untuk kasus penggunaan Anda. Jika Anda memilih untuk membuat kebijakan khusus, lakukan sekarang.

    4. Lampirkan kebijakan IAM ke peran penyediaan armada.

      • Ganti GreengrassFleetProvisioningRoledengan nama peran IAM.

      • Jika Anda membuat kebijakan kustom pada langkah sebelumnya, ganti kebijakan ARN dengan ARN dari kebijakan IAM yang akan digunakan.

      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

  2. (Opsional) Buat hook pra-penyediaan, yang merupakan AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat saat pendaftaran. Anda dapat menggunakan pengait pra-penyediaan untuk mendapatkan kontrol lebih besar atas perangkat mana dan berapa banyak perangkat yang terpasang di dalamnya. Akun AWS Untuk informasi selengkapnya, lihat Pra-penyediaan kait di Panduan Pengembang. AWS IoT Core

  3. Buat template penyediaan armada. Lakukan hal-hal berikut:

    1. Buat file yang berisi dokumen template penyediaan.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano greengrass-fleet-provisioning-template.json

      Tulis dokumen template penyediaan. Anda dapat mulai dari contoh template penyediaan berikut, yang menentukan untuk membuat AWS IoT sesuatu dengan properti berikut:

      • Nama benda adalah nilai yang Anda tentukan dalam parameter ThingName template.

      • Masalahnya adalah anggota grup benda yang Anda tentukan dalam parameter ThingGroupName template. Kelompok benda harus ada di AndaAkun AWS.

      • Sertifikat benda itu memiliki AWS IoT kebijakan bernama GreengrassV2IoTThingPolicy terlampir padanya.

      Untuk informasi selengkapnya, lihat Templat penyediaan di Panduan AWS IoT Core Pengembang.

      { "Parameters": { "ThingName": { "Type": "String" }, "ThingGroupName": { "Type": "String" }, "AWS::IoT::Certificate::Id": { "Type": "String" } }, "Resources": { "MyThing": { "OverrideSettings": { "AttributePayload": "REPLACE", "ThingGroups": "REPLACE", "ThingTypeName": "REPLACE" }, "Properties": { "AttributePayload": {}, "ThingGroups": [ { "Ref": "ThingGroupName" } ], "ThingName": { "Ref": "ThingName" } }, "Type": "AWS::IoT::Thing" }, "MyPolicy": { "Properties": { "PolicyName": "GreengrassV2IoTThingPolicy" }, "Type": "AWS::IoT::Policy" }, "MyCertificate": { "Properties": { "CertificateId": { "Ref": "AWS::IoT::Certificate::Id" }, "Status": "Active" }, "Type": "AWS::IoT::Certificate" } } }
      catatan

      MyThing, MyPolicy, dan MyCertificatemerupakan nama arbitrer yang mengidentifikasi setiap spesifikasi sumber daya dalam templat penyediaan armada. AWS IoTtidak menggunakan nama-nama ini dalam sumber daya yang dibuatnya dari template. Anda dapat menggunakan nama-nama ini atau menggantinya dengan nilai yang membantu Anda mengidentifikasi setiap sumber daya dalam template.

    2. Buat template penyediaan armada dari dokumen template penyediaan.

      • Ganti GreengrassFleetProvisioningTemplatedengan nama template yang akan dibuat.

      • Ganti deskripsi template dengan deskripsi untuk template Anda.

      • Ganti peran penyediaan ARN dengan ARN dari peran yang Anda buat sebelumnya.

      Linux or Unix
      aws iot create-provisioning-template \ --template-name GreengrassFleetProvisioningTemplate \ --description "A provisioning template for Greengrass core devices." \ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \ --template-body file://greengrass-fleet-provisioning-template.json \ --enabled
      Windows Command Prompt (CMD)
      aws iot create-provisioning-template ^ --template-name GreengrassFleetProvisioningTemplate ^ --description "A provisioning template for Greengrass core devices." ^ --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^ --template-body file://greengrass-fleet-provisioning-template.json ^ --enabled
      PowerShell
      aws iot create-provisioning-template ` --template-name GreengrassFleetProvisioningTemplate ` --description "A provisioning template for Greengrass core devices." ` --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ` --template-body file://greengrass-fleet-provisioning-template.json ` --enabled
      catatan

      Jika Anda membuat hook pra-penyediaan, tentukan ARN dari fungsi Lambda hook pra-penyediaan dengan argumen. --pre-provisioning-hook

      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate", "templateName": "GreengrassFleetProvisioningTemplate", "defaultVersionId": 1 }

Membuat sertifikat klaim penyediaan dan kunci pribadi

Sertifikat klaim adalah sertifikat X.509 yang memungkinkan perangkat untuk mendaftar sebagai AWS IoT benda dan mengambil sertifikat perangkat X.509 unik untuk digunakan untuk operasi reguler. Setelah membuat sertifikat klaim, Anda melampirkan AWS IoT kebijakan yang memungkinkan perangkat menggunakannya untuk membuat sertifikat perangkat unik dan penyediaan dengan templat penyediaan armada. Perangkat dengan sertifikat klaim dapat menyediakan hanya menggunakan templat penyediaan yang Anda izinkan dalam kebijakan. AWS IoT

Di bagian ini, Anda membuat sertifikat klaim dan mengonfigurasinya untuk digunakan perangkat dengan templat penyediaan armada yang Anda buat di bagian sebelumnya.

penting

Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat Pemantauan AWS IoT di Panduan AWS IoT Core Pengembang.

Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat AndaAkun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. Untuk informasi selengkapnya, lihat Pra-penyediaan kait di Panduan Pengembang. AWS IoT Core

Untuk membuat sertifikat klaim penyediaan dan kunci pribadi
  1. Buat folder tempat Anda mengunduh sertifikat klaim dan kunci pribadi.

    mkdir claim-certs
  2. Membuat dan menyimpan sertifikat dan kunci pribadi untuk digunakan untuk penyediaan. AWS IoTmenyediakan sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root (CA).

    Linux or Unix
    aws iot create-keys-and-certificate \ --certificate-pem-outfile "claim-certs/claim.pem.crt" \ --public-key-outfile "claim-certs/claim.public.pem.key" \ --private-key-outfile "claim-certs/claim.private.pem.key" \ --set-as-active
    Windows Command Prompt (CMD)
    aws iot create-keys-and-certificate ^ --certificate-pem-outfile "claim-certs/claim.pem.crt" ^ --public-key-outfile "claim-certs/claim.public.pem.key" ^ --private-key-outfile "claim-certs/claim.private.pem.key" ^ --set-as-active
    PowerShell
    aws iot create-keys-and-certificate ` --certificate-pem-outfile "claim-certs/claim.pem.crt" ` --public-key-outfile "claim-certs/claim.public.pem.key" ` --private-key-outfile "claim-certs/claim.private.pem.key" ` --set-as-active

    Tanggapan berisi informasi tentang sertifikat, jika permintaan berhasil. Simpan ARN sertifikat untuk digunakan nanti.

  3. Membuat dan melampirkan AWS IoT kebijakan yang memungkinkan perangkat menggunakan sertifikat untuk membuat sertifikat perangkat unik dan penyediaan dengan templat penyediaan armada. Kebijakan berikut memungkinkan akses ke MQTT API penyediaan perangkat. Untuk informasi selengkapnya, lihat Penyediaan perangkat MQTT API di Panduan Pengembang. AWS IoT Core

    Lakukan hal-hal berikut:

    1. Buat file yang berisi dokumen AWS IoT kebijakan yang dibutuhkan perangkat inti Greengrass.

      Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      nano greengrass-provisioning-claim-iot-policy.json

      Salin JSON berikut ke dalam file.

      • Ganti setiap instance wilayah dengan Wilayah AWS tempat Anda mengatur penyediaan armada.

      • Ganti setiap instance account-id dengan ID AndaAkun AWS.

      • Ganti setiap instance GreengrassFleetProvisioningTemplatedengan nama template penyediaan armada yang Anda buat di bagian sebelumnya.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:Connect", "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:region:account-id:topic/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*", "arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*" ] } ] }
    2. Buat AWS IoT kebijakan dari dokumen kebijakan.

      • Ganti GreengrassProvisioningClaimPolicydengan nama kebijakan yang akan dibuat.

      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      { "policyName": "GreengrassProvisioningClaimPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy", "policyDocument": "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": \"iot:Connect\", \"Resource\": \"*\" }, { \"Effect\": \"Allow\", \"Action\": [ \"iot:Publish\", \"iot:Receive\" ], \"Resource\": [ \"arn:aws:iot:region:account-id:topic/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] }, { \"Effect\": \"Allow\", \"Action\": \"iot:Subscribe\", \"Resource\": [ \"arn:aws:iot:region:account-id:topicfilter/$aws/certificates/create/*\", \"arn:aws:iot:region:account-id:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\" ] } ] }", "policyVersionId": "1" }
  4. Lampirkan AWS IoT kebijakan ke sertifikat klaim penyediaan.

    • Ganti GreengrassProvisioningClaimPolicydengan nama kebijakan yang akan dilampirkan.

    • Ganti ARN target dengan ARN dari sertifikat klaim penyediaan.

    aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

Anda sekarang memiliki sertifikat klaim penyediaan dan kunci pribadi yang dapat digunakan perangkat untuk mendaftar AWS IoT dan menyediakan diri mereka sebagai perangkat inti Greengrass. Anda dapat menyematkan sertifikat klaim dan kunci pribadi di perangkat selama pembuatan, atau menyalin sertifikat dan kunci ke perangkat sebelum Anda menginstal perangkat lunak AWS IoT Greengrass Core. Lihat informasi yang lebih lengkap di Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada.