しゅがーブログ

技術ネタとか書いていけたらな…

aws-vault使ってらくらくAWS CLI

Overview

ローカルからaws cliをセキュアに使いたい人向け
MFAで認証させてから利用します。
※この方法ではMFA用のアクセスキー/シークレットキーを発行します。
※手順はmacOS用です。

事前作業

AWS CLIのインストール

まずはこちらの手順にてaws cliをインストールします。
docs.aws.amazon.com

Session Manager Pluginのインストール

続いても手順にてSession Manager Pluginをインストールします。 docs.aws.amazon.com

aws-vaultのインストール

brew install --cask aws-vault

IAMから対象ユーザのアクセスキー/シークレットキーを発行

IAMユーザ対象ユーザ認証情報タブアクセスキーの作成
ここで発行したアクセスキー/シークレットキーは控えておく。

MFA用ポリシーを作成

適当な名前で下記アクションが許可されたポリシーを作成し、対象ユーザへポリシーを割り当てる。
※手動で管理しきれないと思うのでCFnで一元管理を推奨。

ResyncMFADevice
DeactivateMFADevice
EnableMFADevice
CreateVirtualMFADevice
DeleteVirtualMFADevice

プロファイル作成

aws-vault add プロファイル名
プロファイル名は相応しい命名を。

aws-vault add test
Enter Access Key ID: XXX
Enter Secret Access Key: YYY
Added credentials to profile "test" in vault

XXX: 発行済アクセスキーを入力
YYY: 発行済シークレットキーを入力

そしてプロファイル用の妥当なパスワードを入力。
f:id:app_engineer:20210712164033p:plain

プロファイルとMFAの紐付け

[profile test]
mfa_serial=arn:aws:iam::xxxxxxxxxxxxxxxx:mfa/対象ユーザ

実行方法

aws-vault exec test -- コマンド で実行できる。

aws-vault exec test -- aws ssm start-session --target 対象インスタンス --region 対象リージョン

初回アクセス時にMFAトークンを入力後、キーチェーンのダイアログが出力されるので登録したパスワードを入力。
あとはssmのコンソールに繋がるので、良しなにご利用ください。

参考

aws-vault についてのあれこれ - Qiita

GitHub - 99designs/aws-vault: A vault for securely storing and accessing AWS credentials in development environments