Java AWS SDK无法通过SSO认证的问题求助
Java AWS SDK无法通过SSO认证的问题求助
我最近在使用Java AWS SDK时碰到了凭证加载失败的问题,折腾了好一阵都没解决,来求助各位!
先贴一下我收到的完整错误信息:
software.amazon.awssdk.core.exception.SdkClientException: Unable to load credentials from any of the providers in the chain: AwsCredentialsProviderChain: [ SystemPropertyCredentialsProvider(): Unable to load credentials from system settings. Access key must be specified via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId). EnvironmentVariableCredentialsProvider(): Unable to load credentials from environment variables. Access key must be specified via environment variable (AWS_ACCESS_KEY_ID) or system property (aws.accessKeyId). WebIdentityTokenCredentialsProvider(): Either the environment variable AWS_WEB_IDENTITY_TOKEN_FILE or the Java property aws.webIdentityTokenFile must be set. ProfileCredentialsProvider(profileName=xxxxxxxxxxx): java.nio.file.NoSuchFileException: C:\Users\xxxxxxxx\\.aws\sso\cache\xxxxxxxxxxxxxxxxd1420.json ContainerCredentialsProvider(): Cannot fetch credentials from container. Neither AWS_CONTAINER_CREDENTIALS_FULL_URI nor AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variables are set. InstanceProfileCredentialsProvider(): Failed to load credentials from IMDS (Instance Metadata Service). ]
核心问题
我能看到C:\Users\xxxxxxxx\.aws\sso\cache\目录下确实存在缓存文件,但这些文件的哈希值和AWS SDK期望的那个不匹配。
补充排查信息
- 我通过AWS CLI使用SSO登录、访问AWS服务完全正常
- 已经设置了环境变量
AWS_PROFILE=xxxxxxxxx - 项目里已经引入了SSO相关依赖
- 我计算了自己SSO起始URL的SHA1值,结果和SDK期望的哈希是完全对应的
- 我只有
.aws/config文件(没有单独的credentials文件),内容如下:
[sso-session awssso] sso_region = us-east-1 sso_start_url = https://d-xxxxxxx.awsapps.com/start sso_registration_scopes = sso:account:access [profile xxxxxxxxxx] sso_session = awssso output = json sso_region = us-east-1 sso_role_name = xxxxxxxxxx region = us-east-1 sso_start_url = https://d-xxxxxxx.awsapps.com/start sso_account_id = xxxxxxxxxx
有没有朋友遇到过类似的问题?麻烦帮忙分析下可能的原因,或者给些排查方向的建议,非常感谢!
内容来源于stack exchange
相关产品推荐
相关产品推荐

