

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Prerequisiti per l'esecuzione della suite di AWS IoT Greengrass qualifiche
<a name="dev-tst-prereqs"></a>

Questa sezione descrive i prerequisiti per l'utilizzo di AWS IoT Device Tester (IDT) per. AWS IoT Greengrass

## Scarica la versione più recente di for AWS IoT Device Tester AWS IoT Greengrass
<a name="install-dev-tst-gg"></a>

Scaricate l'[ultima versione](idt-programmatic-download.md) di IDT ed estraete il software in una posizione (*<device-tester-extract-location>*) sul file system in cui disponete delle autorizzazioni di lettura/scrittura. 

**Nota**  
<a name="unzip-package-to-local-drive"></a>IDT non supporta l'esecuzione da parte di più utenti da un percorso condiviso, ad esempio una directory NFS o una cartella condivisa di rete Windows. Si consiglia di estrarre il pacchetto IDT in un'unità locale ed eseguire il file binario IDT sulla workstation locale.  
In Windows esiste un limite di lunghezza del percorso di 260 caratteri. Se stai usando Windows, estrai IDT in una directory root come `C:\ ` o `D:\` per mantenere i percorsi entro il limite di 260 caratteri.

## Scaricate il software AWS IoT Greengrass
<a name="config-gg"></a>

IDT for AWS IoT Greengrass V2 verifica la compatibilità del dispositivo con una versione specifica di. AWS IoT Greengrass Esegui il seguente comando per scaricare il software AWS IoT Greengrass Core in un file denominato. `aws.greengrass.nucleus.zip` *version*Sostituiscilo con una versione di [componente nucleus supportata per la tua versione](dev-test-versions.md) IDT. 

------
#### [ 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
```

------

Inserite il `aws.greengrass.nucleus.zip` file scaricato nella cartella`<device-tester-extract-location>/products/`.

**Nota**  
Non posizionare più file in questa directory per lo stesso sistema operativo e architettura. 

## Crea e configura un Account AWS
<a name="config-aws-account-for-idt"></a>

Prima di utilizzarlo AWS IoT Device Tester per la AWS IoT Greengrass versione 2, è necessario eseguire le seguenti operazioni:

