本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Cognito for DynamoDB 設定AWS登入資料
為您的 Web 和行動應用程式取得AWS登入資料的建議方法是使用 Amazon Cognito。Amazon Cognito 可協助您避免對檔案上的AWS登入資料進行硬式編碼。它使用AWS Identity and Access Management(IAM) 角色為您的應用程式已驗證和未驗證的使用者產生臨時登入資料。
例如,若要設定您的 JavaScript 檔案以使用 Amazon Cognito 未驗證角色來存取 Amazon DynamoDB Web 服務,請遵循以下方法:
設定憑證來與 Amazon Cognito 互動
-
建立允許未驗證身分的 Amazon Cognito 身分池。
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" } -
將下列政策複製到名為
myCognitoPolicy.json的檔案。使用在上一個步驟取得的IdentityPoolId,來取代身分池 ID (us-west-2:12345678-1ab2-123a-1234-a12345ab12)。 -
建立採用上述政策的 IAM 角色。如此一來,Amazon Cognito 會成為可擔任
Cognito_DynamoPoolUnauth角色的信任實體。aws iam create-role --role-name Cognito_DynamoPoolUnauth \ --assume-role-policy-document file://PathToFile/myCognitoPolicy.json --output json -
連接受管政策 (
AmazonDynamoDBFullAccess),將 DynamoDB 的完整存取權授予Cognito_DynamoPoolUnauth角色。aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonDynamoDBFullAccess \ --role-name Cognito_DynamoPoolUnauth注意
或者,您也可以將精細定義存取權授予 DynamoDB。如需詳細資訊,請參閱使用 IAM 政策條件精細定義存取控制。
-
取得並複製 IAM 角色 Amazon Resource Name (ARN)。
aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json -
將
Cognito_DynamoPoolUnauth角色新增至DynamoPool身分池。指定的格式是KeyName=string,其中KeyName是unauthenticated,而字串是在上一步中取得的角色 ARN。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 -
在您的檔案中指定 Amazon Cognito 憑證。並依照上一步的程式碼修改
IdentityPoolId與RoleArn。AWS.config.credentials = new AWS.CognitoIdentityCredentials({ IdentityPoolId: "us-west-2:12345678-1ab2-123a-1234-a12345ab12", RoleArn: "arn:aws:iam::123456789012:role/Cognito_DynamoPoolUnauth" });
您現在已可使用 Amazon Cognito 憑證,對 DynamoDB Web 服務執行您的 JavaScript 程式。如需詳細資訊,請參閱《適用於 JavaScript 的 AWS SDK入門指南》中的在 Web 瀏覽器設定憑證。