🔑

aws-vaultでアクセスキーをセキュアに保存しつつ、MFAもシームレスにやる

2021/07/30に公開

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

ここで入力したKeySecretは暗号化されて保存されるが
初回だとバックエンドのキーストア(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