1. [Configurare un Account AWS.](#create-aws-account-for-idt) Se ne hai già uno Account AWS, vai al passaggio 2.

1. [Configura le autorizzazioni per IDT.](#configure-idt-permissions)

Queste autorizzazioni dell'account consentono a IDT di accedere ai AWS servizi e creare AWS risorse, come AWS IoT oggetti e AWS IoT Greengrass componenti, per tuo conto.

<a name="idt-aws-credentials"></a>Per creare queste risorse, IDT for AWS IoT Greengrass V2 utilizza AWS le credenziali configurate nel `config.json` file per effettuare chiamate API per conto dell'utente. Il provisioning di queste risorse viene effettuato varie volte nel corso di un test.

**Nota**  
Sebbene la maggior parte dei test sia idonea per il [piano AWS gratuito](https://aws.amazon.com/free), è necessario fornire una carta di credito quando ci si iscrive a un. Account AWS Per ulteriori informazioni, consulta [ Perché ho bisogno di un metodo di pagamento se il mio account è coperto dal livello gratuito?](https://aws.amazon.com/premiumsupport/knowledge-center/free-tier-payment-method/)

### Passo 1: Configurare un Account AWS
<a name="create-aws-account-for-idt"></a>

In questo passaggio, crea e configura un Account AWS. Se disponi già di un Account AWS, passa a [Fase 2: configurazione delle autorizzazioni per IDT](#configure-idt-permissions).

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

**Per iscriverti a un Account AWS**

1. Apri la [https://portal.aws.amazon.com/billing/registrazione.](https://portal.aws.amazon.com/billing/signup)

1. Segui le istruzioni online.

   Nel corso della procedura di registrazione riceverai una telefonata o un messaggio di testo e ti verrà chiesto di inserire un codice di verifica attraverso la tastiera del telefono.

   Quando ti iscrivi a un Account AWS, *Utente root dell'account AWS*viene creato un. L’utente root dispone dell’accesso a tutte le risorse e tutti i Servizi AWS nell’account. Come best practice di sicurezza, assegna l’accesso amministrativo a un utente e utilizza solo l’utente root per eseguire [attività che richiedono l’accesso di un utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

Per creare un utente amministratore, scegli una delle seguenti opzioni.


****  

| Scelta di un modo per gestire il tuo amministratore | Per | Come | Puoi anche | 
| --- | --- | --- | --- | 
| In IAM Identity Center (Consigliato) | Usa credenziali a breve termine per accedere a AWS.Ciò è in linea con le best practice per la sicurezza. Per informazioni sulle best practice, consulta [Best practice per la sicurezza in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) nella *Guida per l'utente di IAM*. | Segui le istruzioni riportate in [Nozioni di base](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) nella Guida per l'utente di AWS IAM Identity Center . | Configura l'accesso programmatico [configurando l'uso AWS IAM Identity Center nella Guida AWS CLI per](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html) l'AWS Command Line Interface utente. | 
| In IAM (Non consigliato) | Usa credenziali a lungo termine per accedere a AWS. | Segui le istruzioni in [Creare un utente IAM per l’accesso di emergenza](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) nella Guida per l’utente di IAM. | Configura l’accesso programmatico seguendo quanto riportato in [Gestione delle chiavi di accesso per gli utenti IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html) nella Guida per l’utente di IAM. | 

### Fase 2: configurazione delle autorizzazioni per IDT
<a name="configure-idt-permissions"></a>

In questo passaggio, configura le autorizzazioni utilizzate da IDT for AWS IoT Greengrass V2 per eseguire test e raccogliere dati sull'utilizzo di IDT. Puoi utilizzare [Console di gestione AWS](#configure-idt-permissions-console)or [AWS Command Line Interface (AWS CLI)](#configure-idt-permissions-cli) per creare una policy IAM e un utente di test per IDT, quindi allegare le policy all'utente. Se hai già creato un utente di prova per IDT, vai a. [Configura il tuo dispositivo per eseguire test IDT](device-config-setup.md)

#### Per configurare le autorizzazioni per IDT (Console)
<a name="configure-idt-permissions-console"></a>

1. Accedere alla [console IAM](https://console.aws.amazon.com/iam).

1. Creare un criterio gestito dal cliente che concede le autorizzazioni per creare ruoli con autorizzazioni specifiche. 

   1. Nel pannello di navigazione, scegli **Policy** e **Crea policy**.

   1. Se non lo utilizzi PreInstalled, nella scheda **JSON**, sostituisci il contenuto segnaposto con la seguente politica. Se lo stai utilizzando PreInstalled, procedi al passaggio successivo.

      ```
      <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. Se lo stai utilizzando PreInstalled, nella scheda **JSON**, sostituisci il contenuto segnaposto con la seguente politica. Assicurati di:
      + Sostituisci *thingName* e *thingGroup* nell'`iotResources`istruzione con il nome dell'oggetto e il gruppo di oggetti che sono stati creati durante l'installazione di Greengrass sul tuo dispositivo in fase di test (DUT) per aggiungere le autorizzazioni.
      + Sostituisci la *passRole* e *roleAlias* nella `roleAliasResources` dichiarazione e nella `passRoleForResources` dichiarazione con i ruoli che sono stati creati durante l'installazione di Greengrass sul tuo DUT.

      ```
      <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-*"
            ]
          }
        ]
      }
      ```
**Nota**  
Se desideri utilizzare un [ruolo IAM personalizzato come ruolo di scambio di token](set-config.md#custom-token-exchange-role-idt) per il dispositivo in esame, assicurati di aggiornare l'`roleAliasResources`istruzione e l'`passRoleForResources`istruzione nella tua policy per consentire la risorsa del ruolo IAM personalizzata.

   1. Scegliere **Esamina policy**.

   1. In **Nome**, inserisci **IDTGreengrassIAMPermissions**. In **Riepilogo**, esaminare le autorizzazioni concesse dai criteri.

   1. Scegli **Crea policy**.

1. Crea un utente IAM e assegna le autorizzazioni richieste da IDT per. AWS IoT Greengrass

   1. Crea un utente IAM. Segui i passaggi da 1 a 5 in [Creazione di utenti IAM (console) nella Guida](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) per l'*utente IAM*.

   1. Allega le autorizzazioni al tuo utente IAM:

      1. Nella pagina **Imposta autorizzazioni**, seleziona **Collega direttamente policy esistenti**.

      1. Cerca la **IDTGreengrassIAMPermissions**policy che hai creato nel passaggio precedente. Selezionare la casella di controllo.

   1. Scegli **Successivo: Tag**.

   1. Scegliere **Next:Review** per visualizzare un riepilogo delle tue scelte.

   1. Selezionare **Create user (Crea utente)**.

   1. Per visualizzare le chiavi di accesso dell'utente (chiave di accesso IDs e chiavi di accesso segrete), scegli **Mostra** accanto alla password e alla chiave di accesso. Per salvare le chiavi di accesso, scegliere **Scarica .csv** e salvare il file in una posizione sicura. Utilizzerai queste informazioni in seguito per configurare il file AWS delle credenziali.

1. <a name="aws-account-config-next-steps"></a>Passaggio successivo: configurare il [dispositivo fisico](device-config-setup.md).

#### Per configurare le autorizzazioni per IDT (AWS CLI)
<a name="configure-idt-permissions-cli"></a>

1. Sul tuo computer, installa e configura il AWS CLI se non è già installato. Segui la procedura descritta in [Installazione di AWS CLI nella](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) *Guida AWS Command Line Interface per l'utente*.
**Nota**  
 AWS CLI È uno strumento open source che puoi utilizzare per interagire con AWS i servizi dalla tua shell a riga di comando.

1. Creare una policy gestita dal cliente che conceda le autorizzazioni per gestire ruoli IDT e AWS IoT Greengrass .

   1. Se non lo utilizzi PreInstalled, apri un editor di testo e salva il seguente contenuto delle policy in un file JSON. Se lo stai utilizzando PreInstalled, procedi al passaggio seguente.

      ```
      <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. Se lo stai utilizzando PreInstalled, apri un editor di testo e salva il seguente contenuto delle policy in un file JSON. Assicurati di:
      + Sostituisci *thingName* e *thingGroup* nell'`iotResources`istruzione creata durante l'installazione di Greengrass sul tuo dispositivo in prova (DUT) per aggiungere le autorizzazioni.
      + Sostituisci la *passRole* e *roleAlias* nella `roleAliasResources` dichiarazione e nella `passRoleForResources` dichiarazione con i ruoli che sono stati creati durante l'installazione di Greengrass sul tuo DUT.

      ```
      <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-*"
            ]
          }
        ]
      }
      ```
**Nota**  
Se desideri utilizzare un [ruolo IAM personalizzato come ruolo di scambio di token](set-config.md#custom-token-exchange-role-idt) per il dispositivo in esame, assicurati di aggiornare l'`roleAliasResources`istruzione e l'`passRoleForResources`istruzione nella tua policy per consentire la risorsa del ruolo IAM personalizzata.

   1. Esegui il comando seguente per creare una policy gestita dal cliente denominata`IDTGreengrassIAMPermissions`. Sostituisci `policy.json` con il percorso completo del file JSON creato nel passaggio precedente. 

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

1. Crea un utente IAM e allega le autorizzazioni richieste da IDT for. AWS IoT Greengrass

   1. Crea un utente IAM. In questa configurazione di esempio, l'utente viene chiamato `IDTGreengrassUser`.

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

   1. Allega la `IDTGreengrassIAMPermissions` policy che hai creato nel passaggio 2 al tuo utente IAM. Sostituisci *<account-id>* nel comando con l'ID del tuo Account AWS.

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

1. Creare una chiave di accesso segreta per l'utente.

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

   Memorizzare l'output in una posizione sicura. Queste informazioni verranno utilizzate successivamente per configurare il file AWS delle credenziali.

1. <a name="aws-account-config-next-steps"></a>Passaggio successivo: configurare il [dispositivo fisico](device-config-setup.md).

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

Le seguenti politiche descrivono le AWS IoT Device Tester autorizzazioni.

AWS IoT Device Tester richiede queste autorizzazioni per il controllo della versione e le funzionalità di aggiornamento automatico.
+ `iot-device-tester:SupportedVersion`

  Concede AWS IoT Device Tester l'autorizzazione a recuperare l'elenco dei prodotti supportati, delle suite di test e delle versioni IDT.
+ `iot-device-tester:LatestIdt`

  Concede AWS IoT Device Tester l'autorizzazione a recuperare l'ultima versione IDT disponibile per il download.
+ `iot-device-tester:CheckVersion`

  Concede AWS IoT Device Tester l'autorizzazione a verificare la compatibilità delle versioni per IDT, suite di test e prodotti.
+ `iot-device-tester:DownloadTestSuite`

  Concede AWS IoT Device Tester l'autorizzazione a scaricare gli aggiornamenti delle suite di test.

AWS IoT Device Tester utilizza anche la seguente autorizzazione per la segnalazione facoltativa delle metriche:
+ `iot-device-tester:SendMetrics`

  Concede l'autorizzazione AWS a raccogliere metriche sull' AWS IoT Device Tester uso interno. Se questa autorizzazione viene omessa, queste metriche non verranno raccolte.