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
-
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" }
-
Salin kebijakan berikut ini pada file bernama
myCognitoPolicy.json
. Ganti ID kumpulan identitas (us-west-2:12345678-1ab2-123a-1234-a12345ab12
) dengan milik Anda sendiriIdentityPoolId
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" } } } ] }
-
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
-
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.
-
Dapatkan dan salin IAM peran Amazon Resource Name (ARN).
aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
-
Tambahkan peran
Cognito_DynamoPoolUnauth
ke kolam identitasDynamoPool
. Format yang akan ditentukan adalahKeyName=string
, di manaKeyName
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
-
Tentukan kredensial Amazon Cognito pada file Anda. Modifikasi
IdentityPoolId
danRoleArn
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 .