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/