我目前正在使用我需要承担的角色来访问 S3 上的某些存储桶。
我想知道,如果给予 STSAssumeRoleSessiomCredentialsProvider 的持续时间为 1 小时,而您正在执行诸如下载需要 1.5 小时的文件之类的操作,它会完成该过程还是因为持续时间结束而在中间停止?
我目前正在使用我需要承担的角色来访问 S3 上的某些存储桶。
我想知道,如果给予 STSAssumeRoleSessiomCredentialsProvider 的持续时间为 1 小时,而您正在执行诸如下载需要 1.5 小时的文件之类的操作,它会完成该过程还是因为持续时间结束而在中间停止?
在发起请求时验证凭证的有效性。一旦成功启动,响应将被完整发送。在您的下载示例情况下,如果在启动下载请求时凭据有效,则足以完全下载文件。
STS 凭证到期是一个问题,即作为长期运行程序的一部分与 AWS 建立重复连接,并且程序在开始时读取凭证并存储它们。将 sts-credential-acquisition 过程与这些凭证的用户分离通常是一种很好的做法,并且用户应确保在修改基础凭证源(通常是文件)时始终读取凭证。
这些方面由 AWS Java SDK 的ProfileCredentialsProvider
类自动处理。不确定其他语言绑定中是否也存在类似的模块。
凭据在 API 调用中出现时进行验证。如果您在凭证过期之前进行 API 调用,那么您就可以了。
但是,如果您需要进行多个 API 调用,其中一个超过了过期时间,那么该调用将失败。
这与 S3 多部分上传特别相关,其中每个部分都是一个不同的 API 调用,并且每次都提供凭据。对此的解决方案通常是以下之一: