AWS CLIでクレデンシャルファイルパスを環境変数から設定できるようになりました
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間で統一されるように設計されていますが、やんごとなき理由により、プロジェクト固有のファイルパスが求められる場合には、有効なオプションとなるのではないでしょうか。