複数のAWS IAMアカウント(例えば会社用と自分用)を使っているときに、間違って他のアカウントを使わないようにしたい。「--profile
」オプションで環境を切り替える事もできるが、付け忘れたりするリスクがある。
試行錯誤・運用した結果、ホームディレクトリに「~/.aws/credentials
」を置かず、 direnv
を使って環境変数で設定する方法に落ち着いた。
direnvのインストール方法とかはこちらを参考に。
.envrcをどこに配置するか
大抵、該当のリポジトリに移動してから作業を行うため、リポジトリに配置してもよい。しかし、複数のリポジトリで同じAWSアカウントを使いたいこともあるので、Organizationのレベルに .envrc
を配置している。
~
├── github.com
│ ├── .envrc
│ ├── bar
│ └── foo
└── github.office.example.com
├── .envrc
├── baz
└── qux
.envrc
の中身については以下の通り。
export AWS_ACCESS_KEY_ID='xxxxxxxxxxxxx'
export AWS_SECRET_ACCESS_KEY='xxxxxxxxxxxxxxx'
必要であれば source_env ..
などで上の階層を読み込むとよい。