MengaturAWS IoTPenyediaan 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.

MengaturAWS IoTPenyediaan armada untuk perangkat inti Greengrass

KemenginstalAWS IoT GreengrassPerangkat lunak inti dengan penyediaan armada, Anda harus terlebih dahulu menyiapkan sumber daya berikut diAkun AWS. Sumber daya ini memungkinkan perangkat untuk mendaftarkan diri denganAWS IoTdan beroperasi sebagai perangkat inti Greengrass. Ikuti langkah-langkah di bagian ini sekali untuk membuat dan mengkonfigurasi sumber daya ini di AndaAkun AWS.

  • Peran IAM pertukaran token, yang digunakan perangkat inti untuk mengotorisasi panggilanAWSlayanan.

  • SesiAWS IoTalias peran yang menunjuk ke peran pertukaran token.

  • (Opsional)AWS IoTkebijakan, yang digunakan perangkat inti untuk mengotorisasi panggilan keAWS IoTdanAWS IoT Greengrasslayanan. IniAWS IoTkebijakan harus mengizinkaniot:AssumeRoleWithCertificateizin untukAWS IoTalias peran yang menunjuk ke peran pertukaran token.

    Anda dapat menggunakanAWS IoTkebijakan untuk semua perangkat inti dalam armada Anda, atau Anda dapat mengkonfigurasi template penyediaan armada Anda untuk membuatAWS IoTkebijakan untuk setiap perangkat inti.

  • SesiAWS IoTPenyediaan armada Template. Template ini harus menentukan hal berikut:

    • SesiAWS IoTsumber daya hal. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.

    • SesiAWS IoTsumber daya kebijakan. Sumber daya ini dapat menentukan salah satu dari properti berikut:

      • Nama yang sudah adaAWS IoTkebijakan. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari template ini menggunakan yang samaAWS IoTkebijakan, dan Anda dapat mengelola izin mereka sebagai armada.

      • SesiAWS IoTdokumen kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari template ini menggunakan unikAWS IoTkebijakan, dan Anda dapat mengelola izin untuk setiap perangkat inti individu.

    • SesiAWS IoTsumber daya sertifikat. Sumber daya sertifikat ini harus menggunakanAWS::IoT::Certificate::Idparameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihatPenyediaan hanya-dalam-waktudiAWS IoTPanduan Pengembang.

  • SesiAWS IoTPenyediaan sertifikat klaim dan kunci pribadi untuk templat penyediaan armada. Anda dapat menanamkan sertifikat ini dan kunci pribadi di perangkat selama pembuatan, sehingga perangkat dapat mendaftar dan menyediakan diri mereka ketika mereka datang online.

    penting

    Penyediaan klaim kunci pribadi harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami merekomendasikan agar Anda menggunakan Amazon CloudWatch metrik dan log untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah untuk menyediakan perangkat. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihatPemantauanAWS IoTdiAWS IoT CorePanduan Pengembang.

    Untuk membantu Anda mengelola jumlah perangkat dengan lebih baik, dan perangkat mana yang mendaftarkan diri diAkun AWS, Anda dapat menentukan hook pra-penyediaan ketika Anda membuat template penyediaan armada. Sebuah kait pra-penyediaan adalahAWS Lambdafungsi 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, lihatKait pra-penyediaandiAWS IoT CorePanduan Pengembang.

  • SesiAWS IoTkebijakan yang Anda lampirkan pada sertifikat klaim penyediaan untuk memungkinkan 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 menggunakanAWS IoTpenyedia kredensia untuk mendapatkan sementaraAWSkredensia untuk peran ini, yang memungkinkan perangkat untuk berinteraksi denganAWS IoT, kirim log ke Amazon CloudWatch Log, dan unduh artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

Anda menggunakanAWS IoT alias peranuntuk 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 oleh perangkat Anda sebagai peran pertukaran token. Lakukan hal berikut:

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

      Sebagai contoh, 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 GreengrassV2TokenExchangeRole dengan nama IAM role 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.

      Sebagai contoh, 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 GreengrassV2TokenExchangeRoleAccess 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 GreengrassV2TokenExchangeRole dengan nama IAM role.

      • 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. MembuatAWS IoTalias peran yang menunjuk ke peran pertukaran token.

    • Ganti GreengrassCoreTokenExchangeRoleAlias dengan 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 kesalahan saat Anda mencoba membuat alias peran, periksa bahwa AndaAWSpengguna 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.

MembuatAWS IoTkebijakan

Setelah Anda mendaftarkan perangkat sebagaiAWS IoTHal, perangkat yang dapat menggunakan sertifikat digital untuk mengautentikasi denganAWS. Sertifikat ini mencakup satu atau lebihAWS IoTkebijakan yang menentukan izin yang dapat digunakan perangkat dengan sertifikat. Kebijakan ini memungkinkan perangkat untuk berkomunikasi denganAWS IoTdanAWS IoT Greengrass.

