2017-12-19 14 views
0

Angenommen, ich habe:AWS-Anmeldeinformationen Vorrang

:

cat ~/.aws/credentials 

[default] 
aws_secret_access_key = secret_access_key_1 
aws_access_key_id = access_key_1 

:

cat ~/.bashrc | grep -i aws 

export AWS_ACCESS_KEY_ID=access_key_2 
export AWS_SECRET_ACCESS_KEY=secret_access_key_2 

, die man hat Vorrang?

(sie sind aus verschiedenen Konten)

Antwort

1

Es könnte davon abhängen, welche AWS SDK Sie verwenden oder ob Sie die AWS CLI verwenden, aber ich würde erwarten, access_key_2 Vorrang zu nehmen.

Vom AWS Java SDK docs:

mithilfe der Standard Credential Provider Kette

Wenn Sie einen neuen Service-Client zu initialisieren, ohne irgendwelche Argumente zu liefern, versucht das AWS SDK für Java AWS-Anmeldeinformationen zu finden, indem Sie die standardmäßige Anmeldeinformationsanbieterkette, die von der Klasse DefaultAWSCredentialsProviderChain implementiert wird. Der Standard Credential Provider Kette sucht nach Anmeldeinformationen in dieser Reihenfolge:

  • Umgebungsvariablen - AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY. Das AWS SDK für Java verwendet die Klasse EnvironmentVariableCredentialsProvider, um diese Anmeldeinformationen zu laden.
  • Java-Systemeigenschaften - aws.accessKeyId und aws.secretKey. Das AWS SDK für Java verwendet die SystemPropertiesCredentialsProvider, um diese Anmeldeinformationen zu laden.
  • Die Standarddatei für Anmeldedatenprofile befindet sich normalerweise unter ~/.aws/credentials (der Speicherort kann je nach Plattform variieren) und wird von vielen AWS-SDKs und von der AWS-CLI gemeinsam genutzt. Das AWS SDK für Java verwendet die ProfileCredentialsProvider, um diese Anmeldeinformationen zu laden.