

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

# Prasyarat untuk menjalankan suite kualifikasi AWS IoT Greengrass
<a name="dev-tst-prereqs"></a>

Bagian ini menjelaskan prasyarat untuk menggunakan AWS IoT Device Tester (IDT) untuk. AWS IoT Greengrass

## Unduh versi terbaru AWS IoT Device Tester untuk AWS IoT Greengrass
<a name="install-dev-tst-gg"></a>

Unduh [versi terbaru](idt-programmatic-download.md) IDT dan ekstrak perangkat lunak ke lokasi (*<device-tester-extract-location>*) pada sistem file Anda di mana Anda memiliki izin baca/tulis. 

**catatan**  
<a name="unzip-package-to-local-drive"></a>IDT tidak mendukung untuk dijalankan oleh beberapa pengguna dari lokasi bersama, seperti direktori NFS atau folder bersama jaringan Windows. Kami sarankan Anda mengekstraksi paket IDT ke drive lokal dan menjalankan biner IDT pada workstation lokal Anda.  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, ekstraksi IDT ke direktori root seperti `C:\ ` atau `D:\` agar jalur Anda tetap di bawah batas 260 karakter.

## Unduh perangkat AWS IoT Greengrass lunak
<a name="config-gg"></a>

IDT untuk AWS IoT Greengrass V2 menguji perangkat Anda untuk kompatibilitas dengan versi tertentu. AWS IoT Greengrass Jalankan perintah berikut untuk mengunduh perangkat lunak AWS IoT Greengrass Core ke file bernama`aws.greengrass.nucleus.zip`. Ganti *version* dengan [versi komponen nukleus yang didukung untuk versi](dev-test-versions.md) IDT Anda. 

------
#### [ Linux or Unix ]

```
curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip > aws.greengrass.nucleus.zip
```

------
#### [ Windows Command Prompt (CMD) ]

```
curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip > aws.greengrass.nucleus.zip
```

------
#### [ PowerShell ]

```
iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip -OutFile aws.greengrass.nucleus.zip
```

------

Tempatkan file `aws.greengrass.nucleus.zip` yang sudah diunduh di folder `<device-tester-extract-location>/products/`.

**catatan**  
Jangan menempatkan beberapa file dalam direktori ini untuk sistem operasi dan arsitektur yang sama. 

## Buat dan konfigurasikan Akun AWS
<a name="config-aws-account-for-idt"></a>

Sebelum Anda dapat menggunakan AWS IoT Device Tester untuk AWS IoT Greengrass V2, Anda harus melakukan langkah-langkah berikut:

1. [Mengatur sebuah Akun AWS.](#create-aws-account-for-idt) Jika Anda sudah memiliki Akun AWS, lewati ke langkah 2.

1. [Konfigurasikan izin untuk IDT.](#configure-idt-permissions)

Izin akun ini memungkinkan IDT untuk mengakses AWS layanan dan membuat AWS sumber daya, seperti AWS IoT hal-hal dan AWS IoT Greengrass komponen, atas nama Anda.

<a name="idt-aws-credentials"></a>Untuk membuat sumber daya ini, IDT untuk AWS IoT Greengrass V2 menggunakan AWS kredensil yang dikonfigurasi dalam `config.json` file untuk melakukan panggilan API atas nama Anda. Sumber daya ini disediakan pada berbagai waktu selama tes.

**catatan**  
Meskipun sebagian besar pengujian memenuhi syarat untuk [Tingkat Gratis AWS](https://aws.amazon.com/free), Anda harus menyediakan kartu kredit saat mendaftar Akun AWS. Untuk informasi selengkapnya, lihat [Mengapa saya memerlukan metode pembayaran jika akun saya dilindungi oleh Tingkat Gratis?](https://aws.amazon.com/premiumsupport/knowledge-center/free-tier-payment-method/).

### Langkah 1: Siapkan Akun AWS
<a name="create-aws-account-for-idt"></a>

Pada langkah ini, buat dan konfigurasikan Akun AWS. Jika Anda sudah memiliki akun Akun AWS, lewati ke [Langkah 2: Konfigurasikan izin untuk IDT](#configure-idt-permissions).

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

**Untuk mendaftar untuk Akun AWS**

1. Buka [https://portal.aws.amazon.com/billing/pendaftaran.](https://portal.aws.amazon.com/billing/signup)

1. Ikuti petunjuk online.

   Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

   Saat Anda mendaftar untuk sebuah Akun AWS, sebuah *Pengguna root akun AWS*dibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan [tugas yang memerlukan akses pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

Untuk membuat pengguna administrator, pilih salah satu opsi berikut.


****  

| Pilih salah satu cara untuk mengelola administrator Anda | Untuk | Oleh | Anda juga bisa | 
| --- | --- | --- | --- | 
| Di Pusat Identitas IAM (Direkomendasikan) | Gunakan kredensi jangka pendek untuk mengakses. AWSIni sejalan dengan praktik terbaik keamanan. Untuk informasi tentang praktik terbaik, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di *Panduan Pengguna IAM*. | Mengikuti petunjuk di [Memulai](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) di Panduan AWS IAM Identity Center Pengguna. | Konfigurasikan akses terprogram dengan [Mengonfigurasi AWS CLI yang akan digunakan AWS IAM Identity Center](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html) dalam AWS Command Line Interface Panduan Pengguna. | 
| Di IAM (Tidak direkomendasikan) | Gunakan kredensi jangka panjang untuk mengakses. AWS | Mengikuti petunjuk di [Buat pengguna IAM untuk akses darurat](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) di Panduan Pengguna IAM. | Konfigurasikan akses terprogram dengan [Mengelola kunci akses untuk pengguna IAM di Panduan Pengguna](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html) IAM. | 

### Langkah 2: Konfigurasikan izin untuk IDT
<a name="configure-idt-permissions"></a>

Pada langkah ini, konfigurasikan izin yang digunakan IDT untuk AWS IoT Greengrass V2 untuk menjalankan pengujian dan mengumpulkan data penggunaan IDT. Anda dapat menggunakan[Konsol Manajemen AWS](#configure-idt-permissions-console) atau [AWS Command Line Interface (AWS CLI)](#configure-idt-permissions-cli) untuk membuat kebijakan IAM dan pengguna tes untuk IDT, dan kemudian melampirkan kebijakan untuk pengguna. Jika Anda telah membuat pengguna tes untuk IDT, lewati ke [Konfigurasikan perangkat Anda untuk menjalankan tes IDT](device-config-setup.md).

#### Untuk mengonfigurasi izin untuk IDT (konsol)
<a name="configure-idt-permissions-console"></a>

1. Masuklah ke [konsol IAM](https://console.aws.amazon.com/iam).

1. Buat kebijakan yang dikelola pelanggan yang memberikan izin untuk membuat peran dengan izin tertentu. 

   1. Pada panel navigasi, pilih **Kebijakan**, lalu pilih **Buat kebijakan**.

   1. Jika Anda tidak menggunakan PreInstalled, pada tab **JSON**, ganti konten placeholder dengan kebijakan berikut. Jika Anda menggunakan PreInstalled, lanjutkan ke langkah berikut.

      ```
      <a name="customer-managed-policy-cli"></a>{
          "Version":"2012-10-17",		 	 	 
          "Statement":[
          {
            "Sid":"passRoleForResources",
            "Effect":"Allow",
            "Action":"iam:PassRole",
            "Resource":"arn:aws:iam::*:role/idt-*",
            "Condition":{
              "StringEquals":{
                "iam:PassedToService":[
                  "iot.amazonaws.com",
                  "lambda.amazonaws.com",
                  "greengrass.amazonaws.com"
                ]
              }
            }
          },
          {
            "Sid":"lambdaResources",
            "Effect":"Allow",
            "Action":[
              "lambda:CreateFunction",
              "lambda:PublishVersion",
              "lambda:DeleteFunction",
              "lambda:GetFunction"
            ],
            "Resource":[
              "arn:aws:lambda:*:*:function:idt-*"
            ]
          },
          {
            "Sid":"iotResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateThing",
              "iot:DeleteThing",
              "iot:DescribeThing",
              "iot:CreateThingGroup",
              "iot:DeleteThingGroup",
              "iot:DescribeThingGroup",
              "iot:AddThingToThingGroup",
              "iot:RemoveThingFromThingGroup",
              "iot:AttachThingPrincipal",
              "iot:DetachThingPrincipal",
              "iot:UpdateCertificate",
              "iot:DeleteCertificate",
              "iot:CreatePolicy",
              "iot:AttachPolicy",
              "iot:DetachPolicy",
              "iot:DeletePolicy",
              "iot:GetPolicy",
              "iot:Publish",
              "iot:TagResource",
              "iot:ListThingPrincipals",
              "iot:ListAttachedPolicies",
              "iot:ListTargetsForPolicy",
              "iot:ListThingGroupsForThing",
              "iot:ListThingsInThingGroup",
              "iot:CreateJob",
              "iot:DescribeJob",
              "iot:DescribeJobExecution",
              "iot:CancelJob"
            ],
            "Resource":[
              "arn:aws:iot:*:*:thing/idt-*",
              "arn:aws:iot:*:*:thinggroup/idt-*",
              "arn:aws:iot:*:*:policy/idt-*",
              "arn:aws:iot:*:*:cert/*",
              "arn:aws:iot:*:*:topic/idt-*",
              "arn:aws:iot:*:*:job/*"
            ]
          },
          {
            "Sid":"s3Resources",
            "Effect":"Allow",
            "Action":[
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObjectVersion",
              "s3:DeleteObject",
              "s3:CreateBucket",
              "s3:ListBucket",
              "s3:ListBucketVersions",
              "s3:DeleteBucket",
              "s3:PutObjectTagging",
              "s3:PutBucketTagging"
            ],
            "Resource":"arn:aws:s3::*:idt-*"
          },
          {
            "Sid":"roleAliasResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateRoleAlias",
              "iot:DescribeRoleAlias",
              "iot:DeleteRoleAlias",
              "iot:TagResource",
              "iam:GetRole"
            ],
            "Resource":[
              "arn:aws:iot:*:*:rolealias/idt-*",
              "arn:aws:iam::*:role/idt-*"
            ]
          },
          {
            "Sid":"idtExecuteAndCollectMetrics",
            "Effect":"Allow",
            "Action":[
              "iot-device-tester:SendMetrics",
              "iot-device-tester:SupportedVersion",
              "iot-device-tester:LatestIdt",
              "iot-device-tester:CheckVersion",
              "iot-device-tester:DownloadTestSuite"
            ],
            "Resource":"*"
          },
          {
            "Sid":"genericResources",
            "Effect":"Allow",
            "Action":[
              "greengrass:*",
              "iot:GetThingShadow",
              "iot:UpdateThingShadow",
              "iot:ListThings",
              "iot:DescribeEndpoint",
              "iot:CreateKeysAndCertificate"
            ],
            "Resource":"*"
          },
          {
            "Sid":"iamResourcesUpdate",
            "Effect":"Allow",
            "Action":[
              "iam:CreateRole",
              "iam:DeleteRole",
              "iam:CreatePolicy",
              "iam:DeletePolicy",
              "iam:AttachRolePolicy",
              "iam:DetachRolePolicy",
              "iam:TagRole",
              "iam:TagPolicy",
              "iam:GetPolicy",
              "iam:ListAttachedRolePolicies",
              "iam:ListEntitiesForPolicy"
            ],
            "Resource":[
              "arn:aws:iam::*:role/idt-*",
              "arn:aws:iam::*:policy/idt-*"
            ]
          }
        ]
      }
      ```

   1. Jika Anda menggunakan PreInstalled, pada tab **JSON**, ganti konten placeholder dengan kebijakan berikut. Pastikan Anda:
      + Ganti *thingName* dan *thingGroup* dalam `iotResources` pernyataan dengan nama benda dan grup benda yang dibuat selama instalasi Greengrass di perangkat Anda yang sedang diuji (DUT) untuk menambahkan izin.
      + Ganti *passRole* dan *roleAlias* dalam `roleAliasResources` pernyataan dan `passRoleForResources` pernyataan dengan peran yang dibuat selama instalasi Greengrass di DUT Anda.

      ```
      <a name="customer-managed-policy-cli"></a>{
          "Version":"2012-10-17",		 	 	 
          "Statement":[
          {
            "Sid":"passRoleForResources",
            "Effect":"Allow",
            "Action":"iam:PassRole",
            "Resource":"arn:aws:iam::*:role/passRole",
            "Condition":{
              "StringEquals":{
                "iam:PassedToService":[
                  "iot.amazonaws.com",
                  "lambda.amazonaws.com",
                  "greengrass.amazonaws.com"
                ]
              }
            }
          },
          {
            "Sid":"lambdaResources",
            "Effect":"Allow",
            "Action":[
              "lambda:CreateFunction",
              "lambda:PublishVersion",
              "lambda:DeleteFunction",
              "lambda:GetFunction"
            ],
            "Resource":[
              "arn:aws:lambda:*:*:function:idt-*"
            ]
          },
          {
            "Sid":"iotResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateThing",
              "iot:DeleteThing",
              "iot:DescribeThing",
              "iot:CreateThingGroup",
              "iot:DeleteThingGroup",
              "iot:DescribeThingGroup",
              "iot:AddThingToThingGroup",
              "iot:RemoveThingFromThingGroup",
              "iot:AttachThingPrincipal",
              "iot:DetachThingPrincipal",
              "iot:UpdateCertificate",
              "iot:DeleteCertificate",
              "iot:CreatePolicy",
              "iot:AttachPolicy",
              "iot:DetachPolicy",
              "iot:DeletePolicy",
              "iot:GetPolicy",
              "iot:Publish",
              "iot:TagResource",
              "iot:ListThingPrincipals",
              "iot:ListAttachedPolicies",
              "iot:ListTargetsForPolicy",
              "iot:ListThingGroupsForThing",
              "iot:ListThingsInThingGroup",
              "iot:CreateJob",
              "iot:DescribeJob",
              "iot:DescribeJobExecution",
              "iot:CancelJob"
            ],
            "Resource":[
              "arn:aws:iot:*:*:thing/thingName",
              "arn:aws:iot:*:*:thinggroup/thingGroup",
              "arn:aws:iot:*:*:policy/idt-*",
              "arn:aws:iot:*:*:cert/*",
              "arn:aws:iot:*:*:topic/idt-*",
              "arn:aws:iot:*:*:job/*"
            ]
          },
          {
            "Sid":"s3Resources",
            "Effect":"Allow",
            "Action":[
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObjectVersion",
              "s3:DeleteObject",
              "s3:CreateBucket",
              "s3:ListBucket",
              "s3:ListBucketVersions",
              "s3:DeleteBucket",
              "s3:PutObjectTagging",
              "s3:PutBucketTagging"
            ],
            "Resource":"arn:aws:s3::*:idt-*"
          },
          {
            "Sid":"roleAliasResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateRoleAlias",
              "iot:DescribeRoleAlias",
              "iot:DeleteRoleAlias",
              "iot:TagResource",
              "iam:GetRole"
            ],
            "Resource":[
              "arn:aws:iot:*:*:rolealias/roleAlias",
              "arn:aws:iam::*:role/idt-*"
            ]
          },
          {
            "Sid":"idtExecuteAndCollectMetrics",
            "Effect":"Allow",
            "Action":[
              "iot-device-tester:SendMetrics",
              "iot-device-tester:SupportedVersion",
              "iot-device-tester:LatestIdt",
              "iot-device-tester:CheckVersion",
              "iot-device-tester:DownloadTestSuite"
            ],
            "Resource":"*"
          },
          {
            "Sid":"genericResources",
            "Effect":"Allow",
            "Action":[
              "greengrass:*",
              "iot:GetThingShadow",
              "iot:UpdateThingShadow",
              "iot:ListThings",
              "iot:DescribeEndpoint",
              "iot:CreateKeysAndCertificate"
            ],
            "Resource":"*"
          },
          {
            "Sid":"iamResourcesUpdate",
            "Effect":"Allow",
            "Action":[
              "iam:CreateRole",
              "iam:DeleteRole",
              "iam:CreatePolicy",
              "iam:DeletePolicy",
              "iam:AttachRolePolicy",
              "iam:DetachRolePolicy",
              "iam:TagRole",
              "iam:TagPolicy",
              "iam:GetPolicy",
              "iam:ListAttachedRolePolicies",
              "iam:ListEntitiesForPolicy"
            ],
            "Resource":[
              "arn:aws:iam::*:role/idt-*",
              "arn:aws:iam::*:policy/idt-*"
            ]
          }
        ]
      }
      ```
**catatan**  
Jika Anda ingin menggunakan peran [IAM kustom sebagai peran pertukaran token](set-config.md#custom-token-exchange-role-idt) untuk perangkat yang sedang diuji, pastikan Anda memperbarui `roleAliasResources` pernyataan dan `passRoleForResources` pernyataan dalam kebijakan untuk mengizinkan sumber daya peran IAM kustom Anda.

   1. Pilih **Tinjau kebijakan**.

   1. Untuk **Nama**, masukkan **IDTGreengrassIAMPermissions**. Di bawah **Ringkasan**, tinjau izin yang diberikan oleh kebijakan Anda.

   1. Pilih **Buat kebijakan**.

1. Buat pengguna IAM dan lampirkan izin yang diperlukan oleh IDT untuk AWS IoT Greengrass.

   1. Buat pengguna IAM. Ikuti langkah 1 hingga 5 di [Membuat pengguna IAM (konsol)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) di *Panduan Pengguna IAM*.

   1. Lampirkan izin untuk pengguna IAM Anda:

      1. Pada halaman **Atur izin**, pilih **Lampirkan kebijakan yang ada ke pengguna secara langsung**.

      1. Cari **IDTGreengrassIAMPermissions**kebijakan yang Anda buat di langkah sebelumnya. Pilih kotak centang.

   1. Pilih **Selanjutnya: Menandai**.

   1. Pilih **Berikutnya: Tinjauan** untuk melihat ringkasan pilihan Anda.

   1. Pilih **Buat pengguna**.

   1. Untuk melihat kunci akses pengguna (kunci akses IDs dan kunci akses rahasia), pilih **Tampilkan** di sebelah kata sandi dan kunci akses. Untuk menyimpan kunci akses, pilih **Download.csv** lalu simpan file ke lokasi yang aman. Anda menggunakan informasi ini nanti untuk file kredensial AWS .

1. <a name="aws-account-config-next-steps"></a>Langkah berikutnya: Konfigurasikan [perangkat fisik](device-config-setup.md).

#### Untuk mengonfigurasi izin untuk IDT (AWS CLI)
<a name="configure-idt-permissions-cli"></a>

1. Di komputer Anda, instal dan konfigurasikan AWS CLI jika belum diinstal. Ikuti langkah-langkah di [Menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) di *Panduan Pengguna AWS Command Line Interface *.
**catatan**  
 AWS CLI Ini adalah alat open source yang dapat Anda gunakan untuk berinteraksi dengan AWS layanan dari shell baris perintah Anda.

1. Buat kebijakan yang dikelola pelanggan yang memberikan izin untuk mengelola IDT dan peran AWS IoT Greengrass .

   1. Jika Anda tidak menggunakan PreInstalled, buka editor teks dan simpan konten kebijakan berikut dalam file JSON. Jika Anda menggunakan PreInstalled, lanjutkan ke langkah berikut.

      ```
      <a name="customer-managed-policy-cli"></a>{
          "Version":"2012-10-17",		 	 	 
          "Statement":[
          {
            "Sid":"passRoleForResources",
            "Effect":"Allow",
            "Action":"iam:PassRole",
            "Resource":"arn:aws:iam::*:role/idt-*",
            "Condition":{
              "StringEquals":{
                "iam:PassedToService":[
                  "iot.amazonaws.com",
                  "lambda.amazonaws.com",
                  "greengrass.amazonaws.com"
                ]
              }
            }
          },
          {
            "Sid":"lambdaResources",
            "Effect":"Allow",
            "Action":[
              "lambda:CreateFunction",
              "lambda:PublishVersion",
              "lambda:DeleteFunction",
              "lambda:GetFunction"
            ],
            "Resource":[
              "arn:aws:lambda:*:*:function:idt-*"
            ]
          },
          {
            "Sid":"iotResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateThing",
              "iot:DeleteThing",
              "iot:DescribeThing",
              "iot:CreateThingGroup",
              "iot:DeleteThingGroup",
              "iot:DescribeThingGroup",
              "iot:AddThingToThingGroup",
              "iot:RemoveThingFromThingGroup",
              "iot:AttachThingPrincipal",
              "iot:DetachThingPrincipal",
              "iot:UpdateCertificate",
              "iot:DeleteCertificate",
              "iot:CreatePolicy",
              "iot:AttachPolicy",
              "iot:DetachPolicy",
              "iot:DeletePolicy",
              "iot:GetPolicy",
              "iot:Publish",
              "iot:TagResource",
              "iot:ListThingPrincipals",
              "iot:ListAttachedPolicies",
              "iot:ListTargetsForPolicy",
              "iot:ListThingGroupsForThing",
              "iot:ListThingsInThingGroup",
              "iot:CreateJob",
              "iot:DescribeJob",
              "iot:DescribeJobExecution",
              "iot:CancelJob"
            ],
            "Resource":[
              "arn:aws:iot:*:*:thing/idt-*",
              "arn:aws:iot:*:*:thinggroup/idt-*",
              "arn:aws:iot:*:*:policy/idt-*",
              "arn:aws:iot:*:*:cert/*",
              "arn:aws:iot:*:*:topic/idt-*",
              "arn:aws:iot:*:*:job/*"
            ]
          },
          {
            "Sid":"s3Resources",
            "Effect":"Allow",
            "Action":[
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObjectVersion",
              "s3:DeleteObject",
              "s3:CreateBucket",
              "s3:ListBucket",
              "s3:ListBucketVersions",
              "s3:DeleteBucket",
              "s3:PutObjectTagging",
              "s3:PutBucketTagging"
            ],
            "Resource":"arn:aws:s3::*:idt-*"
          },
          {
            "Sid":"roleAliasResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateRoleAlias",
              "iot:DescribeRoleAlias",
              "iot:DeleteRoleAlias",
              "iot:TagResource",
              "iam:GetRole"
            ],
            "Resource":[
              "arn:aws:iot:*:*:rolealias/idt-*",
              "arn:aws:iam::*:role/idt-*"
            ]
          },
          {
            "Sid":"idtExecuteAndCollectMetrics",
            "Effect":"Allow",
            "Action":[
              "iot-device-tester:SendMetrics",
              "iot-device-tester:SupportedVersion",
              "iot-device-tester:LatestIdt",
              "iot-device-tester:CheckVersion",
              "iot-device-tester:DownloadTestSuite"
            ],
            "Resource":"*"
          },
          {
            "Sid":"genericResources",
            "Effect":"Allow",
            "Action":[
              "greengrass:*",
              "iot:GetThingShadow",
              "iot:UpdateThingShadow",
              "iot:ListThings",
              "iot:DescribeEndpoint",
              "iot:CreateKeysAndCertificate"
            ],
            "Resource":"*"
          },
          {
            "Sid":"iamResourcesUpdate",
            "Effect":"Allow",
            "Action":[
              "iam:CreateRole",
              "iam:DeleteRole",
              "iam:CreatePolicy",
              "iam:DeletePolicy",
              "iam:AttachRolePolicy",
              "iam:DetachRolePolicy",
              "iam:TagRole",
              "iam:TagPolicy",
              "iam:GetPolicy",
              "iam:ListAttachedRolePolicies",
              "iam:ListEntitiesForPolicy"
            ],
            "Resource":[
              "arn:aws:iam::*:role/idt-*",
              "arn:aws:iam::*:policy/idt-*"
            ]
          }
        ]
      }
      ```

   1. Jika Anda menggunakan PreInstalled, buka editor teks dan simpan konten kebijakan berikut dalam file JSON. Pastikan Anda:
      + Ganti *thingName* dan *thingGroup* dalam `iotResources` pernyataan yang dibuat selama instalasi Greengrass di perangkat Anda yang sedang diuji (DUT) untuk menambahkan izin.
      + Ganti *passRole* dan *roleAlias* dalam `roleAliasResources` pernyataan dan `passRoleForResources` pernyataan dengan peran yang dibuat selama instalasi Greengrass di DUT Anda.

      ```
      <a name="customer-managed-policy-cli"></a>{
          "Version":"2012-10-17",		 	 	 
          "Statement":[
          {
            "Sid":"passRoleForResources",
            "Effect":"Allow",
            "Action":"iam:PassRole",
            "Resource":"arn:aws:iam::*:role/passRole",
            "Condition":{
              "StringEquals":{
                "iam:PassedToService":[
                  "iot.amazonaws.com",
                  "lambda.amazonaws.com",
                  "greengrass.amazonaws.com"
                ]
              }
            }
          },
          {
            "Sid":"lambdaResources",
            "Effect":"Allow",
            "Action":[
              "lambda:CreateFunction",
              "lambda:PublishVersion",
              "lambda:DeleteFunction",
              "lambda:GetFunction"
            ],
            "Resource":[
              "arn:aws:lambda:*:*:function:idt-*"
            ]
          },
          {
            "Sid":"iotResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateThing",
              "iot:DeleteThing",
              "iot:DescribeThing",
              "iot:CreateThingGroup",
              "iot:DeleteThingGroup",
              "iot:DescribeThingGroup",
              "iot:AddThingToThingGroup",
              "iot:RemoveThingFromThingGroup",
              "iot:AttachThingPrincipal",
              "iot:DetachThingPrincipal",
              "iot:UpdateCertificate",
              "iot:DeleteCertificate",
              "iot:CreatePolicy",
              "iot:AttachPolicy",
              "iot:DetachPolicy",
              "iot:DeletePolicy",
              "iot:GetPolicy",
              "iot:Publish",
              "iot:TagResource",
              "iot:ListThingPrincipals",
              "iot:ListAttachedPolicies",
              "iot:ListTargetsForPolicy",
              "iot:ListThingGroupsForThing",
              "iot:ListThingsInThingGroup",
              "iot:CreateJob",
              "iot:DescribeJob",
              "iot:DescribeJobExecution",
              "iot:CancelJob"
            ],
            "Resource":[
              "arn:aws:iot:*:*:thing/thingName",
              "arn:aws:iot:*:*:thinggroup/thingGroup",
              "arn:aws:iot:*:*:policy/idt-*",
              "arn:aws:iot:*:*:cert/*",
              "arn:aws:iot:*:*:topic/idt-*",
              "arn:aws:iot:*:*:job/*"
            ]
          },
          {
            "Sid":"s3Resources",
            "Effect":"Allow",
            "Action":[
              "s3:GetObject",
              "s3:PutObject",
              "s3:DeleteObjectVersion",
              "s3:DeleteObject",
              "s3:CreateBucket",
              "s3:ListBucket",
              "s3:ListBucketVersions",
              "s3:DeleteBucket",
              "s3:PutObjectTagging",
              "s3:PutBucketTagging"
            ],
            "Resource":"arn:aws:s3::*:idt-*"
          },
          {
            "Sid":"roleAliasResources",
            "Effect":"Allow",
            "Action":[
              "iot:CreateRoleAlias",
              "iot:DescribeRoleAlias",
              "iot:DeleteRoleAlias",
              "iot:TagResource",
              "iam:GetRole"
            ],
            "Resource":[
              "arn:aws:iot:*:*:rolealias/roleAlias",
              "arn:aws:iam::*:role/idt-*"
            ]
          },
          {
            "Sid":"idtExecuteAndCollectMetrics",
            "Effect":"Allow",
            "Action":[
              "iot-device-tester:SendMetrics",
              "iot-device-tester:SupportedVersion",
              "iot-device-tester:LatestIdt",
              "iot-device-tester:CheckVersion",
              "iot-device-tester:DownloadTestSuite"
            ],
            "Resource":"*"
          },
          {
            "Sid":"genericResources",
            "Effect":"Allow",
            "Action":[
              "greengrass:*",
              "iot:GetThingShadow",
              "iot:UpdateThingShadow",
              "iot:ListThings",
              "iot:DescribeEndpoint",
              "iot:CreateKeysAndCertificate"
            ],
            "Resource":"*"
          },
          {
            "Sid":"iamResourcesUpdate",
            "Effect":"Allow",
            "Action":[
              "iam:CreateRole",
              "iam:DeleteRole",
              "iam:CreatePolicy",
              "iam:DeletePolicy",
              "iam:AttachRolePolicy",
              "iam:DetachRolePolicy",
              "iam:TagRole",
              "iam:TagPolicy",
              "iam:GetPolicy",
              "iam:ListAttachedRolePolicies",
              "iam:ListEntitiesForPolicy"
            ],
            "Resource":[
              "arn:aws:iam::*:role/idt-*",
              "arn:aws:iam::*:policy/idt-*"
            ]
          }
        ]
      }
      ```
**catatan**  
Jika Anda ingin menggunakan peran [IAM kustom sebagai peran pertukaran token](set-config.md#custom-token-exchange-role-idt) untuk perangkat yang sedang diuji, pastikan Anda memperbarui `roleAliasResources` pernyataan dan `passRoleForResources` pernyataan dalam kebijakan untuk mengizinkan sumber daya peran IAM kustom Anda.

   1. Jalankan perintah berikut untuk membuat kebijakan terkelola pelanggan bernama `IDTGreengrassIAMPermissions`. Ganti `policy.json` dengan path lengkap ke file JSON yang Anda buat di langkah sebelumnya. 

      ```
      aws iam create-policy --policy-name IDTGreengrassIAMPermissions --policy-document file://policy.json
      ```

1. Buat pengguna IAM dan lampirkan izin yang diperlukan oleh IDT untuk AWS IoT Greengrass.

   1. Buat pengguna IAM. Dalam contoh pengaturan ini, pengguna diberi nama `IDTGreengrassUser`.

      ```
      aws iam create-user --user-name IDTGreengrassUser
      ```

   1. Lampirkan kebijakan `IDTGreengrassIAMPermissions` yang Anda buat pada langkah 2 untuk pengguna IAM Anda. Ganti *<account-id>* dalam perintah dengan ID Anda Akun AWS.

      ```
      aws iam attach-user-policy --user-name IDTGreengrassUser --policy-arn arn:aws:iam::<account-id>:policy/IDTGreengrassIAMPermissions
      ```

1. Buat secret access key untuk pengguna tersebut.

   ```
   aws iam create-access-key --user-name IDTGreengrassUser
   ```

   Simpan output tersebut di lokasi yang aman. Anda menggunakan informasi ini nanti untuk mengonfigurasi file AWS kredensi Anda.

1. <a name="aws-account-config-next-steps"></a>Langkah berikutnya: Konfigurasikan [perangkat fisik](device-config-setup.md).

### AWS IoT Device Tester izin
<a name="gg-idt-managed-policy"></a>

Kebijakan berikut menjelaskan AWS IoT Device Tester izin.

AWS IoT Device Tester memerlukan izin ini untuk memeriksa versi dan fitur pembaruan otomatis.
+ `iot-device-tester:SupportedVersion`

  Memberikan AWS IoT Device Tester izin untuk mengambil daftar produk yang didukung, rangkaian pengujian, dan versi IDT.
+ `iot-device-tester:LatestIdt`

  Memberikan AWS IoT Device Tester izin untuk mengambil versi IDT terbaru yang tersedia untuk diunduh.
+ `iot-device-tester:CheckVersion`

  Memberikan AWS IoT Device Tester izin untuk memeriksa kompatibilitas versi untuk IDT, suite pengujian, dan produk.
+ `iot-device-tester:DownloadTestSuite`

  Memberikan AWS IoT Device Tester izin untuk mengunduh pembaruan suite pengujian.

AWS IoT Device Tester juga menggunakan izin berikut untuk pelaporan metrik opsional:
+ `iot-device-tester:SendMetrics`

  Memberikan izin AWS untuk mengumpulkan metrik tentang penggunaan AWS IoT Device Tester internal. Jika izin ini dihilangkan, metrik ini tidak akan dikumpulkan.