You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS SDK for Java 1.12.780时,无会话令牌如何配置凭证?

AWS凭证配置:无会话令牌时的正确做法

你从AWS控制台获取的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY属于长期IAM用户凭证,这类凭证不需要会话令牌(Session Token),和代码示例里的临时会话凭证是两种不同类型。

正确的代码配置方式

直接使用BasicAWSCredentials替换示例中的BasicSessionCredentials即可,不需要传入会话令牌参数:

BasicAWSCredentials awsCreds = new BasicAWSCredentials("你的AWS_ACCESS_KEY_ID", "你的AWS_SECRET_ACCESS_KEY");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                        .build();

环境变量配置注意事项

如果通过环境变量传递凭证:

  • 设置AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY(官方标准变量名是AWS_SECRET_ACCESS_KEY,而非你提到的AWS_SECRET_KEY,建议统一使用标准名避免兼容问题)
  • 不需要设置AWS_SESSION_TOKEN,这个变量仅用于临时会话凭证场景(比如IAM角色临时凭证、STS获取的临时凭证)

更安全的替代方案

如果你的应用运行在AWS服务内部(比如EC2、ECS、Lambda),建议避免硬编码或手动配置长期凭证,直接为资源绑定IAM角色,AWS SDK会自动从实例元数据或服务环境中获取临时凭证,无需手动配置任何环境变量或凭证参数,代码可以简化为:

AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

内容的提问来源于stack exchange,提问作者Nunyet Calçada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:24:55