Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Just-in-time penyediaan
Anda dapat menggunakan penyediaan just-in-time (JITP) untuk menyediakan perangkat Anda saat pertama kali mencoba menyambung. AWS IoT Untuk menyediakan perangkat, Anda harus mengaktifkan pendaftaran otomatis dan mengaitkan templat penyediaan dengan sertifikat CA yang digunakan untuk menandatangani sertifikat perangkat. Keberhasilan dan kesalahan penyediaan dicatat seperti Metrik penyediaan perangkat di Amazon CloudWatch.
Topik
Ikhtisar JITP
Saat perangkat mencoba menyambung AWS IoT dengan menggunakan sertifikat yang ditandatangani oleh sertifikat CA terdaftar, AWS IoT memuat template dari sertifikat CA dan menggunakannya untuk memanggil RegisterThing. Alur kerja JITP pertama-tama mendaftarkan sertifikat dengan nilai statusPENDING_ACTIVATION. Ketika alur penyediaan perangkat selesai, status sertifikat diubah menjadiACTIVE.
AWS IoT mendefinisikan parameter berikut yang dapat Anda deklarasikan dan referensi dalam templat penyediaan:
-
AWS::IoT::Certificate::Country -
AWS::IoT::Certificate::Organization -
AWS::IoT::Certificate::OrganizationalUnit -
AWS::IoT::Certificate::DistinguishedNameQualifier -
AWS::IoT::Certificate::StateName -
AWS::IoT::Certificate::CommonName -
AWS::IoT::Certificate::SerialNumber -
AWS::IoT::Certificate::Id
Nilai untuk parameter template penyediaan ini terbatas pada apa yang dapat diekstrak JITP dari bidang subjek sertifikat perangkat yang disediakan. Sertifikat harus berisi nilai untuk semua parameter dalam badan template. AWS::IoT::Certificate::IdParameter mengacu pada ID yang dihasilkan secara internal, bukan ID yang terkandung dalam sertifikat. Anda bisa mendapatkan nilai ID ini menggunakan principal() fungsi di dalam AWS IoT aturan.
catatan
Anda dapat menyediakan perangkat menggunakan fitur penyediaan AWS IoT Core just-in-time (JITP) tanpa harus mengirim seluruh rantai kepercayaan pada koneksi pertama perangkat ke. AWS IoT Core Menyajikan sertifikat CA bersifat opsional, tetapi perangkat diperlukan untuk mengirim ekstensi
Contoh badan templat
File JSON berikut adalah contoh badan template dari template JITP lengkap.
{ "Parameters":{ "AWS::IoT::Certificate::CommonName":{ "Type":"String" }, "AWS::IoT::Certificate::SerialNumber":{ "Type":"String" }, "AWS::IoT::Certificate::Country":{ "Type":"String" }, "AWS::IoT::Certificate::Id":{ "Type":"String" } }, "Resources":{ "thing":{ "Type":"AWS::IoT::Thing", "Properties":{ "ThingName":{ "Ref":"AWS::IoT::Certificate::CommonName" }, "AttributePayload":{ "version":"v1", "serialNumber":{ "Ref":"AWS::IoT::Certificate::SerialNumber" } }, "ThingTypeName":"lightBulb-versionA", "ThingGroups":[ "v1-lightbulbs", { "Ref":"AWS::IoT::Certificate::Country" } ] }, "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:123456789012:topic/foo/bar\"] }] }" } } } }
Template contoh ini mendeklarasikan nilai untuk parameter AWS::IoT::Certificate::CommonNameAWS::IoT::Certificate::SerialNumber,AWS::IoT::Certificate::Country,, AWS::IoT::Certificate::Id dan penyediaan yang diekstraksi dari sertifikat dan digunakan di Resources bagian tersebut. Alur kerja JITP kemudian menggunakan template ini untuk melakukan tindakan berikut:
-
Daftarkan sertifikat dan atur statusnya ke PENDING_ACTIVE.
-
Buat sumber daya satu hal.
-
Buat satu sumber daya kebijakan.
-
Lampirkan kebijakan ke sertifikat.
-
Lampirkan sertifikat pada objek .
-
Perbarui status sertifikat ke AKTIF.
Penyediaan perangkat gagal jika sertifikat tidak memiliki semua properti yang disebutkan di Parameters bagiantemplateBody. Misalnya, jika AWS::IoT::Certificate::Country disertakan dalam template, tetapi sertifikat tidak memiliki Country properti, penyediaan perangkat gagal.
Anda juga dapat menggunakan CloudTrail untuk memecahkan masalah dengan template JITP Anda. Untuk informasi tentang metrik yang masuk di Amazon CloudWatch, lihatMetrik penyediaan perangkat. Untuk informasi selengkapnya tentang templat penyediaan, lihat Template penye diaan.
catatan
Selama proses penyediaan, penyediaan just-in-time (JITP) memanggil operasi API bidang kontrol lainnya. AWS IoT Panggilan ini mungkin melebihi Kuota AWS IoT
Throttling yang ditetapkan untuk akun Anda dan mengakibatkan panggilan yang dibatasi. Hubun AWS gi Dukungan Pelang
Daftarkan CA menggunakan templat penyediaan
Untuk mendaftarkan CA dengan menggunakan templat penyediaan lengkap, ikuti langkah-langkah berikut:
-
Simpan template penyediaan Anda dan informasi peran ARN seperti contoh berikut sebagai file JSON:
{ "templateBody" : "{\r\n \"Parameters\" : {\r\n \"AWS::IoT::Certificate::CommonName\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::SerialNumber\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Country\": {\r\n \"Type\": \"String\"\r\n },\r\n \"AWS::IoT::Certificate::Id\": {\r\n \"Type\": \"String\"\r\n }\r\n },\r\n \"Resources\": {\r\n \"thing\": {\r\n \"Type\": \"AWS::IoT::Thing\",\r\n \"Properties\": {\r\n \"ThingName\": {\r\n \"Ref\": \"AWS::IoT::Certificate::CommonName\"\r\n },\r\n \"AttributePayload\": {\r\n \"version\": \"v1\",\r\n \"serialNumber\": {\r\n \"Ref\": \"AWS::IoT::Certificate::SerialNumber\"\r\n }\r\n },\r\n \"ThingTypeName\": \"lightBulb-versionA\",\r\n \"ThingGroups\": [\r\n \"v1-lightbulbs\",\r\n {\r\n \"Ref\": \"AWS::IoT::Certificate::Country\"\r\n }\r\n ]\r\n },\r\n \"OverrideSettings\": {\r\n \"AttributePayload\": \"MERGE\",\r\n \"ThingTypeName\": \"REPLACE\",\r\n \"ThingGroups\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"certificate\": {\r\n \"Type\": \"AWS::IoT::Certificate\",\r\n \"Properties\": {\r\n \"CertificateId\": {\r\n \"Ref\": \"AWS::IoT::Certificate::Id\"\r\n },\r\n \"Status\": \"ACTIVE\"\r\n },\r\n \"OverrideSettings\": {\r\n \"Status\": \"DO_NOTHING\"\r\n }\r\n },\r\n \"policy\": {\r\n \"Type\": \"AWS::IoT::Policy\",\r\n \"Properties\": {\r\n \"PolicyDocument\": \"{ \\\"Version\\\": \\\"2012-10-17\\\", \\\"Statement\\\": [{ \\\"Effect\\\": \\\"Allow\\\", \\\"Action\\\":[\\\"iot:Publish\\\"], \\\"Resource\\\": [\\\"arn:aws:iot:us-east-1:123456789012:topic\/foo\/bar\\\"] }] }\"\r\n }\r\n }\r\n }\r\n}", "roleArn" : "arn:aws:iam::123456789012:role/JITPRole" }Dalam contoh ini, nilai
templateBodybidang harus berupa objek JSON yang ditentukan sebagai string yang lolos dan hanya dapat menggunakan nilai-nilai dalam daftar sebelumnya. Anda dapat menggunakan berbagai alat untuk membuat output JSON yang diperlukan, sepertijson.dumps(Python) atauJSON.stringify(Node). NilairoleARNbidang harus berupa ARN dari peran yangAWSIoTThingsRegistrationmelekat padanya. Juga, template Anda dapat menggunakan yang sudah adaPolicyNamealih-alih inlinePolicyDocumentdalam contoh. -
Daftarkan sertifikat CA dengan operasi API RegisterCACertificate atau perintah CLI.
register-ca-certificateAnda akan menentukan direktori template penyediaan dan informasi ARN peran yang Anda simpan di langkah sebelumnya:Berikut ini menunjukkan contoh cara mendaftarkan sertifikat CA dalam
DEFAULTmode menggunakan AWS CLI:aws iot register-ca-certificate --ca-certificate file://your-ca-cert--verification-cert file://your-verification-cert--set-as-active --allow-auto-registration --registration-config file://your-templateBerikut ini menunjukkan contoh cara mendaftarkan sertifikat CA dalam
SNI_ONLYmode menggunakan AWS CLI:aws iot register-ca-certificate --ca-certificate file://your-ca-cert--certificate-modeSNI_ONLY--set-as-active --allow-auto-registration --registration-config file://your-templateUntuk informasi selengkapnya, lihat Mend aftarkan Sertifikat CA Anda.
-
(Opsional) Perbarui pengaturan untuk sertifikat CA dengan menggunakan operasi API UpdateCacertificate atau perintah CLI.
update-ca-certificateBerikut ini menunjukkan contoh cara memperbarui sertifikat CA menggunakan AWS CLI:
aws iot update-ca-certificate --certificate-idcaCertificateId--new-auto-registration-status ENABLE --registration-config file://your-template
Daftarkan CA menggunakan nama template penyediaan
Untuk mendaftarkan CA dengan menggunakan nama template penyediaan, ikuti langkah-langkah berikut:
-
Simpan isi template penyediaan Anda sebagai file JSON. Anda dapat menemukan contoh badan templat di contoh badan templat.
-
Untuk membuat template penyediaan, gunakan perintah CreateProvisioningTemplate API atau
create-provisioning-templateCLI:aws iot create-provisioning-template --template-nameyour-template-name\ --template-body file://your-template-body.json--type JITP \ --provisioning-role-arnarn:aws:iam::123456789012:role/testcatatan
Untuk penyediaan just-in-time (JITP), Anda harus menentukan jenis template
JITPsaat membuat templat penyediaan. Untuk informasi selengkapnya tentang jenis template, lihat CreateProvisioningTemplate di Refer AWS ensi API. -
Untuk mendaftarkan CA dengan nama template, gunakan API RegisterCACertificate atau perintah CLI:
register-ca-certificateaws iot register-ca-certificate --ca-certificate file://your-ca-cert--verification-certfile://your-verification-cert\ --set-as-active --allow-auto-registration --registration-config templateName=your-template-name