

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à.

# Configurazione delle AWS credenziali con Amazon Cognito per DynamoDB
<a name="Cognito.Credentials"></a>

Il modo consigliato per ottenere AWS le credenziali per le tue applicazioni web e mobili è usare Amazon Cognito. Amazon Cognito ti aiuta a evitare di inserire le tue AWS credenziali nei tuoi file. Utilizza i ruoli AWS Identity and Access Management (IAM) per generare credenziali temporanee per gli utenti autenticati e non autenticati dell'applicazione.

 Ad esempio, per configurare JavaScript i tuoi file per utilizzare un ruolo non autenticato di Amazon Cognito per accedere al servizio web Amazon DynamoDB, procedi come segue.

**Come configurare le credenziali da integrare con Amazon Cognito**

1.  Crea un pool di identità di Amazon Cognito che supporti le identità non autenticate. 

   ```
   aws cognito-identity create-identity-pool \
       --identity-pool-name DynamoPool \
       --allow-unauthenticated-identities \
       --output json
   {
       "IdentityPoolId": "us-west-2:12345678-1ab2-123a-1234-a12345ab12",
       "AllowUnauthenticatedIdentities": true,
       "IdentityPoolName": "DynamoPool"
   }
   ```

1.  Copia la policy seguente in un file denominato `myCognitoPolicy.json`. Sostituisci l'ID del pool di identità (*us-west-2:12345678-1ab2-123a-1234-a12345ab12*) con il tuo `IdentityPoolId` ottenuto nel passaggio precedente.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Federated": "cognito-identity.amazonaws.com"
         },
         "Action": "sts:AssumeRoleWithWebIdentity",
         "Condition": {
           "StringEquals": {
             "cognito-identity.amazonaws.com:aud": "us-west-2:12345678-1ab2-123a-1234-a12345ab12"
           },
           "ForAnyValue:StringLike": {
             "cognito-identity.amazonaws.com:amr": "unauthenticated"
           }
         }
       }
     ]
   }
   ```

------

1.  Crea un ruolo IAM che assuma la policy precedente. In questo modo Amazon Cognito diviene un'entità affidabile che può assumere il ruolo `Cognito_DynamoPoolUnauth`. 

   ```
   aws iam create-role --role-name Cognito_DynamoPoolUnauth \
   --assume-role-policy-document file://PathToFile/myCognitoPolicy.json --output json
   ```

1.  Concedere al ruolo `Cognito_DynamoPoolUnauth` l'accesso completo a DynamoDB collegando una policy gestita (`AmazonDynamoDBFullAccess`). 

   ```
   aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess \
   --role-name Cognito_DynamoPoolUnauth
   ```
**Nota**  
 In alternativa, è possibile concedere un accesso fine-grained a DynamoDB. Per ulteriori informazioni, consulta [Utilizzo di condizioni di policy IAM per il controllo granulare degli accessi](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html). 

1.  Ottenere e copiare l'Amazon Resource Name (ARN) del ruolo IAM.

   ```
   aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json 
   ```

1.  Aggiungi il ruolo `Cognito_DynamoPoolUnauth` al pool di identità `DynamoPool`. Il formato da specificare è `KeyName=string`, in cui `KeyName` è `unauthenticated` e la stringa è l'ARN del ruolo ottenuto nella fase precedente. 

   ```
   aws cognito-identity set-identity-pool-roles \
   --identity-pool-id "us-west-2:12345678-1ab2-123a-1234-a12345ab12" \
   --roles unauthenticated=arn:aws:iam::123456789012:role/Cognito_DynamoPoolUnauth --output json
   ```

1.  Specifica le credenziali di Amazon Cognito nei tuoi file. Modifica i valori di `IdentityPoolId` e `RoleArn` di conseguenza. 

   ```
   AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId: "us-west-2:12345678-1ab2-123a-1234-a12345ab12",
   RoleArn: "arn:aws:iam::123456789012:role/Cognito_DynamoPoolUnauth"
   });
   ```

 Ora puoi eseguire i tuoi JavaScript programmi sul servizio web DynamoDB utilizzando le credenziali di Amazon Cognito. Per ulteriori informazioni, consulta [Impostazione delle credenziali in un browser Web](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-browser.html) nella *Guida alle operazioni di base di AWS SDK per JavaScript *. 