konfigurasiAWSkredenial pada berkas Anda menggunakan Amazon Cognito - Amazon DynamoDB

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

konfigurasiAWSkredenial pada berkas Anda menggunakan Amazon Cognito

Cara yang disarankan untuk mendapatkan kredensial AWS untuk aplikasi web dan seluler Anda adalah dengan menggunakan Amazon Cognito. Amazon Cognito membantu Anda menghindari hardcoding kredensial AWS pada berkas Anda. Ia menggunakan AWS Identity and Access Management (IAM) role untuk menghasilkan kredensial sementara bagi pengguna yang diautentikasi dan tidak diautentikasi aplikasi Anda.

Misalnya, untuk mengkonfigurasi JavaScript file untuk menggunakan peran tidak terautentikasi Amazon Cognito agar dapat mengakses layanan web Amazon DynamoDB, lakukan hal berikut ini.

Untuk mengonfigurasi kredensial untuk diintegrasikan dengan Amazon Cognito
  1. Buat kumpulan identitas Amazon Cognito yang memungkinkan 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 IdentityPoolId Anda sendiri 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 role 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 terkelola (AmazonDynamoDBFullAccess).

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

    Atau, Anda dapat memberikan akses detail ke DynamoDB. Untuk informasi selengkapnya, lihatMenggunakan ketentuan kebijakan IAM ketentuan untuk kontrol akses yang sangat baik.

  5. Mendapatkan dan menyalin IAM role Amazon Resource Name (ARN).

    aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
  6. Tambahkan peran Cognito_DynamoPoolUnauth ke kumpulan identitas DynamoPool. Format untuk menentukannya adalah KeyName=string, di mana KeyName adalah unauthenticated dan string adalah peran ARN yang 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 berkas Anda. Memodifikasi IdentityPoolId dan RoleArn dengan tepat.

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

Sekarang Anda dapat menjalankan JavaScript program terhadap layanan web DynamoDB menggunakan kredenial Amazon Cognito. Untuk informasi selengkapnya, lihatPengaturan kredensial di peramban webdi dalamAWS SDK for JavaScriptPanduan Memulai.