🥷
AWSの2FA認証をCLIからおこなうワンライナー
めっちゃ小ネタです🍣
AWSログインに多要素認証を有効化している環境でCLIを使うときに、接続情報をガッと環境変数に突っ込むワンライナーになります
前提として、 <()
が使えるシェルと、jq のインストールが必要です
rcファイル等で以下のaliasを設定します
.zshrc
alias aws2fa='echo -n "enter token: " && read token && source <(aws sts get-session-token --token-code "$token" --serial-number "arn:aws:iam::1234567890:mfa/HogeHoge" | jq -r ".Credentials | [\"export AWS_ACCESS_KEY_ID=\(.AccessKeyId)\", \"export AWS_SECRET_ACCESS_KEY=\(.SecretAccessKey)\",\"export AWS_SESSION_TOKEN=\(.SessionToken)\", \"echo Expiration: \(.Expiration)\"] | @tsv" | tr "\t" "\n")'
--serial-number
で指定している arn:aws:iam::1234567890:mfa/HogeHoge
の内容は、各自IAMの MFAデバイスの割り当て
を確認してください
使い方は以下の感じです
コマンドを実行すると対話でトークンを聞かれます
正しいトークンを入力すると、現在のログインセッションに資格情報が設定されます
$ aws2fa
enter token: 123456
Expiration: 2022-06-22T14:44:52+00:00
$ printenv | grep -i AWS
AWS_SECRET_ACCESS_KEY=xxxx
AWS_ACCESS_KEY_ID=xxxx
AWS_SESSION_TOKEN=xxxx
そんだけ😌
Discussion