View a markdown version of this page

Menyediakan perangkat yang tidak memiliki sertifikat perangkat menggunakan penyediaan armada - AWS IoT Core

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

Menyediakan perangkat yang tidak memiliki sertifikat perangkat menggunakan penyediaan armada

Dengan menggunakan AWS IoT penyediaan armada, AWS IoT dapat menghasilkan dan mengirimkan sertifikat perangkat dan kunci pribadi dengan aman ke perangkat Anda saat terhubung AWS IoT untuk pertama kalinya. AWS IoT menyediakan sertifikat klien yang ditandatangani oleh otoritas sertifikat Root Amazon (CA).

Ada dua cara untuk menggunakan penyediaan armada:

Penyediaan dengan klaim

Perangkat dapat diproduksi dengan sertifikat klaim penyediaan dan kunci pribadi (yang merupakan kredenSIAL tujuan khusus) yang tertanam di dalamnya. Jika sertifikat ini terdaftar AWS IoT, layanan dapat menukarnya dengan sertifikat perangkat unik yang dapat digunakan perangkat untuk operasi reguler. Proses ini mencakup langkah-langkah berikut:

Sebelum Anda mengirimkan perangkat
  1. Panggilan CreateProvisioningTemplate untuk membuat template penyediaan. API ini mengembalikan template ARN. Untuk informasi selengkapnya, lihat Penyediaan perangkat MQTT API.

    Anda juga dapat membuat template penyediaan armada di AWS IoT konsol.

    1. Dari panel navigasi, pilih menu tarik- turun Hubungkan banyak perangkat. Kemudian, pilih Hu bungkan banyak perangkat.

    2. Pilih Buat templ at penyediaan.

    3. Pilih skenario Penyediaan yang paling sesuai dengan proses instalasi Anda. Lalu, pilih Selanjutnya.

    4. Selesaikan alur kerja template.

  2. Buat sertifikat dan kunci pribadi terkait untuk digunakan sebagai sertifikat klaim penyediaan.

  3. Daftarkan sertifikat ini dengan AWS IoT dan kaitkan kebijakan IoT yang membatasi penggunaan sertifikat. Contoh kebijakan IoT berikut membatasi penggunaan sertifikat yang terkait dengan kebijakan ini untuk perangkat penyediaan.

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Receive" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*", "arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/templateName/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*", "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/templateName/provision/*" ] } ] }
  4. Berikan izin AWS IoT layanan untuk membuat atau memperbarui sumber daya IoT seperti hal-hal dan sertifikat di akun Anda saat menyediakan perangkat. Lakukan ini dengan melampirkan kebijakan AWSIoTThingsRegistration terkelola ke peran IAM (disebut peran penyediaan) yang mempercayai prinsipal layanan. AWS IoT

  5. Memproduksi perangkat dengan sertifikat klaim penyediaan yang tertanam dengan aman di dalamnya.

Perangkat sekarang siap dikirim ke tempat akan dipasang untuk digunakan.

penting

Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk di perangkat. Sebaiknya gunakan AWS IoT CloudWatch metrik dan log untuk memantau indikasi penyalahgunaan. Jika Anda mendeteksi penyalahgunaan, matikan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat.

Untuk menginisialisasi perangkat untuk digunakan
  1. Perangkat menggunakan AWS IoT SDK Perangkat, SDK Seluler, dan AWS IoT Klien Perangkat untuk menyambung dan mengotentikasi dengan AWS IoT menggunakan sertifikat klaim penyediaan yang diinstal pada perangkat.

    catatan

    Untuk keamanan, certificateOwnershipToken dikembalikan CreateCertificateFromCsr dan kedalu CreateKeysAndCertificate warsa setelah satu jam. RegisterThingharus dipanggil sebelum kedalu certificateOwnershipToken warsa. Jika sertifikat yang dibuat oleh CreateCertificateFromCsr atau CreateKeysAndCertificate belum diaktifkan dan belum dilampirkan ke kebijakan atau sesuatu pada saat token kedaluwarsa, sertifikat dihapus. Jika token kedaluwarsa, perangkat dapat menelep CreateKeysAndCertificate on CreateCertificateFromCsr atau lagi untuk menghasilkan sertifikat baru.

  2. Perangkat memperoleh sertifikat permanen dan kunci pribadi dengan menggunakan salah satu opsi ini. Perangkat akan menggunakan sertifikat dan kunci untuk semua otentikasi di masa mendatang dengan AWS IoT.

    1. Panggil CreateKeysAndCertificate untuk membuat sertifikat baru dan kunci pribadi menggunakan otoritas AWS sertifikat.

      Atau

    2. Panggil CreateCertificateFromCsr untuk membuat sertifikat dari permintaan penandatanganan sertifikat yang menjaga kunci pribadinya tetap aman.

  3. Dari perangkat, hubungi RegisterThing untuk mendaftarkan perangkat dengan AWS IoT dan membuat sumber daya cloud.

    Layanan Fleet Provisioning menggunakan template penyediaan untuk menentukan dan membuat sumber daya cloud seperti hal-hal IoT. Template dapat menentukan atribut dan grup milik benda itu. Kelompok benda harus ada sebelum hal baru dapat ditambahkan ke mereka.

  4. Setelah menyimpan sertifikat permanen pada perangkat, perangkat harus memutuskan sambungan dari sesi yang dimulai dengan sertifikat klaim penyediaan dan menyambung kembali menggunakan sertifikat permanen.

