假设我有:
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
哪一个优先?
(他们来自不同的帐户)
答案 0 :(得分:1)
这可能取决于您使用的AWS SDK或您是否正在使用AWS CLI,但我希望access_key_2
优先。
使用默认凭据提供程序链
初始化新服务客户端而不提供任何参数时,AWS SDK for Java会尝试使用
DefaultAWSCredentialsProviderChain
类实现的默认凭据提供程序链来查找AWS凭据。默认凭据提供程序链按以下顺序查找凭据:
- 环境变量 -
AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。 AWS SDK for Java使用EnvironmentVariableCredentialsProvider
类来加载这些凭据。- Java系统属性 -
aws.accessKeyId
和aws.secretKey
。 AWS SDK for Java使用SystemPropertiesCredentialsProvider
加载这些凭据。- 默认凭据配置文件文件 - 通常位于
~/.aws/credentials
(位置可能因平台而异),并由许多AWS开发工具包和AWS CLI共享。 AWS SDK for Java使用ProfileCredentialsProvider
加载这些凭据。