【问题标题】:Waiting until IAM policy has been applied等待应用 IAM 政策
【发布时间】:2017-11-04 17:13:10
【问题描述】:

我在 AWS 上即时创建短期用户,在调试这些新创建的登录为什么会以 InvalidAccessKeyId 失败时,我意识到只需添加一个小的 sleep 即可解决问题。

xref How long should I wait after applying an AWS IAM policy before it is valid? re:整个 AWS 的一致性时间

我对上述问题的后续问题:有没有办法同步创建一致的 IAM 政策?或者至少有办法知道它们已经准备好使用?

【问题讨论】:

  • 如果您的工作流程是“创建一个 IAM 资源然后尝试使用它”而不是“更新一个 IAM 资源然后使用它”,那么也许您可以简单地更改您的客户端代码以实现指数退避/重试到一定次数的重试。这样您就可以无缝地重试某些失败响应,例如找不到无效的键或资源。
  • 这两件事都不可能,但您为什么要创建短期 IAM 用户?有一种处理短期凭证的机制,称为 Security Token Service (STS),它不需要传播/复制时间,因为令牌似乎是自包含的。

标签: amazon-web-services amazon-iam


【解决方案1】:

Amazon IAM 不是为提供短期凭证而设计的。您应该为长期需求创建 IAM 用户,例如人类登录和持久应用程序的登录。

IAM 用户不应用于应用程序登录目的。例如,如果您正在创建类似 Instagram 的应用程序,则应维护自己的用户数据库或使用 Amazon Cognito 进行用户身份验证。

那么,您如何授予用户访问 AWS 资源的权限?例如,如果您有一个类似 Instagram 的应用程序,并且您希望授予应用程序用户在 Amazon S3 中上传/下载其图片的能力,但希望限制对某个存储桶和目录的访问?...

答案是使用AWS Security Token Service (STS)创建临时凭证。可以使用给定策略在特定时间段内创建凭证。这些凭据立即生效。例如,如果类似 Instragram 的用户登录到应用程序,后端应用程序可以生成临时凭证,允许用户在设定的时间段(例如 15 分钟)内访问特定 Amazon S3 存储桶中的特定目录。然后将这些凭证传递到移动应用程序/网络浏览器,以直接访问 AWS 服务。

【讨论】:

  • 谢谢,我会研究 STS。我们正在使用 Hashicorps Vault 来管理凭据,对于 db 等其他东西来说,首先生成具有特定 TTL 的新用户是一种非常简单的模式
猜你喜欢
  • 1970-01-01
  • 2020-05-24
  • 2020-03-30
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-04
相关资源
最近更新 更多