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

AWS Lambda Java跨账号assume role报profile file cannot be null错

问题根因

你初始化STS客户端时使用了ProfileCredentialsProvider类,该类的作用是读取本地~/.aws/credentials配置文件中的身份凭证。而Lambda运行环境不存在该本地配置文件,因此直接抛出"profile file cannot be null"的异常。

修复方案

修改STS客户端的初始化逻辑,移除显式指定的ProfileCredentialsProvider,使用AWS SDK默认的凭证提供者链即可。Lambda运行时会自动注入你绑定到函数的执行角色凭证,无需手动配置。

修改后的代码片段如下:

AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()
                        // 移除.withCredentials(new ProfileCredentialsProvider()) 这一行
                        .withRegion(clientRegion)
                        .build();
额外注意事项
  • 代码中roleARN参数需要填写对端账号的目标角色ARN,不要误填成本账号的Lambda执行角色ARN,否则无法实现跨账号访问。
  • 确认对端账号的目标角色信任策略已允许你的Lambda执行角色代入,同时Lambda执行角色的权限策略中已添加sts:AssumeRole权限,允许调用代入角色接口。

内容的提问来源于stack exchange,提问作者Alan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 17:57:00