怎么从AWS开发工具包STS更改AWS凭证配置文件默认文件路径?
来源:爱站网时间:2021-11-16编辑:网友分享
怎么从AWS开发工具包STS更改AWS凭证配置文件默认文件路径?大家知道这个要怎么操作吗?不知道的小伙伴别担心,爱站技术小编现在就用一篇文章给大家提供一个详细的操作方法。
问题描述
我有一个jenkins实例,我通过脚本承担角色。詹金斯和斗在两个aws帐户中。凭证文件已加载到/home/jenkins/.aws/credentials
但是从我的代码中,sdk查找其他位置。我得到以下错误,
java.lang.IllegalArgumentException:没有AWS凭证配置文件在给定路径中找到:/root/.aws/credentials
我如何更改sdk使其在/home/jenkins/.aws/credentials路径中引用凭证。
final AssumeRoleRequest roleRequest = new AssumeRoleRequest()
.withRoleArn("rolename")
.withRoleSessionName("s3_session");
final AssumeRoleResult assumeRoleResult =
new AWSSecurityTokenServiceClient
(new ProfileCredentialsProvider()).assumeRole(roleRequest);
final Credentials sessionCredentials = assumeRoleResult.getCredentials();
final BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
sessionCredentials.getAccessKeyId(), sessionCredentials.getSecretAccessKey(),
sessionCredentials.getSessionToken());
AmazonS3Client amazonS3 = new AmazonS3Client(basicSessionCredentials);
amazonS3.setRegion(RegionUtils.getRegion("us-east-2"));
amazonS3.listObjects("bucketname");
这是脚本的外观,
sudo apt-get update -y
sudo apt-get install -y python3 python-pip python-devel
sudo pip install awscli
S3_LOGIN=$(aws sts assume-role --role-arn rolename --role-session-name s3_session)
export AWS_ACCESS_KEY_ID=$(echo ${S3_LOGIN}| jq --raw-output '.Credentials|"\(.AccessKeyId)"')
export AWS_SECRET_ACCESS_KEY=$(echo ${S3_LOGIN} | jq --raw-output '.Credentials|"\(.SecretAccessKey)"')
export AWS_SESSION_TOKEN=$(echo ${S3_LOGIN} | jq --raw-output '.Credentials|"\(.SessionToken)"')
aws configure set default.region us-east-2
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
cat ~/.aws/credentials
我也按照文档所述在下面尝试,
AWS凭证提供者链在此寻找凭证顺序:环境变量-AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY(推荐,因为它们被所有人认可AWS SDK和CLI(.NET除外)]
AWSCredentialsProvider credentialsProvider = new
DefaultAWSCredentialsProviderChain();
final AssumeRoleResult assumeRoleResult =
new AWSSecurityTokenServiceClient
(credentialsProvider).assumeRole(roleRequest);
但是我仍然收到“无法从链中的任何提供商加载AWS凭证”
我已经打印了$ AWS_ACCESS_KEY_ID和$ AWS_SECRET_ACCESS_KEY的环境变量,它们已经成功打印了
解决方法:
您应该能够使用AWS_CREDENTIAL_PROFILES_FILE环境变量来更改凭据文件的位置
以上内容就是爱站技术频道小编为大家分享的怎么从AWS开发工具包STS更改AWS凭证配置文件默认文件路径?看完以上分享之后,大家应该都知道怎么操作了吧。