Configurazione delle AWS credenziali con Amazon Cognito per DynamoDB - 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 AWS credenziali con Amazon Cognito per DynamoDB

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" }
  2. 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.

    { "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 delle condizioni delle IAM policy per un controllo granulare degli accessi.

  5. Ottieni e copia il IAM ruolo Amazon Resource Name (ARN).

    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, where KeyName is unauthenticated e la stringa è il ruolo ARN ottenuto nel passaggio 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" });

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 nella Guida alle operazioni di base di AWS SDK for JavaScript .