AWS CLI や AWS SDK が参照する共有認証ファイル(credentials
および config
)は、デフォルトでは下記のようなディレクトリになっています。
- Linux の場合:
~/.aws/credentials
- Windows の場合:
~/%USERPROFILE%/.aws/credentials
ところが、Windows を使用している場合に、環境変数 %HOME%
を設定していると、CLI や SDK が %HOME%/.aws/credentials
を見に行ったりして、credentials が見つからない系のエラーが出ることがあります。
一貫して %USERPROFILE%
の方を見に行ってくれれればよいのですが、このあたりの振る舞いは結構ルーズなようです。
そこで、Windows のジャンクション機能 で、両方の .aws
ディレクトリが同じディレクトリを指すようにしてみました。
ジャンクション生成のコマンドは、mklink /j <fromDir> <toDir>
です。
これで、%HOME%\.aws
ディレクトリを参照したときの実体として、%USERPROFILE%\.aws
ディレクトリが使われるようになります。
今のところ快適に動作しています。
ちなみに、ジャンクションを削除したいときは、ジャンクション元の %HOME%\.aws
ディレクトリを削除するだけです。
実体の方の %USERPROFILET%\.aws
は削除されないので安全です。