Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Dengan menggunakan penyediaan AWS IoT armada, AWS IoT dapat menghasilkan dan mengirimkan sertifikat perangkat dan kunci pribadi dengan aman ke perangkat Anda saat mereka terhubung AWS IoT untuk pertama kalinya. AWS IoT menyediakan sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root (CA).
Ada dua cara untuk menggunakan penyediaan armada:
Penyediaan dengan klaim
Perangkat dapat diproduksi dengan sertifikat klaim penyediaan dan kunci pribadi (yang merupakan kredenal 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
-
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 konsol. AWS IoT
-
Dari panel navigasi, pilih Connect, lalu pilih Fleet provisioning templates.
-
Pilih Buat template dan ikuti petunjuknya.
-
-
Buat sertifikat dan kunci pribadi terkait untuk digunakan sebagai penyediaan sertifikat klaim.
-
Daftarkan sertifikat ini AWS IoT dan kaitkan kebijakan IoT yang membatasi penggunaan sertifikat. Contoh kebijakan IoT berikut membatasi penggunaan sertifikat yang terkait dengan kebijakan ini untuk menyediakan perangkat.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["iot:Connect"], "Resource": "*" }, { "Effect": "Allow", "Action": ["iot:Publish","iot:Receive"], "Resource": [ "arn:aws:iot:
aws-region
:aws-account-id
:topic/$aws/certificates/create/*", "arn:aws:iot:aws-region
:aws-account-id
:topic/$aws/provisioning-templates/templateName
/provision/*" ] }, { "Effect": "Allow", "Action": "iot:Subscribe", "Resource": [ "arn:aws:iot:aws-region
:aws-account-id
:topicfilter/$aws/certificates/create/*", "arn:aws:iot:aws-region
:aws-account-id
:topicfilter/$aws/provisioning-templates/templateName
/provision/*" ] } ] } -
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 kepala layanan. AWS IoT -
Memproduksi perangkat dengan sertifikat klaim penyediaan yang tertanam dengan aman di dalamnya.
Perangkat sekarang siap dikirim ke tempat ia akan diinstal untuk digunakan.
penting
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk di perangkat. Kami menyarankan Anda menggunakan 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
-
Perangkat menggunakan AWS IoT SDK Perangkat, SDK Seluler, dan AWS IoT Klien Perangkat untuk menyambung dan mengautentikasi dengan AWS IoT menggunakan sertifikat klaim penyediaan yang diinstal pada perangkat.
catatan
Untuk keamanan, yang
certificateOwnershipToken
dikembalikanCreateCertificateFromCsr
danCreateKeysAndCertificate
kedaluwarsa setelah satu jam.RegisterThing
harus dipanggil sebelumcertificateOwnershipToken
kedaluwarsa. Jika sertifikat yang dibuat olehCreateCertificateFromCsr
atauCreateKeysAndCertificate
belum diaktifkan dan belum dilampirkan pada kebijakan atau sesuatu pada saat token kedaluwarsa, sertifikat akan dihapus. Jika token kedaluwarsa, perangkat dapat meneleponCreateCertificateFromCsr
atauCreateKeysAndCertificate
lagi untuk menghasilkan sertifikat baru. -
Perangkat memperoleh sertifikat permanen dan kunci pribadi dengan menggunakan salah satu opsi ini. Perangkat akan menggunakan sertifikat dan kunci untuk semua otentikasi future dengan AWS IoT.
-
Panggilan CreateKeysAndCertificateuntuk membuat sertifikat baru dan kunci pribadi menggunakan otoritas AWS sertifikat.
Atau
-
Panggilan CreateCertificateFromCsruntuk menghasilkan sertifikat dari permintaan penandatanganan sertifikat yang menjaga kunci pribadinya tetap aman.
-
-
Dari perangkat, panggil RegisterThinguntuk mendaftarkan perangkat dengan AWS IoT dan membuat sumber daya cloud.
Layanan Fleet Provisioning menggunakan template penyediaan untuk menentukan dan membuat sumber daya cloud seperti IoT. Template dapat menentukan atribut dan grup yang menjadi milik benda itu. Kelompok benda harus ada sebelum hal baru dapat ditambahkan ke mereka.
-
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 mengautentikasi mereka dan memberi mereka akses ke AWS IoT fitur dan operasi API yang diperlukan untuk melakukan prosedur ini.
Sebelum Anda mengirimkan perangkat
-
Panggilan
CreateProvisioningTemplate
untuk membuat template penyediaan dan mengembalikan TemplateEarn dan TemplateName-nya. -
Buat peran IAM yang digunakan oleh pengguna tepercaya untuk memulai proses penyediaan. Template penyediaan hanya memungkinkan pengguna tersebut untuk menyediakan perangkat. Sebagai contoh:
{ "Effect": "Allow", "Action": [ "iot:CreateProvisioningClaim" ], "Resource": [ "arn:aws:iot:
aws-region
:aws-account-id
:provisioningtemplate/templateName
" ] } -
Berikan izin AWS IoT layanan untuk membuat atau memperbarui sumber daya IoT, seperti hal-hal dan sertifikat di akun Anda saat menyediakan perangkat. Anda melakukan ini dengan melampirkan kebijakan
AWSIoTThingsRegistration
terkelola ke peran IAM (disebut peran penyediaan) yang mempercayai prinsip layanan. AWS IoT -
Sediakan sarana untuk mengidentifikasi pengguna tepercaya Anda, seperti dengan memberi mereka akun yang dapat mengautentikasi mereka dan mengotorisasi interaksi mereka dengan operasi AWS API yang diperlukan untuk mendaftarkan perangkat mereka.
Untuk menginisialisasi perangkat untuk digunakan
-
Pengguna tepercaya masuk ke aplikasi seluler atau layanan web penyediaan Anda.
-
Aplikasi seluler atau aplikasi web menggunakan peran IAM dan panggilan
CreateProvisioningClaim
untuk mendapatkan sertifikat klaim penyediaan sementara dari. AWS IoTcatatan
Untuk keamanan, sertifikat klaim penyediaan sementara yang
CreateProvisioningClaim
dikembalikan 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. -
Aplikasi seluler atau aplikasi web memasok sertifikat klaim penyediaan sementara ke perangkat bersama dengan informasi konfigurasi yang diperlukan, seperti kredensi Wi-Fi.
-
Perangkat menggunakan sertifikat klaim penyediaan sementara untuk terhubung AWS IoT menggunakan. AWS IoT SDK Perangkat, SDK Seluler, dan AWS IoT Klien Perangkat
-
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 memasukkan opsi ini kembali untuk semua otentikasi future. AWS IoT
-
Panggilan CreateKeysAndCertificateuntuk membuat sertifikat baru dan kunci pribadi menggunakan otoritas AWS sertifikat.
Atau
-
Panggilan CreateCertificateFromCsruntuk menghasilkan sertifikat dari permintaan penandatanganan sertifikat yang menjaga kunci pribadinya tetap aman.
catatan
Ingat CreateKeysAndCertificateatau CreateCertificateFromCsrharus mengembalikan sertifikat yang valid dalam waktu lima menit setelah terhubung AWS IoT dengan sertifikat klaim penyediaan sementara.
-
-
Perangkat memanggil RegisterThinguntuk mendaftarkan perangkat dengan AWS IoT dan membuat sumber daya cloud.
Layanan Fleet Provisioning menggunakan template penyediaan untuk menentukan dan membuat sumber daya cloud seperti IoT. Template dapat menentukan atribut dan grup yang menjadi milik benda itu. Kelompok benda harus ada sebelum hal baru dapat ditambahkan ke mereka.
-
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 CLI AWS
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 template penyediaan
-
Buat fungsi Lambda yang memiliki input dan output yang ditentukan. Fungsi Lambda sangat dapat disesuaikan.
allowProvisioning
danparameterOverrides
diperlukan untuk membuat kait pra-penyediaan. Untuk informasi selengkapnya tentang membuat fungsi Lambda, lihat Menggunakan AWS Lambda dengan Antarmuka Baris AWS Perintah.Berikut ini adalah contoh output fungsi Lambda:
{ "allowProvisioning": True, "parameterOverrides": { "
incomingKey0
": "incomingValue0
", "incomingKey1
": "incomingValue1
" } } -
AWS IoT menggunakan kebijakan berbasis sumber daya untuk memanggil Lambda, jadi Anda harus memberikan izin AWS IoT untuk memanggil fungsi Lambda Anda.
penting
Pastikan untuk menyertakan
source-arn
atausource-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 Pencegahan "confused deputy" lintas layanan.Berikut ini adalah contoh menggunakan izin tambahan memberikan izin IoT ke Lambda Anda.
aws lambda add-permission \ --function-name
myLambdaFunction
\ --statement-id iot-permission \ --action lambda:InvokeFunction \ --principal iot.amazonaws.com -
Tambahkan hook pra-penyediaan ke templat menggunakan perintah create-provisioning-template atau update-provisioning-template.
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-arnarn:aws:iam:us-east-1:1234564789012:role/myRole
\ --template-bodyfile://template.json
\ --pre-provisioning-hookfile://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 Memuat AWS CLI Parameter dari File. Berikut ini menunjukkan
template
parameter dalam format JSON 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" } }, "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 diperluas:{ "targetArn" : "
arn:aws:lambda:us-east-1:765219403047:function:pre_provisioning_test
", "payloadVersion" : "2020-04-01
" }