AWS CLIでクレデンシャルファイルパスを環境変数から設定できるようになりました

2015.08.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS CLIには

  • 出力形式などのCLIの設定(以下configファイル。Unix系は~/.aws/config,Windows系はC:\Users\USERNAME\.aws\config)
  • AWSクレデンシャル情報の設定(以下credentialsファイル。Unix系は~/.aws/credentials,Windows系はC:\Users\USERNAME\.aws\credentials)

の2種類の設定ファイルがあります。

これまではconfigファイルは環境変数AWS_CONFIG_FILEでファイルパスを変更できましたが、credentialsファイルには該当するものが存在しませんでした。

AWS CLI 1.7.45のリリースからは環境変数AWS_SHARED_CREDENTIALS_FILEが追加され、credentialsファイルもパスを変更できるようになりました。

使用例

まずはAWS CLIをパッケージ管理ツールのpipからアップグレードします。

$ pip install --upgrade awscli
$ aws --version
aws-cli/1.7.45 Python/2.7.10 Darwin/14.4.0

credentialsファイルのパスを環境変数で変更してコマンドを実行してみます。

$ export AWS_SHARED_CREDENTIALS_FILE=/ops/app/config/credentials
$ aws s3 ls

なお$ aws configureの実行時にも、この環境変数が使われます。

$ export AWS_SHARED_CREDENTIALS_FILE=/tmp/foo
$ aws configure --profile envtest
AWS Access Key ID [None]: asdf
AWS Secret Access Key [None]: qwer
Default region name [None]:
Default output format [None]:
$ cat /tmp/foo
[envtest]
aws_access_key_id = asdf
aws_secret_access_key = qwer

まとめ

AWS ではクレデンシャルファイルのパスがSDK間で統一されるように設計されていますが、やんごとなき理由により、プロジェクト固有のファイルパスが求められる場合には、有効なオプションとなるのではないでしょうか。

参考