Configurazione delle credenziali AWS nei file tramite Amazon Cognito - Amazon DynamoDB

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 credenziali AWS nei file tramite Amazon Cognito

Il modo consigliato per ottenere le credenziali AWS per le tue applicazioni Web e per dispositivi mobili è quello di utilizzare Amazon Cognito. Amazon Cognito consente di evitare di codificare le credenziali AWS all'interno dei file. Usa 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 i file JavaScript in modo che utilizzino un ruolo non autenticato di Amazon Cognito per accedere al servizio Web di Amazon DynamoDB, effettua le seguenti operazioni:

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" }
  2. Copia la policy seguente in un file denominato myCognitoPolicy.json. Modifica l'ID pool di identità (us-west-2:12345678-1ab2-123a-1234-a12345ab12) con il tuo IdentityPoolId ottenuto nella fase precedente:

    { "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" } } } ] }
  3. 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
  4. 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.

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

    aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
  6. 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
  7. 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" });

Adesso è possibile eseguire i programmi JavaScript nel servizio Web di DynamoDB utilizzando le credenziali di Amazon Cognito. Per ulteriori informazioni, consulta Impostazione delle credenziali in un browser Web nella Guida alle operazioni di base di AWS SDK for JavaScript.