はじめに
Ubuntu Desktop 20.04 LTS に AWS Vault をインストールして、基本的な操作をするまでの手順です。
AWS Vault とは
詳細については以下のサイトをご参照ください。
A vault for securely storing and accessing AWS credentials i…
前提条件
AWS Vault の動作確認のため、AWS CLI をインストールしておく必要があります。 Ubuntu Desktop 20.04 LTS に AWS CLI をインストールして、基本的な操作をするまでの手順です。 AWS CLI とは コマンドラインシェルのコマンドを使って AWS&n[…]
AWS CLI のインストール方法については、以下の記事をご参照ください。
AWS Vault の導入
AWS Vault インストール
AWS Vault をダウンロード
AWS_VAULT_VERSION="v6.3.1" && \
> wget -O aws-vault "https://github.com/99designs/aws-vault/releases/download/${AWS_VAULT_VERSION}/aws-vault-linux-amd64"
AWS Vault をインストール
sudo mv aws-vault /usr/local/bin/ && \
> sudo chmod +x /usr/local/bin/aws-vault
AWS Vault のバージョン確認
$ aws-vault --version
v6.3.1
パスワード管理ツールの導入
パスワード管理ツールとして Pass と GunPG をインストールします。
sudo apt-get update && sudo apt-get install -y pass gnupg
暗号化・復号化に使用する鍵を生成します。
$ gpg --gen-key
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
注意: 全機能の鍵生成には "gpg --full-generate-key" を使います。
GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。
本名: mytechblog
電子メール・アドレス: example@gmail.com
次のユーザIDを選択しました:
"mytechblog <example@gmail.com>"
名前(N)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
gpg: 鍵F6E253C380558F2Eを究極的に信用するよう記録しました
gpg: 失効証明書を '/home/hatkobelab/.gnupg/openpgp-revocs.d/02936230B1E4855DD5D9B79EF6E253C380558F2E.rev' に保管しました。
公開鍵と秘密鍵を作成し、署名しました。
pub rsa3072 2021-09-20 [SC] [有効期限: 2023-09-20]
02936230B1E4855DD5D9B79EF6E253C380558F2E
uid example <example@gmail.com>
sub rsa3072 2021-09-20 [E] [有効期限: 2023-09-20]
AWS のアクセスキーの保存場所を公開鍵(pub)を使って作成します。
$ MY_PUBLIC_KEY="02936230B1E4855DD5D9B79EF6E253C380558F2E"
$ pass init "$MY_PUBLIC_KEY"
AWS Vault プロファイル作成
任意の名前(本例では staging-admin)でプロファイルを作成し、IAM ユーザーアクセスキーを登録します。
$ MY_PROFILE_NAME="staging-admin"
$ aws-vault add "$MY_PROFILE_NAME"
Enter Access Key ID: ***********
Enter Secret Access Key: ***********
Added credentials to profile "staging-admin" in vault
aws-vault: error: add: No such interface “org.freedesktop.DBus.Properties” on object at path /
この場合は、ローカル上でターミナルを起動してコマンドを実行すると解決します。
作成したプロファイルを確認します。
$ aws-vault ls
Profile Credentials Sessions
======= =========== ========
MYPROFILE - -
staging-admin staging-admin sts.GetSessionToken:38m39s
AWS Vault の実行
作成した AWS Vault プロファイルを使って、AWC CLI のコマンドを実行できます。
AWS Vault を使って何が嬉しいか・・ですが、AWS CLI の場合、認証情報(Access Key および Secret Access Key)は 1 つしか登録できないので、セキュリティを考慮すると都度 IAM ユーザーが aws configure で設定してから作業する必要があり、手間がかかります。AWS Vault では IAM ユーザーごとにプロファイル化できるのでのでこの手間を省略できます。
aws-vault exec staging-admin -- aws sts get-caller-identity
なお、env コマンドで環境変数を確認できます。
AWS Vault は、生の認証情報(Access Key および Secret Access Key)を使用せずに、有効期限付きの認証情報を使っていることがわかります。
$ aws-vault exec staging-admin -- env | grep AWS
AWS_VAULT=staging-admin
AWS_ACCESS_KEY_ID=***********
AWS_SECRET_ACCESS_KEY=***********
AWS_SESSION_TOKEN=***********
AWS_SECURITY_TOKEN=***********
AWS_SESSION_EXPIRATION=2021-09-20T07:08:03Z
以上