

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 AWS IoT Greengrass kualifikasi
<a name="set-config"></a>

Sebelum menjalankan pengujian, Anda harus mengonfigurasi pengaturan untuk AWS kredensil dan perangkat di komputer host Anda.

## Konfigurasikan AWS kredensil di config.json
<a name="cfg-aws-gg"></a>

Anda harus mengonfigurasikan kredensial pengguna IAM Anda di file `<device_tester_extract_location>/configs/config.json`. Gunakan kredensil untuk IDT untuk pengguna AWS IoT Greengrass V2 yang dibuat di. [Buat dan konfigurasikan Akun AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Anda dapat menentukan kredensial Anda dengan salah satu dari dua cara berikut:
+ Di file kredensial
+ Sebagai variabel lingkungan

### Konfigurasikan AWS kredensil dengan file kredensil
<a name="config-cred-file"></a>

IDT menggunakan file kredensials yang sama sebagai AWS CLI. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

Lokasi file kredensial itu bervariasi, tergantung pada sistem operasi yang Anda gunakan:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Tambahkan AWS kredensi Anda ke `credentials` file dalam format berikut:

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

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

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

**catatan**  
Jika Anda tidak menggunakan `default` AWS profil, pastikan untuk mengubah nama profil di `config.json` file Anda. Untuk informasi selengkapnya, lihat [Profil Bernama](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Konfigurasikan AWS kredensil dengan variabel lingkungan
<a name="config-env-vars"></a>

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 AWS IoT Greengrass V2 dapat menggunakan variabel `AWS_ACCESS_KEY_ID` dan `AWS_SECRET_ACCESS_KEY` lingkungan untuk menyimpan AWS kredensil Anda.

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
<a name="device-config"></a>

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

Selain AWS kredensil, IDT untuk AWS IoT Greengrass V2 membutuhkan informasi tentang perangkat tempat pengujian 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`:

------
#### [ IDT v4.9.3 ]

```
[
  {
    "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.  
Jika Anda ingin mencantumkan perangkat Anda di Katalog AWS Partner Perangkat, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses daftar.

`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`  
<a name="description-ml"></a>Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menggunakan komponen pembelajaran mesin ( AWS ML) yang disediakan.  
Mengaktifkan fitur ini juga memvalidasi <a name="description-ml-inference-phrase"></a>bahwa perangkat dapat melakukan inferensi ML menggunakan kerangka kerja [Deep Learning Runtime](https://github.com/neo-ai/neo-ai-dlr) dan [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) ML.  
Nilai yang valid adalah kombinasi dari `dlr` dan `tensorflowlite`, atau `no`.  
`docker`  
<a name="description-docker"></a>Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menggunakan komponen Docker application manager () AWS-provided. `aws.greengrass.DockerApplicationManager`  
Mengaktifkan fitur ini juga memvalidasi <a name="description-docker-app-manager-qual-phrase"></a>bahwa perangkat dapat mengunduh gambar kontainer Docker dari Amazon ECR.  
Nilai yang valid adalah kombinasi dari `yes` atau `no`.  
`streamManagement`  
<a name="description-sm"></a>Memvalidasi bahwa perangkat tersebut dapat mengunduh, menginstal, dan menjalankan perintah [manajer pengaliran AWS IoT Greengrass](manage-data-streams.md).  
Nilai yang valid adalah kombinasi dari `yes` atau `no`.  
`hsi`  
<a name="description-hsi"></a>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 \$111 AWS](pkcs11-provider-component.md) yang disediakan dapat berinteraksi dengan HSM menggunakan pustaka PKCS \$111 yang disediakan vendor. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md).  
Nilai yang valid adalah `hsm` atau `no`.
Pengujian hanya `hsi` tersedia dengan IDT v4.9.3 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.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.

`connectivity.port`  
Tidak wajib. 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`  
Tidak wajib. 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 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.  
<a name="connectivity-protocol-ssh-only"></a>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.

------
#### [ IDT v4.9.4 ]

```
[
  {
    "id": "<pool-id>",
    "sku": "<sku>",
    "features": [
      {
        "name": "arch",
        "value": "x86_64 | armv6l | armv7l | aarch64"
      },
      {
        "name": "docker",
        "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.  
Jika Anda ingin mencantumkan perangkat Anda di Katalog AWS Partner Perangkat, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses daftar.

`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`  
`docker`  
<a name="description-docker"></a>Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menggunakan komponen Docker application manager () AWS-provided. `aws.greengrass.DockerApplicationManager`  
Mengaktifkan fitur ini juga memvalidasi <a name="description-docker-app-manager-qual-phrase"></a>bahwa perangkat dapat mengunduh gambar kontainer Docker dari Amazon ECR.  
Nilai yang valid adalah kombinasi dari `yes` atau `no`.  
`hsi`  
<a name="description-hsi"></a>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 \$111 AWS](pkcs11-provider-component.md) yang disediakan dapat berinteraksi dengan HSM menggunakan pustaka PKCS \$111 yang disediakan vendor. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md).  
Nilai yang valid adalah `hsm` atau `no`.
Pengujian hanya `hsi` tersedia dengan IDT v4.9.3 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.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.

`connectivity.port`  
Tidak wajib. 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`  
Tidak wajib. 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 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.  
<a name="connectivity-protocol-ssh-only"></a>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
<a name="userdata-config"></a>

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.   
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.  
Untuk informasi tentang versi inti Greengrass yang didukung untuk IDT, lihat. AWS IoT Greengrass[Versi IDT terbaru untuk V2 AWS IoT Greengrass](dev-test-versions.md#idt-latest-version) [Untuk mengunduh perangkat lunak Greengrass terbaru, lihat Mengunduh perangkat lunak. AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html#config-gg)

`PreInstalled`  
Fitur ini tersedia untuk IDT v4.5.8 dan versi yang lebih baru hanya pada perangkat Linux.  
(Opsional) Ketika nilainya*yes*, 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 AWS IoT Greengrass Core dengan penyediaan sumber daya otomatis](quick-installation.md) Jika [menginstal dengan penyediaan manual](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html), sertakan langkah “Tambahkan AWS IoT benda ke grup hal baru atau yang sudah ada” saat membuat [AWS IoT sesuatu](https://docs.aws.amazon.com/greengrass/v2/developerguide/manual-installation.html#create-iot-thing) 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 di`effectiveConfig.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.   
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](dev-tst-prereqs.md#configure-idt-permissions) 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, lihat[Konfigurasikan peran pertukaran token kustom](device-config-setup.md#configure-custom-tes-role-for-idt).

`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](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.  
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. Untuk informasi selengkapnya, lihat [Ambil konfigurasi dari AWS Parameter Store](#fetch-config)  
`hsm.greengrassPkcsPluginJar`  
Jalur lengkap ke [komponen penyedia PKCS \$111](pkcs11-provider-component.md) yang Anda unduh ke mesin host IDT. AWS IoT Greengrass menyediakan 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](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar).  
`hsm.pkcs11ProviderLibrary`  
Jalur lengkap ke pustaka PKCS \$111 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.  
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](#cfg-aws-gg). . Untuk informasi selengkapnya tentang mengunggah sertifikat AWS IoT, lihat [Mendaftarkan sertifikat klien secara manual](https://docs.aws.amazon.com/iot/latest/developerguide/manual-cert-registration.html) 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
<a name="fetch-config"></a>

AWS IoT Device Tester (IDT) menyertakan fitur opsional untuk mengambil nilai konfigurasi dari [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html). 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](https://docs.aws.amazon.com/greengrass/v2/developerguide/dev-tst-prereqs.html) 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 Manager panduan pengguna](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html).

   ```
   {
          "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.

1. 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
   ```

1. 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 2`IDT-example-value`. Konfigurasi ini mirip dengan pengaturan `"keyLabel": "IDT-example-value"` tetapi, sebaliknya, nilai itu disimpan sebagai terenkripsi di AWS Cloud.