4

aws sts assume-role返回三个字段作为颁发的临时安全凭证。

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN

前两个与用户的Access Key格式相同,但第三个字段AWS_SESSION_TOKEN是临时凭证的特殊字段。

我有两个问题:

  • 如果AWS_SESSION_TOKEN是为了表示/编码临时有效性,为什么我们仍然需要前两个字段(因为到期后,我们仍然需要获取另一个AWS_SESSION_TOKEN)?
  • 如果我的客户两次调用 STS API,在从 返回的两个响应之间aws sts assume-role,AWS_ACCESS_KEY_ID 会/可能相同吗?
4

1 回答 1

1

我认为您只能依靠一个假设:这是 AWS 提供的接口,不支持 AWS 文档中未明确说明的内容。

当创建一个新的编程访问密钥时,它总是不同的,所以它“在调用之间保持不变”没有多大意义。我认为您应该在一个会话中使用“AWS_SESSION_TOKEN”。如果是一次调用,它可能被命名为“AWS_ONECALL_TOKEN”。我会假设 STS 假设角色是一个比调节器 API 调用慢得多的操作。我的建议是将其视为“一个会话的三部分密码”,除非您想为类似的事情创建自己的实现,否则没什么大不了的。那么分析一下这种方法的优缺点可能会很有启发性。

于 2018-11-17T08:23:40.700 回答