DenganAWS IoTPenyediaan armada, perangkat terhubung keAWS IoTuntuk membuat dan mengunduh sertifikat perangkat. Dalam template penyediaan armada yang Anda buat di bagian berikutnya, Anda dapat menentukan apakahAWS IoTmenempel yang samaAWS IoTkebijakan untuk sertifikat semua perangkat, atau membuat kebijakan baru untuk setiap perangkat.

Di bagian ini, Anda membuatAWS IoTkebijakan yangAWS IoTmenempel pada sertifikat semua perangkat. Dengan pendekatan ini, Anda dapat mengelola izin untuk semua perangkat sebagai armada. Jika Anda lebih suka membuat yang baruAWS IoTkebijakan untuk setiap perangkat, Anda dapat melewati bagian ini, dan merujuk ke kebijakan di dalamnya ketika Anda menentukan template armada Anda.

MembuatAWS IoTkebijakan

  • MembuatAWS IoTkebijakan yang mendefinisikanAWS IoTizin untuk armada perangkat inti Greengrass. 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 memungkinkaniot:AssumeRoleWithCertificateizin, 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 berikut:

    1. Membuat file yang berisiAWS IoTdokumen yang diperlukan oleh perangkat inti Greengrass.

      Sebagai contoh, 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.

      • Gantiiot:AssumeRoleWithCertificatesumber daya dengan ARN dariAWS IoTalias 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. MembuatAWS IoTkebijakan dari dokumen kebijakan.

      • Ganti GreengrassV2IoTThingPolicy 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" }

Membuat templat penyediaan armada

AWS IoTTemplat penyediaan armada menentukan cara penyediaanAWS IoThal, kebijakan, dan sertifikat. Untuk menyediakan perangkat inti Greengrass dengan plugin penyediaan armada, Anda harus membuat template yang menentukan bahwa berikut:

  • SesiAWS IoTsumber daya hal. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.

  • SesiAWS IoTsumber daya kebijakan. Sumber daya ini dapat menentukan salah satu dari properti berikut:

    • Nama yang sudah adaAWS IoTkebijakan. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari template ini menggunakan yang samaAWS IoTkebijakan, dan Anda dapat mengelola izin mereka sebagai armada.

    • SesiAWS IoTdokumen kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari template ini menggunakan unikAWS IoTkebijakan, dan Anda dapat mengelola izin untuk setiap perangkat inti individu.

  • SesiAWS IoTsumber daya sertifikat. Sumber daya sertifikat ini harus menggunakanAWS::IoT::Certificate::Idparameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihatPenyediaan hanya-dalam-waktudiAWS IoTPanduan Pengembang.

Dalam template, Anda dapat menentukan untuk menambahkanAWS IoThal untuk daftar kelompok hal yang ada. Saat perangkat inti terhubung keAWS IoT Greengrassuntuk pertama kalinya, ia menerima penyebaran Greengrass untuk setiap kelompok hal di mana itu anggota. Anda dapat menggunakan grup hal untuk menyebarkan perangkat lunak terbaru ke setiap perangkat segera setelah online. Untuk informasi selengkapnya, lihat Deploy komponen AWS IoT Greengrass ke perangkat.

ParameterAWS IoTlayanan memerlukan izin untuk membuat dan memperbaruiAWS IoTsumber daya dalamAkun AWSsaat penyediaan perangkat. Untuk memberikanAWS IoTakses layanan, Anda membuat peran IAM dan menyediakannya ketika Anda membuat template.AWS IoTmenyediakan kebijakan terkelola,AWSIoTThingsRegistration, yang memungkinkan akses ke semua izin yangAWS IoTmungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang menutupi izin dalam kebijakan terkelola untuk kasus penggunaan Anda.

Di bagian ini, Anda membuat peran IAM yang memungkinkanAWS IoTuntuk menyediakan sumber daya untuk perangkat, dan Anda membuat template penyediaan armada yang menggunakan peran IAM tersebut.

