【发布时间】:2015-01-25 21:10:34
【问题描述】:
我正在尝试从我的 Web 应用程序中查询 DynamoDB。
在使用 IAM 并创建 3rd 方角色并让用户通过 Facebook 或 Google 登录我的网络应用程序后,我成功地做到了,我的应用程序获得了一个令牌并创建了 AWS 凭证。
现在,我希望我网站的任何用户都能够查询我的一个 dynamoDB 表,该表应该是一个公共表,我尝试使用 Roles 进行此操作 - 模拟以前的方式 - 但我总是收到错误“配置中缺少凭据”?
如何避免这种情况?有没有办法在没有来自第 3 方的令牌的情况下创建 AWS 凭证并将它们附加到 IAM 角色,或者我是否必须使用密钥创建一个 IAM 用户,或者有其他更好的方法吗?
【问题讨论】:
-
不确定为什么要使用 IAM 角色。您的 Web 应用程序服务器是否有 Fix IP,设置在
security group中,并且只允许该 IP 可以访问 DynamoDB。 -
我正在尝试学习 AWS,但我没有太多经验。我只在本地运行网站。你能进一步解释一下你的想法吗?
-
据我所知,DynamoDB 没有“公共”表。此外,如果您直接从 Web 应用程序查询 DynamoDB,则用户将有权访问您作为网站一部分提供的任何凭据。
-
在我的网络应用程序中创建了一个对我的 DynamoDB 具有只读权限的 IAM 用户以及硬编码关联的 accessKey 和 sercreteAccessKey 之后,我能够成功地做到这一点。通过阅读 AWS IAM,我了解到用户是一个用户或一个实体,例如:我或你,并且关系是一对一的,但我可以假设用户是指 web_user,在这种情况下,这将是关系一-to-many 或任何使用我的网站的人都将使用这些相同的凭据,如果我假设,这会产生任何问题吗?它是否与任何 IAM 最佳实践相矛盾?
-
在您所描述的情况下,这将是 web_user 方案。您需要小心您将向您的 web 应用程序的用户公开哪些权限和凭据。您的 IAM 用户应非常限制其拥有的任何权限,因为恶意用户可以获取这些凭证并滥用您授予他们的任何权限。有一些policy keys that are specific to DynamoDB 可用于进一步限制访问。
标签: amazon-web-services amazon-dynamodb amazon-iam