当我使用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: ]
我已经尝试使用“staging”与ProfileCredentialsProvider,但结果相同。
我应该使用哪个CredentialsProvider
?
我的代码正在使用DefaultProviderChain:
AWSGlueClient.builder()
.withRegion("eu-west-1")
.build()
谢谢你。
implementation("software.amazon.awssdk:ssooidc")
以避免异常:"要在<profile>配置文件中使用SSO OIDC相关属性,必须将'ssooidc'服务模块添加到类路径中。" - hertzsprung