Amazon DynamoDB
开发人员指南 (API Version 2012-08-10)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用 Amazon Cognito 在您的文件中配置 AWS 凭证

建议使用 Amazon Cognito 获取用于 Web 和移动应用程序的 AWS 凭证。Amazon Cognito 帮助您避免在文件上对 AWS 凭证进行硬编码。Amazon Cognito 使用 IAM 角色为应用程序经过身份验证和未经身份验证的用户生成临时凭证。

例如,部署您的 JavaScript 文件以便使用 Amazon Cognito 未经身份验证的角色访问 DynamoDB Web 服务:

  1. 创建允许未经验证身份的 Amazon Cognito 身份池。

    Copy
    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. 将以下策略复制到名为 myCognitoPolicy.json 的文件中。使用您在上一步中获取的自己的 IdentityPoolId 修改身份池 ID (us-west-2:12345678-1ab2-123a-1234-a12345ab12):

    Copy
    { "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. 创建使用先前策略的 IAM 角色。通过这种方法,Amazon Cognito 可成为使用 Cognito_DynamoPoolUnauth 角色的可信身份。

    Copy
    aws iam create-role --role-name Cognito_DynamoPoolUnauth \ --assume-role-policy-document file://PathToFile/myCognitoPolicy.json --output json
  4. 通过附加托管策略 (AmazonDynamoDBFullAccess),授予 Cognito_DynamoPoolUnauth 角色对 DynamoDB 服务的完整访问权限。

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

    注意

    或者,您可以授予对 DynamoDB 的细粒度访问权限。有关更多信息,请参阅使用 IAM 策略条件实现细粒度访问控制

  5. 获取并复制 IAM 角色 ARN:

    Copy
    aws iam get-role --role-name Cognito_DynamoPoolUnauth --output json
  6. Cognito_DynamoPoolUnauth 角色添加到 DynamoPool 身份池。要指定的格式是 KeyName=string,其中 KeyName 为 unauthenticated,string 为在上一步中获取的角色 ARN。

    Copy
    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. 在您的文件中指定 Amazon Cognito 凭证。相应地修改 IdentityPoolIdRoleArn

    Copy
    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 程序。有关更多信息,请参阅 AWS SDK for JavaScript Getting Started Guide 中的在 Web 浏览器中设置凭证