Mengonfigurasi AWS kredensional menggunakan Amazon Cognito untuk DynamoDB - Amazon DynamoDB

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

Mengonfigurasi AWS kredensional menggunakan Amazon Cognito untuk DynamoDB

Cara yang disarankan untuk mendapatkan AWS kredensi untuk aplikasi web dan seluler Anda adalah dengan menggunakan Amazon Cognito. Amazon Cognito membantu Anda menghindari hardcoding AWS kredensional Anda pada file Anda. Ini menggunakan AWS Identity and Access Management (IAM) peran untuk menghasilkan kredensi sementara untuk pengguna yang diautentikasi dan tidak diautentikasi aplikasi Anda.

Misalnya, untuk mengonfigurasi JavaScript file Anda agar menggunakan peran Amazon Cognito yang tidak diautentikasi untuk mengakses layanan web Amazon DynamoDB, lakukan hal berikut.

Cara mengonfigurasi kredensial untuk diintegrasikan dengan Amazon Cognito
  1. Buat kolam identitas Amazon Cognito yang mengizinkan identitas yang tidak terautentikasi.

    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. Salin kebijakan berikut ini pada file bernama myCognitoPolicy.json. Ganti ID kumpulan identitas (us-west-2:12345678-1ab2-123a-1234-a12345ab12) dengan milik Anda sendiri IdentityPoolId yang diperoleh pada langkah sebelumnya.

    { "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. Buat IAM peran yang mengasumsikan kebijakan sebelumnya. Dengan cara ini, Amazon Cognito menjadi entitas tepercaya yang dapat mengasumsikan peran Cognito_DynamoPoolUnauth.

    aws iam create-role --role-name Cognito_DynamoPoolUnauth \ --assume-role-policy-document file://PathToFile/myCognitoPolicy.json --output json
  4. Berikan peran Cognito_DynamoPoolUnauth akses penuh ke DynamoDB dengan melampirkan kebijakan yang dikelola (AmazonDynamoDBFullAccess).

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess \ --role-name Cognito_DynamoPoolUnauth
    catatan

    Selain itu, Anda dapat memberikan akses ketat ke DynamoDB. Untuk informasi selengkapnya, lihat Menggunakan kondisi IAM kebijakan untuk kontrol akses berbutir halus.

  5. Dapatkan dan salin IAM peran Amazon Resource Name (ARN).

    aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
  6. Tambahkan peran Cognito_DynamoPoolUnauth ke kolam identitas DynamoPool. Format yang akan ditentukan adalahKeyName=string, di mana KeyName unauthenticated dan string adalah peran yang ARN diperoleh pada langkah sebelumnya.

    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. Tentukan kredensial Amazon Cognito pada file Anda. Modifikasi IdentityPoolId dan RoleArn dengan sesuai.

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

Anda sekarang dapat menjalankan JavaScript program Anda terhadap layanan web DynamoDB menggunakan kredensi Amazon Cognito. Untuk informasi selengkapnya, lihat Pengaturan kredensial di browser web pada Panduan Memulai AWS SDK for JavaScript .