未经身份验证的用户的DynamoDb访问权限

时间:2016-06-01 19:15:52

标签: amazon-dynamodb amazon-iam amazon-cognito

我想将一些有关移动应用程序使用的分析信息存储到Amazon DynamoDb中。我有以下要求:

  • 每个移动应用程序只有一个DynamoDb表
  • 应用只能PutItem方法
  • 所有应用用户均未经身份验证(来宾)

要向移动应用提供访问DynamoDb中表格的方法,我会看到两个选项:

  1. 对应用程序具有有限权限的硬编码凭据(对特定表执行PutItem的权限);
  2. 使用Amazon Cognito在运行时为未经身份验证的用户获取临时凭据。
  3. 亚马逊强烈推荐的第二个选项是更加安全。在我的情况下,恶意用户可以访问硬编码凭证或具有相同结果的硬编码身份池ID:获取对AWS资源的访问权限。

    问题:在我的案例中使用Cognito是否会提供任何安全性改进,如果是,如何?

1 个答案:

答案 0 :(得分:0)

Cognito身份完全免费 - 您无需支付任何费用。

您使用Cognito并未向未经身份验证的请求添加任何安全性的观点并不正确。来自Cognito常见问题解答:

问:Cognito Identity如何帮助我安全地访问AWS服务?

Cognito Identity会为您的用户分配一组临时的有限权限凭据,以访问您的AWS资源。您可以使用Cognito Identity从移动应用程序安全地访问其他AWS服务,而无需您的AWS账户凭据。您还可以在身份和访问管理策略中使用为应用用户生成的唯一标识符。例如,您可以为S3存储桶创建一个策略,该策略仅允许特定用户访问其自己的文件夹。

S3中描述的相同内容可以通过发电机完成 - 有关详细信息,请参阅this blog post