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
. 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:<device_tester_extract_location>
/configs/config.json
-
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
dantensorflowlite
, atauno
. 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
atauno
. streamManagement
-
Memvalidasi bahwa perangkat tersebut dapat mengunduh, menginstal, dan menjalankan perintah manajer pengaliran AWS IoT Greengrass.
Nilai yang valid adalah kombinasi dari
yes
atauno
. 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
atauno
.
catatan
IDT v4.2.0 dan versi yang lebih baru mendukung pengujian fitur
ml
,docker
, danstreamManagement
. Jika Anda tidak ingin menguji fitur ini, atur nilai yang sesuai keno
.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
danWindows
. 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 kessh
. connectivity.port
-
Opsional. Jumlah port yang akan digunakan untuk koneksi SSH.
Nilai default-nya adalah 22.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
. connectivity.publicKeyPath
-
Opsional. Jalur lengkap ke kunci publik digunakan untuk mengautentikasi koneksi ke perangkat yang sedang diuji.
Saat Anda menentukan
publicKeyPath
, 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 denganknown_hosts
file, yaitu,ip-address
key-type
public-key
connectivity.auth
-
Informasi autentikasi untuk koneksi tersebut.
Properti ini hanya berlaku jika
connectivity.protocol
diatur kessh
.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 kepassword
. 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 kepki
. 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
Untuk informasi tentang versi inti Greengrass yang didukung untuk IDT, lihat. AWS IoT Greengrass Versi IDT terbaru untuk V2 AWS IoT Greengrass Untuk mengunduh perangkat lunak Greengrass terbaru, lihat Mengunduh perangkat lunak. AWS IoT Greengrass
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 dieffectiveConfig.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 kessh
.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.
-
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 dengan
IDT
, 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. -
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
-
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. AWSMisalnya, Anda ingin menggunakan
IDT-example-name
parameter dari Langkah 2 sebagai KeyLabel HSM dalam konfigurasi HSM Anda. Untuk melakukan ini, Anda dapat memperbaruiuserdata.json
sebagai berikut:"hsm": { "keyLabel": "{{AWS.Parameter.IDT-example-name}}", [...] }
IDT akan mengambil nilai parameter ini saat runtime yang disetel ke Langkah 2
IDT-example-value
. Konfigurasi ini mirip dengan pengaturan"keyLabel": "IDT-example-value"
tetapi, sebaliknya, nilai itu disimpan sebagai terenkripsi di AWS Cloud.