Linux(EC2)でAWS Vaultを動かしたのでメモっておきます。
基本的な使い方は、Macでやったときの以下記事をご参照ください。
本記事ではLinux固有のポイントに絞って説明します。
AWS Vaultの使用方法
インストール
LinuxにHomebrew が入っていればMacと同じく
$ brew install aws-vault
でOKです。
入ってなければこちらから当該バージョンのバイナリファイルをダウンロードします。
$ sudo curl -sSL https://github.com/99designs/aws-vault/releases/download/v6.3.1/aws-vault-linux-amd64 -o /usr/local/bin/aws-vault
$
$ sudo chmod 755 /usr/local/bin/aws-vault
$
$ ll /usr/local/bin/
合計 14904
-rwxr-xr-x 1 root root 15257685 8月 25 10:12 aws-vault
$
コマンド実行
はじめに注意点
Linuxでのアクセスキー保存先は pass というアプリケーション か file(テキストファイルへの保存)になります。
passをyumでさくっとインストールしたかったのですが、どうやらこちらのBugzillaによると、passで使用しているgitコマンドのオプション-C(git-v1.8.5から有効)がCentOS7で使えないため、epelから削除されてしまったようです。
passをコンパイルしてインストールは、ちょっとめんどうだったので file で進めます。
クレデンシャル追加 – add
デフォルトの保存先がpassであるため、backend オプションで file を指定します。
アクセスキーとともにファイルアンロック用のパスフレーズを入力します。
## backendオプションを指定しないとエラーになる (passをインストールしていないので)
$ aws-vault add tester
aws-vault: error: Specified keyring backend not available, try --help
$
$
## backendオプションを指定
$ aws-vault --backend=file add tester
Enter Access Key ID: AKIAXXX
Enter Secret Access Key:
Enter passphrase to unlock /home/ec2-user/.awsvault/keys/:
Added credentials to profile "tester" in vault
$
アクセスキーがホームディレクトリ配下に保存されます。
$ ls -l ~/.awsvault/keys/tester
-rw------- 1 ec2-user ec2-user 728 8月 25 11:18 .awsvault/keys/tester
$
$ cat ~/.awsvault/keys/tester
eyJxxx...
$
中身はaws-vault を開発した99designsさんが同じく自分達で開発した keyringというツールを使用して暗号化されているようです。
AWSコマンド実行 – exec
常にbackendオプションの file 指定と、ファイルアンロック用のパスフレーズの入力を求められます。
$ aws-vault --backend=file exec dev -- aws s3 ls
Enter token for arn:aws:iam::111111111111:mfa/tester: 123456
Enter passphrase to unlock /home/ec2-user/.awsvault/keys/:
...
$
$
## MFAコードとは別でファイルアンロック用のパスフレーズの入力は毎回必要
$ aws-vault --backend=file exec dev -- aws s3 ls
Enter passphrase to unlock /home/ec2-user/.awsvault/keys/:
...
$
以上、addとexecを例にとりましたが、それ以外のサブコマンドの基本的な使い方は、Macでやったときのこちらの記事をご参照ください。
Tips
便利な環境変数
設定しておくと運用が楽になる環境変数を2つご紹介します。両者ともコマンド実行時のパラメータ入力の手間を省いてくれます。
AWS_VAULT_BACKEND
コマンド実行時の backend オプションの指定が不要になります。
$ export AWS_VAULT_BACKEND=file
$
$ aws-vault exec dev -- aws s3 ls
Enter token for arn:aws:iam::111111111111:mfa/tester: 123456
Enter passphrase to unlock /home/ec2-user/.awsvault/keys/:
...
$
AWS_VAULT_FILE_PASSPHRASE
コマンド実行時のファイルパスフレーズの入力が不要になります。
$ aws-vault exec dev -- aws s3 ls
Enter passphrase to unlock /home/ec2-user/.awsvault/keys/:
...
$
$ export AWS_VAULT_FILE_PASSPHRASE=hoge
$
## パスフレーズを聞かれなくなる
$ aws-vault exec dev -- aws s3 ls
...
$
今回は以上です〜ノシ
参考
アリガト━━━ヾ(´∀`)ノ━━━━♪
GitHub aws-vault
How to install pass (password store) on EC2?
aws-vaultをLinux環境でも使う方法【セキュリティ向上】