Membuat templat penyediaan armada

  1. Membuat peran IAMAWS IoTdapat berasumsi untuk menyediakan sumber daya diAkun AWS. Lakukan hal berikut:

    1. Buat file yang berisi dokumen kebijakan kepercayaan yang memungkinkanAWS IoTuntuk mengasumsikan peran tersebut.

      Sebagai contoh, 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 IAM role dengan dokumen kebijakan kepercayaan.

      • GantiGreenGrassFleetProvisioningRoledengan nama IAM role 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. TinjauAWSIoTThingsRegistrationkebijakan, yang memungkinkan akses ke semua izin yangAWS IoTmungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang mendefinisikan izin terlingkupi untuk kasus penggunaan Anda. Jika Anda memilih untuk membuat kebijakan khusus, lakukan sekarang.

    4. Lampirkan kebijakan IAM untuk peran penyediaan armada.

      • GantiGreenGrassFleetProvisioningRoledengan nama peran IAM.

      • Jika Anda membuat kebijakan khusus pada langkah sebelumnya, ganti ARN kebijakan dengan ARN 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) Membuatkait pra-penyediaan, yang merupakanAWS Lambdafungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Anda dapat menggunakan hook pra-penyediaan untuk mendapatkan lebih banyak kontrol atas mana dan berapa banyak perangkat onboard diAkun AWS. Untuk informasi selengkapnya, lihatKait pra-penyediaandiAWS IoT CorePanduan Pengembang.

  3. Buat templat penyediaan armada. Lakukan hal berikut:

    1. Buat file berisi dokumen templat penyediaan.

      Sebagai contoh, 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 berikut penyediaan template, yang menentukan untuk membuatAWS IoThal dengan properti berikut:

      • Nama hal itu adalah nilai yang Anda tentukan diThingNameparameter template.

      • Masalahnya adalah anggota kelompok hal yang Anda tentukan diThingGroupNameparameter template. Kelompok hal harus ada di AndaAkun AWS.

      • Sertifikat benda itu memilikiAWS IoTkebijakan bernamaGreengrassV2IoTThingPolicymelekat padanya.

      Untuk informasi selengkapnya, lihatPenyediaan templatdiAWS IoT CorePanduan 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

      Mitos,MyPolicy, danMyCertificateadalah nama sewenang-wenang yang mengidentifikasi setiap spesifikasi sumber daya dalam template penyediaan armada.AWS IoTtidak menggunakan nama-nama ini dalam sumber daya yang dibuat 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 templat penyediaan.

      • GantiGreenGrassFleetProvisioningTemplatedengan nama templat yang akan dibuat.

      • Ganti deskripsi template dengan deskripsi untuk template Anda.

      • Ganti ARN peran penyediaan dengan ARN 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 pre-provisioning hook dengan--pre-provisioning-hookargumen.

      --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 mendaftar sebagaiAWS IoThal-hal dan mengambil sertifikat perangkat X.509 unik untuk digunakan untuk operasi reguler. Setelah membuat sertifikat klaim, Anda melampirkanAWS IoTkebijakan yang memungkinkan perangkat menggunakannya untuk membuat sertifikat dan penyediaan perangkat unik dengan template penyediaan armada. Perangkat dengan sertifikat klaim dapat disediakan hanya menggunakan template penyediaan yang Anda izinkan diAWS IoTkebijakan.

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

penting

Penyediaan klaim kunci pribadi harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami merekomendasikan agar Anda menggunakan Amazon CloudWatch metrik dan log untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah untuk menyediakan perangkat. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihatPemantauanAWS IoTdiAWS IoT CorePanduan Pengembang.

Untuk membantu Anda mengelola jumlah perangkat dengan lebih baik, dan perangkat mana yang mendaftarkan diri diAkun AWS, Anda dapat menentukan hook pra-penyediaan ketika Anda membuat template penyediaan armada. Sebuah kait pra-penyediaan adalahAWS Lambdafungsi 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, lihatKait pra-penyediaandiAWS IoT CorePanduan Pengembang.

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 melampirkanAWS IoTkebijakan yang memungkinkan perangkat menggunakan sertifikat untuk membuat sertifikat perangkat unik dan ketentuan dengan template penyediaan armada. Kebijakan berikut mengizinkan akses ke API MQTT yang disediakan oleh perangkat. Untuk informasi selengkapnya, lihatPerangkat penyediaan MQTT APIdiAWS IoT CorePanduan Pengembang.

    Lakukan hal berikut:

    1. Membuat file yang berisiAWS IoTdokumen yang diperlukan oleh perangkat inti Greengrass.

      Sebagai contoh, 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 instancedaerahdenganWilayah AWSdi mana Anda mengatur penyediaan armada.

      • Ganti setiap instanceID akundenganAkun AWSID.

      • Ganti setiap instanceGreenGrassFleetProvisioningTemplatedengan nama templat 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. MembuatAWS IoTkebijakan dari dokumen kebijakan.

      • GantiGreenGrassprovisioningClaimPolicydengan 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. LampirkanAWS IoTkebijakan untuk sertifikat klaim penyediaan.

    • GantiGreenGrassprovisioningClaimPolicydengan nama kebijakan yang akan dilampirkan.

    • Ganti ARN target dengan ARN 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 mendaftarAWS IoTdan menyediakan diri sebagai perangkat inti Greengrass. Anda dapat menyematkan sertifikat klaim dan kunci pribadi di perangkat selama pembuatan, atau menyalin sertifikat dan kunci ke perangkat sebelum menginstalAWS IoT GreengrassPerangkat lunak inti. Untuk informasi selengkapnya, lihat PasangAWS IoT GreengrassPerangkat lunak inti denganAWS IoTpenyediaan armada.