怎么从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凭证配置文件默认文件路径?看完以上分享之后,大家应该都知道怎么操作了吧。

上一篇:怎么用jUnit模拟ModelMapper?

下一篇:如何让Enum在android studio调试器中评估为null

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载