🔑
aws-vaultでアクセスキーをセキュアに保存しつつ、MFAもシームレスにやる
aws-vault
を利用するとMFA認証をラップしてくれてシークレットもセキュアに保存できるので試してみた。
筆者は最近MacよりUbuntuを使うことが多いが、導入手順はMacOSとほとんど差異はなさそう。
インストール
Homebrewをインストール
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
aws-vaultをインストール
# brew install aws-vault
各種操作
アカウントを追加する
# aws-vault add default
ここで入力したKey
とSecret
は暗号化されて保存されるが
初回だとバックエンドのキーストア(Ubuntuだとseahorse)のマスターパスワードの設定も求められる。
aws-vaultを介したawsコマンドの実行
# aws-vault exec default -- aws s3 ls # -- の後に実行したいawsコマンドを書く
仮想MFAデバイスを追加する
※事前にAWSコンソールにて、Yubikeyを仮想MFAデバイスとして追加しておいてください。
~/.aws/config
を開き、対象のprofileにMFAデバイスのARNを追加する。
[default]
mfa_serial = arn:aws:iam::123456789012:mfa/yourname
mfa_process = ykman oath accounts code -s arn:aws:iam::123456789012:mfa/yourname
credential_process = aws-vault export --duration=36h --format=default
※あなたが利用しているMFAデバイスのARNに置き換えて下さい
あとはawsコマンド実行時に必要に応じてMFAトークンが求められるようになる
Discussion