AWS SDKのcredentialsについて

AWSのSDKではいくつかの方法でcredentialsの指定を行うことができるようになっています。

方法1

  • Linux users: ~/.aws/credentials
  • Windows users: C:\Users\USER_NAME.aws\credentials

もっともシンプルな方法です。

フォーマットとしては以下のように記載をします。

[default]
aws_access_key_id = <YOUR_ACCESS_KEY_ID>
aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>

方法2

実行時にプロファイルを指定する

$ AWS_PROFILE=work-account node script.js

方法3

環境変数に指定する

process.env.AWS_PROFILE

方法4

スクリプト内で指定する

var credentials = new AWS.SharedIniFileCredentials({profile: 'work-account'});
AWS.config.credentials = credentials;

lambda-localでは以下のようにも指定ができるようです。

ただ、この方法では内部で複雑なことをするとうまくいかないので、単純に方法1を取ったほうがよさそうです。

lambda-local -l index.js -h handler -e event-samples/s3-put.js -P /path/to/file -p hoge

https://github.com/ashiina/lambda-local

参考

https://hacknote.jp/archives/26571/

http://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html

https://aws.amazon.com/jp/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/