AWS凭证优先权

时间:2017-12-19 12:14:10

标签: amazon-web-services amazon

假设我有:

1

cat ~/.aws/credentials

[default]
aws_secret_access_key = secret_access_key_1
aws_access_key_id = access_key_1

2

cat ~/.bashrc | grep -i aws

export AWS_ACCESS_KEY_ID=access_key_2
export AWS_SECRET_ACCESS_KEY=secret_access_key_2

哪一个优先?

(他们来自不同的帐户)

1 个答案:

答案 0 :(得分:1)

这可能取决于您使用的AWS SDK或您是否正在使用AWS CLI,但我希望access_key_2优先。

来自AWS Java SDK docs

  

使用默认凭据提供程序链

     

初始化新服务客户端而不提供任何参数时,AWS SDK for Java会尝试使用DefaultAWSCredentialsProviderChain类实现的默认凭据提供程序链来查找AWS凭据。默认凭据提供程序链按以下顺序查找凭据:

     
      
  • 环境变量 - AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。 AWS SDK for Java使用EnvironmentVariableCredentialsProvider类来加载这些凭据。
  •   
  • Java系统属性 - aws.accessKeyIdaws.secretKey。 AWS SDK for Java使用SystemPropertiesCredentialsProvider加载这些凭据。
  •   
  • 默认凭据配置文件文件 - 通常位于~/.aws/credentials(位置可能因平台而异),并由许多AWS开发工具包和AWS CLI共享。 AWS SDK for Java使用ProfileCredentialsProvider加载这些凭据。
  •