AWS SDK for Node.js在EKS中是否会处理AWS_WEB_IDENTITY_TOKEN_FILE令牌过期?
问题解答
- 你使用的AWS SDK for JavaScript v2会自动处理临时凭证的轮换,不会在临时凭证过期后直接返回403,除非用于扮演角色的JWT令牌本身过期。
具体细节:
- 调用
new AWS.S3()时,SDK会自动加载凭证链,识别到环境变量AWS_WEB_IDENTITY_TOKEN_FILE和AWS_ROLE_ARN后,启用Web Identity凭证提供者。 - 该提供者会先用JWT令牌调用STS的
AssumeRoleWithWebIdentity接口,获取短期临时凭证(默认有效期1小时,远短于你的JWT的24小时有效期)。 - SDK内部会自动跟踪临时凭证的过期时间,在凭证即将失效时(通常剩余15分钟左右),自动用原JWT令牌重新请求新的临时凭证,整个过程对应用代码完全透明。
- 只有当JWT令牌本身过期(24小时后),SDK无法再用它获取新的临时凭证时,后续S3请求才会返回403或凭证过期相关错误。
额外说明:如果你的应用是长时间运行的常驻服务,只要在JWT有效期内,SDK会持续自动轮换临时凭证;JWT过期后,只需重启Pod(EKS会自动为新Pod挂载新的JWT令牌到指定文件),SDK就能自动加载新令牌继续工作。
内容的提问来源于stack exchange,提问作者Ruan Gato
相关产品推荐
相关产品推荐

