Konfigurasikan pengaturan IDT untuk menjalankan rangkaian kualifikasi AWS IoT Greengrass - AWS IoT Greengrass

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

Konfigurasikan pengaturan IDT untuk menjalankan rangkaian kualifikasi AWS IoT Greengrass

Sebelum menjalankan tes, Anda harus mengonfigurasi pengaturan untuk kredensial AWS dan perangkat di komputer host Anda.

Konfigurasikan kredensial AWS di config.json

Anda harus mengonfigurasikan kredensial pengguna IAM Anda di file <device_tester_extract_location>/configs/config.json. Gunakan kredensial untuk IDT untuk Pengguna V2 AWS IoT Greengrass yang dibuat di Buat dan konfigurasi Akun AWS. Anda dapat menentukan kredensial Anda dengan salah satu dari dua cara berikut:

  • Di file kredensial

  • Sebagai variabel lingkungan

IDT menggunakan file kredensials yang sama sebagai AWS CLI. Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial.

Lokasi file kredensial itu bervariasi, tergantung pada sistem operasi yang Anda gunakan:

  • macOS, Linux: ~/.aws/credentials

  • Windows: C:\Users\UserName\.aws\credentials

Tambahkan kredensial AWS Anda ke file credentials dalam format berikut:

[default] aws_access_key_id = <your_access_key_id> aws_secret_access_key = <your_secret_access_key>

Untuk mengonfigurasi IDT untuk V2 AWS IoT Greengrass untuk menggunakan kredensial AWS dari file credentials Anda, edit file config.json Anda sebagai berikut:

{ "awsRegion": "region", "auth": { "method": "file", "credentials": { "profile": "default" } } }
catatan

Jika Anda tidak menggunakan profil default AWS, pastikan untuk mengubah nama profil di file config.json Anda. Untuk informasi selengkapnya, lihat Profil Bernama.

Variabel lingkungan adalah variabel yang dikelola oleh sistem operasi dan digunakan oleh perintah sistem. Variabel ini tidak tersimpan jika Anda menutup sesi SSH. IDT untuk V2 AWS IoT Greengrass dapat menggunakan variabel lingkungan AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY untuk menyimpan kredensial AWS.

Untuk mengatur variabel ini di Linux, macOS, atau Unix, gunakan export:

export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Untuk menetapkan variabel ini di Windows, gunakan set:

set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Untuk mengonfigurasi IDT untuk menggunakan variabel lingkungan, edit bagian auth di file config.json Anda. Berikut ini contohnya:

{ "awsRegion": "region", "auth": { "method": "environment" } }

Konfigurasikan device.json

Selain kredensial AWS, IDT untuk V2 AWS IoT Greengrass membutuhkan informasi tentang perangkat tempat pengujian tersebut dijalankan. Contoh informasi antara lain alamat IP, informasi login, sistem operasi, dan arsitektur CPU.

Anda harus memberikan informasi ini dengan menggunakan templat device.json yang terletak di <device_tester_extract_location>/configs/device.json:

[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "arch", "value": "x86_64 | armv6l | armv7l | aarch64" }, { "name": "ml", "value": "dlr | tensorflowlite | dlr,tensorflowlite | no" }, { "name": "docker", "value": "yes | no" }, { "name": "streamManagement", "value": "yes | no" }, { "name": "hsi", "value": "hsm | no" } ], "devices": [ { "id": "<device-id>", "operatingSystem": "Linux | Windows", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": 22, "publicKeyPath": "<public-key-path>", "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]
catatan

Tentukan privKeyPath hanya jika method diatur ke pki.

Tentukan password hanya jika method diatur ke password.

Semua properti yang berisi nilai wajib diisi seperti yang dijelaskan di sini:

id

ID alfanumerik yang ditetapkan pengguna yang secara unik mengidentifikasi kumpulan perangkat disebut kolam perangkat. Perangkat yang termasuk dalam suatu kolam harus memiliki perangkat keras yang identik. Ketika Anda menjalankan serangkaian tes, perangkat di kolam tersebut digunakan untuk memparalelkan beban kerja. Beberapa perangkat digunakan untuk menjalankan tes yang berbeda.

sku

Nilai alfanumerik yang secara unik mengidentifikasi perangkat yang diuji. SKU digunakan untuk melacak forum yang berkualitas.

catatan

Jika Anda ingin mencantumkan perangkat Anda di Katalog Perangkat AWS Partner, SKU yang Anda tentukan di sini harus sesuai dengan SKU yang Anda gunakan dalam proses pencantuman.

features

Rangkaian yang berisi fitur perangkat yang didukung. Semua fitur bersifat wajib.

arch

Arsitektur sistem operasi yang didukung yang divalidasi oleh oleh tes yang dijalankan. Nilai yang valid adalah:

  • x86_64

  • armv6l

  • armv7l

  • aarch64

ml

Memvalidasi bahwa perangkat tersebut memenuhi semua dependensi teknis yang diperlukan untuk menggunakan komponen machine learning (ML) yang disediakan oleh AWS.

Mengaktifkan fitur ini juga memvalidasi bahwa perangkat dapat melakukan inferensi ML menggunakan kerangka kerja Deep Learning Runtime dan TensorFlow Lite ML.

Nilai yang valid adalah kombinasi dari dlr dan tensorflowlite, atau no.

docker

Memvalidasi bahwa perangkat tersebut memenuhi semua dependensi teknis yang diperlukan untuk menggunakan komponen manajer aplikasi Docker yang disediakan oleh AWS (aws.greengrass.DockerApplicationManager).

Mengaktifkan fitur ini juga memvalidasi bahwa perangkat dapat mengunduh gambar kontainer Docker dari Amazon ECR.

Nilai yang valid adalah kombinasi dari yes atau no.

streamManagement

Memvalidasi bahwa perangkat tersebut dapat mengunduh, menginstal, dan menjalankan perintah manajer pengaliran AWS IoT Greengrass.

Nilai yang valid adalah kombinasi dari yes atau no.

hsi

Memvalidasi bahwa perangkat dapat mengautentikasi koneksi ke AWS IoT dan AWS IoT Greengrass layanan menggunakan kunci pribadi dan sertifikat yang disimpan dalam modul keamanan perangkat keras (HSM). Pengujian ini juga memverifikasi bahwa komponen penyedia PKCS #11 AWS yang disediakan dapat berinteraksi dengan HSM menggunakan pustaka PKCS #11 yang disediakan vendor. Untuk informasi selengkapnya, lihat Integrasi keamanan perangkat keras.

Nilai yang valid adalah hsm atau no.

catatan

IDT v4.2.0 dan versi yang lebih baru mendukung pengujian fitur ml, docker, dan streamManagement. Jika Anda tidak ingin menguji fitur ini, atur nilai yang sesuai ke no.

catatan

Pengujian hanya hsi tersedia dengan IDT v4.5.1 dan versi yang lebih baru.

devices.id

Pengenal unik yang ditetapkan pengguna untuk perangkat Anda.

devices.operatingSystem

Sistem operasi perangkat. Nilai yang didukung adalah Linux dan Windows.

connectivity.protocol

Protokol komunikasi yang digunakan untuk berkomunikasi dengan perangkat ini. Saat ini, satu-satunya nilai yang didukung adalah ssh untuk perangkat fisik.

connectivity.ip

Alamat IP perangkat yang sedang diuji.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

connectivity.port

Opsional. Jumlah port yang akan digunakan untuk koneksi SSH.

Nilai default-nya adalah 22.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

connectivity.publicKeyPath

Opsional. Jalur lengkap ke kunci publik digunakan untuk mengautentikasi koneksi ke perangkat yang sedang diuji.

Saat Anda menentukanpublicKeyPath, IDT memvalidasi kunci publik perangkat saat membuat koneksi SSH ke perangkat yang sedang diuji. Jika nilai ini tidak ditentukan, IDT membuat koneksi SSH, tetapi tidak memvalidasi kunci publik perangkat.

Kami sangat menyarankan Anda menentukan jalur ke kunci publik, dan Anda menggunakan metode aman untuk mengambil kunci publik ini. Untuk klien SSH berbasis baris perintah standar, kunci publik disediakan dalam file. known_hosts Jika Anda menentukan file kunci publik terpisah, file ini harus menggunakan format yang sama dengan known_hosts file, yaitu, ip-address key-type public-key. Jika ada beberapa entri dengan alamat ip yang sama, entri untuk key-type yang digunakan oleh IDT harus sebelum entri lain dalam file.

connectivity.auth

Informasi autentikasi untuk koneksi tersebut.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

connectivity.auth.method

Metode autentikasi yang digunakan untuk mengakses perangkat melalui protokol konektivitas yang diberikan.

Nilai yang didukung adalah:

  • pki

  • password

connectivity.auth.credentials

Kredensial yang digunakan untuk autentikasi.

connectivity.auth.credentials.password

Kata sandi yang digunakan untuk masuk ke perangkat yang sedang diuji.

Nilai ini hanya berlaku jika connectivity.auth.method diatur ke password.

connectivity.auth.credentials.privKeyPath

Jalur lengkap ke kunci privat yang digunakan untuk masuk ke perangkat yang sedang diuji.

Nilai ini hanya berlaku jika connectivity.auth.method diatur ke pki.

connectivity.auth.credentials.user

Nama pengguna untuk masuk ke perangkat yang sedang diuji.

Konfigurasikan userdata.json

IDT untuk AWS IoT Greengrass V2 juga membutuhkan informasi tambahan tentang lokasi artefak uji dan AWS IoT Greengrass perangkat lunak.

Anda harus memberikan informasi ini dengan menggunakan templat userdata.json yang terletak di <device_tester_extract_location>/configs/userdata.json:

{ "TempResourcesDirOnDevice": "/path/to/temp/folder", "InstallationDirRootOnDevice": "/path/to/installation/folder", "GreengrassNucleusZip": "/path/to/aws.greengrass.nucleus.zip", "PreInstalled": "yes/no", "GreengrassV2TokenExchangeRole": "custom-iam-role-name", "hsm": { "greengrassPkcsPluginJar": "/path/to/aws.greengrass.crypto.Pkcs11Provider-latest.jar", "pkcs11ProviderLibrary": "/path/to/pkcs11-vendor-library", "slotId": "slot-id", "slotLabel": "slot-label", "slotUserPin": "slot-pin", "keyLabel": "key-label", "preloadedCertificateArn": "certificate-arn" "rootCA": "path/to/root-ca" } }

Semua properti yang berisi nilai wajib diisi seperti yang dijelaskan di sini:

TempResourcesDirOnDevice

Jalur lengkap ke folder sementara pada perangkat yang diuji untuk menyimpan artefak uji. Pastikan bahwa izin sudo tidak diperlukan untuk menulis ke direktori ini.

catatan

IDT menghapus isi folder ini ketika selesai menjalankan tes.

InstallationDirRootOnDevice

Jalur penuh ke folder pada perangkat tempat menginstal AWS IoT Greengrass. Untuk PreInstalled Greengrass, ini adalah jalur ke direktori instalasi Greengrass.

Anda harus mengatur izin file yang diperlukan untuk folder ini. Jalankan perintah berikut untuk setiap folder di jalur instalasi.

sudo chmod 755 folder-name
GreengrassNucleusZip

Jalur penuh ke file ZIP inti Greengrass (greengrass-nucleus-latest.zip) pada komputer host Anda. Bidang ini tidak diperlukan untuk pengujian dengan PreInstalled Greengrass.

catatan
PreInstalled

Fitur ini tersedia untuk IDT v4.5.8 dan versi yang lebih baru hanya pada perangkat Linux.

(Opsional) Ketika nilainya ya, IDT akan menganggap jalur yang disebutkan sebagai direktori tempat Greengrass diinstal. InstallationDirRootOnDevice

Untuk informasi selengkapnya tentang cara menginstal Greengrass di perangkat Anda, lihat. Instal perangkat lunak inti AWS IoT Greengrass dengan penyediaan sumber daya otomatis Jika menginstal dengan penyediaan manual, sertakan langkah “Tambahkan AWS IoT benda ke grup hal baru atau yang sudah ada” saat membuat AWS IoTsesuatu secara manual. IDT mengasumsikan bahwa grup benda dan benda dibuat selama pengaturan instalasi. Pastikan bahwa nilai-nilai ini tercermin dalam effectiveConfig.yaml file. IDT memeriksa file di effectiveConfig.yaml bawah<InstallationDirRootOnDevice>/config/effectiveConfig.yaml.

Untuk menjalankan tes dengan HSM, pastikan bahwa aws.greengrass.crypto.Pkcs11Provider bidang diperbarui dieffectiveConfig.yaml.

GreengrassV2TokenExchangeRole

(Opsional) Peran IAM kustom yang ingin Anda gunakan sebagai peran pertukaran token yang diasumsikan perangkat yang diuji untuk berinteraksi dengan AWS sumber daya.

catatan

IDT menggunakan peran IAM khusus ini alih-alih membuat peran pertukaran token default selama pengujian dijalankan. Jika Anda menggunakan peran kustom, Anda dapat memperbarui izin IAM untuk pengguna pengujian untuk mengecualikan iamResourcesUpdate pernyataan yang memungkinkan pengguna membuat dan menghapus peran dan kebijakan IAM.

Untuk informasi selengkapnya tentang membuat peran IAM kustom sebagai peran pertukaran token Anda, lihatKonfigurasikan peran pertukaran token khusus.

hsm

Fitur ini tersedia untuk IDT v4.5.1 dan yang lebih baru.

(Opsional) Informasi konfigurasi untuk pengujian dengan Modul Keamanan AWS IoT Greengrass Perangkat Keras (HSM). Jika tidak, hsm properti harus dihilangkan. Untuk informasi selengkapnya, lihat Integrasi keamanan perangkat keras.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

Awas

Konfigurasi HSM dapat dianggap sebagai data sensitif jika modul keamanan perangkat keras dibagi antara IDT dan sistem lain. Dalam situasi ini, Anda dapat menghindari mengamankan nilai konfigurasi ini dalam teks biasa dengan menyimpannya dalam AWS parameter SecureString Parameter Store dan mengonfigurasi IDT untuk mengambilnya selama eksekusi pengujian. Lihat informasi yang lebih lengkap di Ambil konfigurasi dari AWS Parameter Store

hsm.greengrassPkcsPluginJar

Jalur lengkap ke komponen penyedia PKCS #11 yang Anda unduh ke mesin host IDT. AWS IoT Greengrassmenyediakan komponen ini sebagai file JAR yang dapat Anda unduh untuk ditentukan sebagai plugin penyediaan selama instalasi. Anda dapat mengunduh versi terbaru dari file JAR komponen sebagai URL berikut: https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar.

hsm.pkcs11ProviderLibrary

Jalur lengkap ke pustaka PKCS #11 yang disediakan oleh vendor modul keamanan perangkat keras (HSM) untuk berinteraksi dengan HSM.

hsm.slotId

ID slot yang digunakan untuk mengidentifikasi slot HSM tempat Anda memuat kunci dan sertifikat.

hsm.slotLabel

Label slot yang digunakan untuk mengidentifikasi slot HSM tempat Anda memuat kunci dan sertifikat.

hsm.slotUserPin

PIN pengguna yang digunakan IDT untuk mengautentikasi perangkat lunak AWS IoT Greengrass Core ke HSM.

catatan

Sebagai praktik keamanan terbaik, jangan gunakan PIN pengguna yang sama pada perangkat produksi.

hsm.keyLabel

Label yang digunakan untuk mengidentifikasi kunci dalam modul perangkat keras. Kunci dan sertifikat harus menggunakan label kunci yang sama.

hsm.preloadedCertificateArn

Nama Sumber Daya Amazon (ARN) dari sertifikat perangkat yang diunggah di cloud. AWS IoT

Anda sebelumnya harus membuat sertifikat ini menggunakan kunci di HSM, mengimpornya ke HSM Anda, dan mengunggahnya ke cloud. AWS IoT Untuk informasi tentang membuat dan mengimpor sertifikat, lihat dokumentasi untuk HSM Anda.

Anda harus mengunggah sertifikat ke akun dan Wilayah yang sama yang Anda berikan di config.json. . Untuk informasi selengkapnya tentang mengunggah sertifikatAWS IoT, lihat Mendaftarkan sertifikat klien secara manual di Panduan AWS IoT Pengembang.

hsm.rootCAPath

(Opsional) Jalur lengkap pada mesin host IDT ke otoritas sertifikat root (CA) yang menandatangani sertifikat Anda. Ini diperlukan jika sertifikat di HSM Anda yang dibuat tidak ditandatangani oleh Amazon root CA.

Ambil konfigurasi dari AWS Parameter Store

AWS IoTDevice Tester (IDT) menyertakan fitur opsional untuk mengambil nilai konfigurasi dari AWSSystems Manager Parameter Store. AWS Parameter Store memungkinkan penyimpanan konfigurasi yang aman dan terenkripsi. Saat dikonfigurasi, IDT dapat mengambil parameter dari AWS Parameter Store sebagai pengganti menyimpan parameter dalam teks biasa di dalam file. userdata.json Ini berguna untuk semua data sensitif yang harus disimpan terenkripsi, seperti: kata sandi, pin, dan rahasia lainnya.

  1. Untuk menggunakan fitur ini, Anda harus memperbarui izin yang digunakan dalam membuat pengguna IDT Anda untuk mengizinkan GetParameter tindakan pada parameter yang IDT dikonfigurasi untuk digunakan. Di bawah ini adalah contoh pernyataan izin yang dapat ditambahkan ke pengguna IDT. Untuk informasi selengkapnya, lihat AWS Systems Managerpanduan pengguna.

    { "Sid":"parameterStoreResources", "Effect": "Allow", "Action": [ "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/IDT*" }

    Izin di atas dikonfigurasi untuk memungkinkan pengambilan semua parameter dengan nama yang dimulai denganIDT, dengan menggunakan karakter wildcard. * Anda harus menyesuaikan ini dengan kebutuhan Anda sehingga IDT memiliki akses untuk mengambil parameter yang dikonfigurasi berdasarkan penamaan parameter yang Anda gunakan.

  2. Anda perlu menyimpan nilai konfigurasi Anda di dalam AWS Paramater Store. Ini dapat dilakukan dari AWS konsol atau dari AWS CLI. AWS Parameter Store memungkinkan Anda memilih penyimpanan terenkripsi atau tidak terenkripsi. Untuk penyimpanan nilai sensitif seperti rahasia, kata sandi, dan pin, Anda harus menggunakan opsi terenkripsi yang merupakan jenis parameter. SecureString Untuk mengunggah parameter menggunakan AWS CLI, Anda dapat menggunakan perintah berikut:

    aws ssm put-parameter --name IDT-example-name --value IDT-example-value --type SecureString

    Anda dapat memverifikasi bahwa parameter disimpan menggunakan perintah berikut. (Opsional) Gunakan --with-decryption bendera untuk mengambil parameter yang didekripsiSecureString .

    aws ssm get-parameter --name IDT-example-name

    Menggunakan AWS CLI akan mengunggah parameter di AWS wilayah pengguna CLI saat ini dan IDT akan mengambil parameter dari wilayah yang dikonfigurasi. config.json Untuk memeriksa wilayah Anda dari AWS CLI, gunakan yang berikut ini:

    aws configure get region
  3. Setelah Anda memiliki nilai konfigurasi di AWS Cloud, Anda dapat memperbarui nilai apa pun di dalam konfigurasi IDT untuk diambil dari Cloud. AWS Untuk melakukannya, Anda menggunakan placeholder dalam konfigurasi formulir IDT Anda {{AWS.Parameter.parameter_name}} untuk mengambil parameter dengan nama itu dari Parameter Store. AWS

    Misalnya, Anda ingin menggunakan IDT-example-name parameter dari Langkah 2 sebagai KeyLabel HSM dalam konfigurasi HSM Anda. Untuk melakukan ini, Anda dapat memperbarui userdata.json sebagai berikut:

    "hsm": { "keyLabel": "{{AWS.Parameter.IDT-example-name}}", [...] }

    IDT akan mengambil nilai parameter ini saat runtime yang disetel ke Langkah 2IDT-example-value. Konfigurasi ini mirip dengan pengaturan "keyLabel": "IDT-example-value" tetapi, sebaliknya, nilai itu disimpan sebagai terenkripsi di AWS Cloud.