AWS Java SDK not finding profile when using AWS SSO(使用AWS SSO时,AWS Java SDK找不到配置文件)
问题描述
使用AWS SSO进行登录时,我无法访问AWS。 我从我的计算机使用以下方式登录:aws sso login --profile staging
配置文件配置如下:
[profile staging]
sso_start_url = https://som-nice-working-url
sso_region = us-east-1
sso_account_id = 1234
sso_role_name = the-role-name
region = eu-west-1
output = yaml
登录后,我可以通过AWS CLI访问AWS。
然后我设置变量:AWS_PROFILE=staging
但是在java上我得到了以下异常:
com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), WebIdentityTokenCredentialsProvider: You must specify a value for roleArn and roleSessionName, com.amazonaws.auth.profile.ProfileCredentialsProvider@369a95a5: No AWS profile named 'staging', com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@6d6f6ca9: Failed to connect to service endpoint: ]
我已尝试将ProfileCredentialsProvider与";Staging";一起使用,但结果相同。
CredentialsProvider
我应该使用什么?
我的代码使用的是DefaultProviderChain:
AWSGlueClient.builder()
.withRegion("eu-west-1")
.build()
谢谢您。
推荐答案
对于JAVA应用程序,您需要SSO Dependency。
截至撰写时,最新的IS版本2.16.76
// Gradle example
dependencies {
implementation(platform("software.amazon.awssdk:bom:2.16.70"))
implementation("software.amazon.awssdk:sso:2.16.76")
}
您还需要在~/.aws/configuration
或~/.aws/credentials
中设置default
配置文件
更多信息如下:
https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/credentials.html https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup-additional.html#setup-additional-credentials
但是,您还应该能够将AWS_PROFILE
环境变量设置为您的配置文件,并且它也应该在没有SSO依赖的情况下神奇地工作。
在您的示例中,具体如下:
AWS_PROFILE=staging
这篇关于使用AWS SSO时,AWS Java SDK找不到配置文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用AWS SSO时,AWS Java SDK找不到配置文件
基础教程推荐
- 如何强制对超级方法进行多态调用? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01