Perangkat sekarang siap untuk berkomunikasi secara normal AWS IoT.

Penyediaan oleh pengguna tepercaya

Dalam banyak kasus, perangkat terhubung AWS IoT untuk pertama kalinya ketika pengguna tepercaya, seperti pengguna akhir atau teknisi instalasi, menggunakan aplikasi seluler untuk mengonfigurasi perangkat di lokasi yang digunakan.

penting

Anda harus mengelola akses dan izin pengguna tepercaya untuk melakukan prosedur ini. Salah satu cara untuk melakukannya adalah dengan menyediakan dan memelihara akun untuk pengguna tepercaya yang mengotentikasi mereka dan memberi mereka akses ke AWS IoT fitur dan operasi API yang diperlukan untuk melakukan prosedur ini.

Sebelum Anda mengirimkan perangkat
  1. Panggilan CreateProvisioningTemplate untuk membuat template penyediaan dan mengembalikan templateArn dantemplateName.

  2. Buat peran IAM yang digunakan oleh pengguna tepercaya untuk memulai proses penyediaan. Template penyediaan hanya mengizinkan pengguna tersebut untuk menyediakan perangkat. Contoh:

    { "Effect": "Allow", "Action": [ "iot:CreateProvisioningClaim" ], "Resource": [ "arn:aws:iot:aws-region:aws-account-id:provisioningtemplate/templateName" ] }
  3. Berikan izin AWS IoT layanan untuk membuat atau memperbarui sumber daya IoT, seperti hal-hal dan sertifikat di akun Anda saat menyediakan perangkat. Anda melakukannya dengan melampirkan kebijakan ter AWSIoTThingsRegistration kelola ke peran IAM (disebut peran penyediaan ) yang mempercayai prinsipal layanan. AWS IoT

  4. Berikan sarana untuk mengidentifikasi pengguna tepercaya Anda, seperti dengan memberi mereka akun yang dapat mengotentikasi mereka dan mengotorisasi interaksi mereka dengan operasi AWS API yang diperlukan untuk mendaftarkan perangkat mereka.

Untuk menginisialisasi perangkat untuk digunakan
  1. Pengguna tepercaya masuk ke aplikasi seluler atau layanan web penyediaan Anda.

  2. Aplikasi seluler atau aplikasi web menggunakan peran dan panggilan IAM CreateProvisioningClaim untuk mendapatkan sertifikat klaim penyediaan sementara dari. AWS IoT

    catatan

    Demi keamanan, sertifikat klaim penyediaan sementara yang dikem CreateProvisioningClaim balikan kedaluwarsa setelah lima menit. Langkah-langkah berikut harus berhasil mengembalikan sertifikat yang valid sebelum sertifikat klaim penyediaan sementara berakhir. Sertifikat klaim penyediaan sementara tidak muncul dalam daftar sertifikat akun Anda.

  3. Aplikasi seluler atau aplikasi web menyediakan sertifikat klaim penyediaan sementara ke perangkat bersama dengan informasi konfigurasi yang diperlukan, seperti Wi-Fi kredenSIAL.

  4. Perangkat menggunakan sertifikat klaim penyediaan sementara untuk terhubung AWS IoT menggunakan. AWS IoT SDK Perangkat, SDK Seluler, dan AWS IoT Klien Perangkat

  5. Perangkat memperoleh sertifikat permanen dan kunci pribadi dengan menggunakan salah satu opsi ini dalam waktu lima menit setelah terhubung AWS IoT dengan sertifikat klaim penyediaan sementara. Perangkat akan menggunakan sertifikat dan kunci opsi ini kembali untuk semua otentikasi di masa mendatang AWS IoT.

    1. Panggil CreateKeysAndCertificate untuk membuat sertifikat baru dan kunci pribadi menggunakan otoritas AWS sertifikat.

      Atau

    2. Panggil CreateCertificateFromCsr untuk membuat sertifikat dari permintaan penandatanganan sertifikat yang menjaga kunci pribadinya tetap aman.

    catatan

    Ingat CreateKeysAndCertificate atau CreateCertificateFromCsr harus mengembalikan sertifikat yang valid dalam waktu lima menit setelah terhubung AWS IoT dengan sertifikat klaim penyediaan sementara.

  6. Perangkat memanggil RegisterThing untuk mendaftarkan perangkat dengan AWS IoT dan membuat sumber daya cloud.

    Layanan Fleet Provisioning menggunakan template penyediaan untuk menentukan dan membuat sumber daya cloud seperti hal-hal IoT. Template dapat menentukan atribut dan grup milik benda itu. Kelompok benda harus ada sebelum hal baru dapat ditambahkan ke mereka.

  7. Setelah menyimpan sertifikat permanen pada perangkat, perangkat harus memutuskan sambungan dari sesi yang dimulai dengan sertifikat klaim penyediaan sementara dan menyambung kembali menggunakan sertifikat permanen.

