はじめに
aws-vault はAWSのアクセスキーをキーチェーンに保存しています。
しかしながらmacOSのキーチェーンのデフォルトのタイムアウトが短すぎて頻繁にパスワードを求められて、普段遣いするにはちょっとうざいです。これ伸ばせないのかなと思ったらできたのでメモ。
環境
- macOS 10.14 (Mojave)
- aws-vault v4.6.4
解決方法
調べたところ、aws-vaultでmacOSのキーチェーンのパスワードが求められるのは、ちょっとわかりにくいんんですが、実は3種類あるようです。
99designs/aws-vault #219: Constantly have to re-enter keychain password, part 2
Keychain locked
=> タイムアウトを伸ばすことで解決可能
キーチェーンの設定を開きます。
$ open ~/Library/Keychains/aws-vault.keychain-db
「aws-vault」のキーチェーンを右クリックして、設定変更を選択。
デフォルトのタイムアウトが5分になってるので、これを伸ばすか、
もしくは、操作しない場合のロックのチェックを外して、スリープ時のロックだけにします。
このへんは好みの分かれるところかもですが、個人的には、
基本的にノートPC開きっぱなしで離席することはない&離席するときはノートPCを閉じてスリープさせればよい
という気もしていて、操作しない場合の自動ロックはなくてもよいかなというお気持ちです。
普段からAWSいじりまくってると思考を中断されるのもストレスフルだし。
まぁ利便性とのバランスなので、好みでどうぞ。
※ちなみにスリープ時のロックは、スクリーンセーバや画面ロックでは発動しないようなのでご注意下さい。
Application access to a specific keychain
=> 「常に許可」を選択するとaws-vaultのバイナリが変わるまでは聞かれない。逆にいうと、バイナリが変わったら聞かれるようなので、「常に許可」にしてもリスクはない認識。
Application access to a specific item in a keychain
=> これが毎回聞かれるのは、aws-vaultのバグだったようで、v4.5.0以降で修正されているそうなので、aws-vaultのバージョンが古い場合はバージョンアップしてみて下さい。
おまけ
aws-vaultのAWSレベルのAssumeRoleのセッションタイムアウトはデフォルトで15分になってますが、ちょっとなにか試行錯誤してるとすぐにタイムアウトして、微妙に短いと思うんですけど、どうなんでしょう。厳しすぎない??そんなもん??
この設定は、実行時の引数 --assume-role-ttl
もしくは、環境変数 AWS_ASSUME_ROLE_TTL
で上書き可能です。たとえば1hにする場合は以下のように設定します。
$ export AWS_ASSUME_ROLE_TTL=1h
1h以上にしたい場合は、Assume Roleの設定で、12hまでは伸ばせそうに見えます。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use.html
が、role chainingしていると1h以上には設定できないようです。