AWS Vault で複数アカウントにMFA認証通過

AWS Vault で複数アカウントにMFA認証通過

AWS Vault とは?

AWS Vault は IAM の認証情報 (Access Key Id, Secret Access Key) を安全に OS のキーストアに保存しアクセスできる仕組みを提供するツールです。

Vault = 金庫 というだけあって
PC 落としても秘匿情報が漏れにくい仕組みにしてくれます。

今回の目的

AWS Vault で複数アカウントのコンソールログインを簡単にしたいと思います。

AWS IAM を頂く際に MFA 設定をしているかと思います。

デバイス認証することでセキュアなアカウントを管理をする為です。

その際に、以下の様なアプリをインストールし
1 分置きに更新される 6 桁 の数字で認証する仕組みにします。

MFA 自体は
その会社の開発ポリシーにも依りますが、入れておいて損なしの仕組みです。

ただ、毎回 6 桁の数字をコピぺするのは面倒です。

それを簡易的に認証通過する様にしました。

aws-vault インストール

1
macOS%$ brew cask install aws-vault

profile 設定

1
2
3
aws-vault add <profile>
Enter Access Key ID: <Access Key ID 入力>
Enter Secret Access Key: <Secret Access Key 入力>

事前準備

1
2
brew tap peco/peco
brew install peco

bash 設定

ご利用の .bashrc, .zshrc 等に設定してください。

1
2
3
4
5
6
7
8
9
10
11
12
function peco-login-aws-account() {
local account=$(aws-vault ls | awk 'NR>2 {if ($2 != "-") print $2}' | peco)
aws-vault login $account
}

function peco-aws-exec() {
local account=$(aws-vault ls | awk 'NR>2 {if ($2 != "-") print $2}' | peco)
echo -e "aws-vault exec \"$account\" -- \\" | pbcopy
}

alias avl='peco-login-aws-account'
alias ave='peco-aws-exec'

使い方

  • 設定した profile を選択して Login
1
avl
  • 設定した profile を選択してコマンド実行
1
ave

実際のコマンドを rec して出すのは憚れる内容でしたので貼り付けられず汗

是非一度利用し使用感を試してみてください ♪

毎回パスワード入力というのも辛いところではありますが
MFA の手間に比べれば数段楽です。

AWS Vault は本来はそういう意図ではないと思いますが
楽になるならば良し ♪

AWS Vault で複数アカウントにMFA認証通過

https://kenzo0107.github.io/2018/05/13/2018-05-14-aws-vault-mfa/

Author

Kenzo Tanaka

Posted on

2018-05-14

Licensed under

コメント