この記事は公開されてから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間で統一されるように設計されていますが、やんごとなき理由により、プロジェクト固有のファイルパスが求められる場合には、有効なオプションとなるのではないでしょうか。