3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2でaws-vaultが使えるようになるまで

Posted at

はじめに

WSL2でaws-vault使えるようにするための手順を忘備録として書きます。
検証環境はWSL2のUbuntu20.04です。
なお、以下のコマンドでWSLのバージョンの確認ができます。

$ wsl -l -v

前提として必要なライブラリをインストールします。

$ sudo apt install build-essential curl git

今回はHomebrew経由でインストールするので、まずHomebrewをインストールします。
以下のページの「インストール」のコマンドを実行します。
https://brew.sh/index_ja

# 2022年3月時点
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

インストール後に以下のコマンドを実行します。

$ echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.profile
$ eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
$ brew install gcc

以下のコマンドでヘルプが表示されることを確認して下さい。

$ brew help

aws-vaultをインストールします。

$ brew install aws-vault

以下のツールが必要なのでインストールします。

$ brew install pass gnupg

GPGの鍵を作成します。
名前とメールアドレスとパスワードなどを入力します。

$ gpg --gen-key

キーが作成できたかどうかは以下のコマンドで確認できます。

$ gpg --list-keys

Snag_885e33b.png

passを初期化します。
以下のコマンドを実行してください。
キーIDはgpg --list-keysコマンドの実行結果から参照して貼り付けてください。

$ pass init <キーID>

Snag_88759ed.png

~/.bashrcか~/.zshrcに以下を追記してターミナルを再起動します。

export AWS_VAULT_BACKEND=pass
export AWS_VAULT_PASS_PREFIX=aws-vault
export AWS_SESSION_TOKEN_TTL=3h

プロファイルの設定を実施します。
コマンド実行後にIAMユーザのクレデンシャル情報を聞かれるので適宜入力します。

$ aws-vault add <プロファイル名>
# サンプルではawsというプロファイルを追加する例
# aws-valut add aws

以下のコマンドで設定したプロファイルが登録されているかどうかを確認します。

$ aws-vault list

以下のコマンドが正しく実行されることを確認して下さい。

$ aws-vault exec <プロファイル名> -- aws s3 ls

次に~/.aws/configファイルを修正します。
AWSのアカウントIDとユーザ名は適宜変更してください
※awsというプロファイルを追加したので以下のようになっていますが、profileの後の文字は追加したプロファイル名によって変わります。

~/.aws/config
[profile aws]
mfa_serial=arn:aws:iam::<AWSアカウントID>:mfa/<IAMユーザ名>

Snag_7aa3b0.png

再度以下のコマンドを実行してみましょう。

$ aws-vault exec aws -- aws s3 ls

すると今度はMFAの入力を求められると思います。
MFAの4桁の数字を入力すると実行結果が表示されると思います。

Snag_7e028b.png

トラブルシューティング1

以下のエラーが出る場合、
aws-vault: error: exec: aws-vault sessions should be nested with care, unset AWS_VAULT to force

以下のコマンドを実行します。

$ unset AWS_VAULT

トラブルシューティング2

以下のエラーが出る場合、
gpg: 警告: サーバ'gpg-agent'はこちらより古いです(2.2.19 < 2.3.4)
gpg: problem with fast path key listing: IPCパラメータエラーです - ignored
gpg: 公開鍵の復号に失敗しました: タイムアウトです
gpg: 復号に失敗しました: タイムアウトです

以下のコマンドを実行します。

$ gpgconf --kill all
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?