Perangkat sekarang siap untuk berkomunikasi secara normal AWS IoT.

Menggunakan kait pra-penyediaan dengan AWS CLI

Prosedur berikut membuat template penyediaan dengan kait pra-penyediaan. Fungsi Lambda yang digunakan di sini adalah contoh yang dapat dimodifikasi.

Untuk membuat dan menerapkan hook pra-penyediaan ke templat penyediaan
  1. Buat fungsi Lambda yang memiliki input dan output yang ditentukan. Fungsi lambda sangat dapat disesuaikan. allowProvisioningdan parameterOverrides diperlukan untuk membuat kait pra-penyediaan. Untuk informasi selengkapnya tentang membuat fungsi Lambda, lihat Menggunakan AWS Lambda dengan Antarmuka Bar AWS is Perintah.

    Berikut ini adalah contoh output fungsi Lambda:

    { "allowProvisioning": True, "parameterOverrides": { "incomingKey0": "incomingValue0", "incomingKey1": "incomingValue1" } }
  2. AWS IoT menggunakan kebijakan berbasis sumber daya untuk memanggil Lambda, jadi Anda harus memberikan AWS IoT izin untuk memanggil fungsi Lambda Anda.

    penting

    Pastikan untuk menyertakan source-arn atau source-account dalam kunci konteks kondisi global dari kebijakan yang dilampirkan pada tindakan Lambda Anda untuk mencegah manipulasi izin. Untuk informasi selengkapnya tentang langkah ini, lihat Cross-service pencegahan wakil yang bingung.

    Berikut ini adalah contoh menggunakan izin tambahan https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html memberikan izin IoT ke Lambda Anda.

    aws lambda add-permission \ --function-name myLambdaFunction \ --statement-id iot-permission \ --action lambda:InvokeFunction \ --principal iot.amazonaws.com
  3. Tambahkan hook pra-penyediaan ke template menggunakan perintah create-provisioning-template atau update-provisi oning-template. https://docs.aws.amazon.com/cli/latest/reference/iot/update-provisioning-template.html

    Contoh CLI berikut menggunakan create-provisioning-template untuk membuat template penyediaan yang memiliki kait pra-penyediaan:

    aws iot create-provisioning-template \ --template-name myTemplate \ --provisioning-role-arn arn:aws:iam:us-east-1:1234564789012:role/myRole \ --template-body file://template.json \ --pre-provisioning-hook file://hooks.json

    Output dari perintah ini terlihat seperti berikut:

    { "templateArn": "arn:aws:iot:us-east-1:1234564789012:provisioningtemplate/myTemplate", "defaultVersionId": 1, "templateName": myTemplate }

    Anda juga dapat memuat parameter dari file alih-alih mengetik semuanya sebagai nilai parameter baris perintah untuk menghemat waktu. Untuk informasi selengkapnya, lihat Mem AWS CLI uat Parameter dari File. Berikut ini menunjukkan template parameter dalam format JSON yang diperluas:

    { "Parameters" : { "DeviceLocation": { "Type": "String" } }, "Mappings": { "LocationTable": { "Seattle": { "LocationUrl": "https://example.aws" } } }, "Resources" : { "thing" : { "Type" : "AWS::IoT::Thing", "Properties" : { "AttributePayload" : { "version" : "v1", "serialNumber" : "serialNumber" }, "ThingName" : {"Fn::Join":["",["ThingPrefix_",{"Ref":"SerialNumber"}]]}, "ThingTypeName" : {"Fn::Join":["",["ThingTypePrefix_",{"Ref":"SerialNumber"}]]}, "ThingGroups" : ["widgets", "WA"], "BillingGroup": "BillingGroup" }, "OverrideSettings" : { "AttributePayload" : "MERGE", "ThingTypeName" : "REPLACE", "ThingGroups" : "DO_NOTHING" } }, "certificate" : { "Type" : "AWS::IoT::Certificate", "Properties" : { "CertificateId": {"Ref": "AWS::IoT::Certificate::Id"}, "Status" : "Active", "ThingPrincipalType" : "EXCLUSIVE_THING" } }, "policy" : { "Type" : "AWS::IoT::Policy", "Properties" : { "PolicyDocument" : { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action":["iot:Publish"], "Resource": ["arn:aws:iot:us-east-1:504350838278:topic/foo/bar"] }] } } } }, "DeviceConfiguration": { "FallbackUrl": "https://www.example.com/test-site", "LocationUrl": { "Fn::FindInMap": ["LocationTable",{"Ref": "DeviceLocation"}, "LocationUrl"]} } }

    Berikut ini menunjukkan pre-provisioning-hook parameter dalam format JSON yang diperluas:

    { "targetArn" : "arn:aws:lambda:us-east-1:765219403047:function:pre_provisioning_test", "payloadVersion" : "2020-04-01" }