/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

aws-vaultをインストールする

f:id:yatta47:20210105004543p:plain

aws環境をいじるときに、何かと便利に使っているaws-vault。

今回新しい環境にaws-vaultをインストールする機会があったので備忘録も兼ねてインストール手順を残しておきます。

 

aws-vaultとは?

そもそもaws-vaultとはなに?という話ですが、AWSの認証情報を安全に保存してアクセスするためのツールです。一時的な認証情報を生成して、シェルやアプリケーションに渡して使用することができます。

awscliとの親和性もあって、~/.aws/configのプロファイルと設定をして使って行くことになります。

github.com

  

必要なもの

必要なものは以下。

  • awscli

もともとawscliも入っていたのですがこれを機会にawscliもv2にバージョンアップしました。v2のインストール手順は過去に記事にしたのでそちらも参考になれば。

 

インストール

公式ページに書いてある通りに実行。バイナリとして提供されています。ダウンロードしてきてパーミッションを変更すれば完了。単独バイナリとしてインストールできるのは個人的に非常に好印象。

sudo curl -fsSLo /usr/local/bin/aws-vault https://github.com/99designs/aws-vault/releases/download/v6.2.0/aws-vault-linux-amd64
sudo chmod +x /usr/local/bin/aws-vault

バックエンド設定を追加します。gpg keyなどのキーストアと連携ができるらしいですが、今回はファイルベースのパスワードで実行します。

export AWS_VAULT_BACKEND=file
export AWS_VAULT_FILE_PASSPHRASE=yatta47

アカウント登録を行います。

$ aws-vault add yatta47
Enter Access Key ID: AKIXXXXXXXXXXXXXXXXXXXXXXXX
Enter Secret Access Key:
Added credentials to profile "yatta47" in vault

その後、連携したいProfileを~/.aws/configに追加します。こんな感じのやつ。

[profile test-env]
source_profile = yatta47
role_session_name = test-env
role_arn = arn:aws:iam::123456789:role/AdminRole

追加されているかどうかを確認。

$ aws-vault ls
Profile                   Credentials              Sessions
=======                   ===========              ========
yatta47                      yatta47                     -
test-env  -                        -

これで完了です。

 

使い方

--の後ろに実行するawscliのコマンドを渡してあげる感じになります。

aws-vault exec yatta47 -- aws s3 ls

便利。

 

まとめ

裏側では、入力したアクセスキーをもとにSTSを実行して、一時クレデンシャルを取得してそれを環境変数にセットしてくれているんじゃないかなと思っています。(aws-vault導入前は手動でそれを一時期やっていたので)

複数の環境をSwitchRoleで切り替えてメンテナンスや操作するには必須のツールかと思います。

これがあるのとないのとではだいぶ作業の差が出てくるので、複数環境を扱う方は導入しておいたほうがいいツールだと思います。

それでは。

 

参考サイト

WSL2 で aws-vault を使いたい

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

aws-vault でアクセスキーを安全に - FLINTERS Engineer's Blog