0

我目前正在使用我需要承担的角色来访问 S3 上的某些存储桶。

我想知道,如果给予 STSAssumeRoleSessiomCredentialsProvider 的持续时间为 1 小时,而您正在执行诸如下载需要 1.5 小时的文件之类的操作,它会完成该过程还是因为持续时间结束而在中间停止?

4

2 回答 2

0

在发起请求时验证凭证的有效性。一旦成功启动,响应将被完整发送。在您的下载示例情况下,如果在启动下载请求时凭据有效,则足以完全下载文件。

STS 凭证到期是一个问题,即作为长期运行程序的一部分与 AWS 建立重复连接,并且程序在开始时读取凭证并存储它们。将 sts-credential-acquisition 过程与这些凭证的用户分离通常是一种很好的做法,并且用户应确保在修改基础凭证源(通常是文件)时始终读取凭证。

这些方面由 AWS Java SDK 的ProfileCredentialsProvider类自动处理。不确定其他语言绑定中是否也存在类似的模块。

于 2019-10-21T17:15:54.160 回答
0

凭据在 API 调用中出现时进行验证。如果您在凭证过期之前进行 API 调用,那么您就可以了。

但是,如果您需要进行多个 API 调用,其中一个超过了过期时间,那么该调用将失败。

这与 S3 多部分上传特别相关,其中每个部分都是一个不同的 API 调用,并且每次都提供凭据。对此的解决方案通常是以下之一:

  1. 获取足够长的有效凭证以完成操作
  2. 当您接近到期时刷新凭证并使用新凭证进行后续部分上传
于 2019-10-21T17:47:23.857 回答