AWS CLIを暗号化し安全に利用できるアプリケーションがあるということで使ってみた。
※Terraformなどではこの方法を使うらしい。
aws vaultとは
AWSのアクセスキー/シークレットキーをOSのキーストアに保存するアプリケーション。Terraform等のサードパーティアプリケーションで利用される。
やること
・Windows11にaws vaultをインストール
・アクセスキー/シークレットキー取得
・AWS CLIプロファイル作成
・aws vaultを使用してAWS CLI実行
前提
実践!
1.IAMグループ作成
1-1.IAM-[ユーザーグループ]-[グループを作成]
1-2.下記を入力し、[グループを作成]
・ユーザーグループ名:AdminGroups
・許可ポリシーを添付:AdministratorAccess
2.IAMユーザ作成
2-1.IAM-[ユーザー]-[ユーザーを追加]
2-2.下記を入力し、[次へ]
・ユーザー名:vaultuser
・AWSマネジメントコンソールへのユーザーアクセスを提供する:✅
・ユーザータイプ:
・IAMユーザーを作成します:✅
・コンソールパスワード:
・カスタムパスワード:[パスワード]
・ユーザーは次回のサインイン時に新しいパスワードを作成する必要があります:□
2-3.下記を入力し、[次へ]
・ユーザーグループ:AdminGroups
2-4.[ユーザーを作成]
2-5.作成したユーザーを選択
2-6.[セキュリティ認証]タブ
2-7.MFA設定 ※GoogleAuthenticatorなどを使って登録してください。
2-8.MFAの識別子を控える
3.アクセスキー/シークレットキー取得
3-1.IAM-[ユーザー]-作成したユーザーを選択
3-2.[セキュリティ認証情報]タブ
3-3.[アクセスキーを作成]
3-4.[その他]を選択し、[次へ]
3-5.[アクセスキーを作成]
3-6.シークレットアクセスキーを表示させメモする。
3-7.[完了]
4.aws-vaultインストール
4-1.下記サイトからaws-vaultをダウンロード
https://github.com/99designs/aws-vault
README.md内の[latest release]から[aws-vault-windows-386.exe]をダウンロード
※arm64だと実行できないと表示される。
4-2.任意のフォルダに保存
今回はc:\tempに保存
4-3.aws-vault.exeをリネーム
変更前:aws-vault-windows-386.exe
変更後:aws-vault.exe
4-3.保存したフォルダに環境変数Pathを通す
4-3-1.[スタート]-[設定]
4-3-2.[システム]-[バージョン情報]-[システムの詳細設定]
4-3-3.[詳細設定]タブ-[環境変数]
4-3-4.環境変数Pathを選択し、[編集]
※ログイン中のユーザのみ適用の場合はユーザー環境変数、端末利用ユーザーすべてへ適用する場合はシステム環境変数のPathへ設定する。
4-3-5.[新規]-c:\tempを入力し[OK]
4-4.コマンドプロンプトを開き下記コマンドを実行、バージョン情報が表示されることを確認する
# aws-vault --version
v7.2.0
# aws-vault add testvault
Enter Access Key ID: AKIA3QANHVTEGM3Z3MEX Enter Secret Access Key: **************************************** Added credentials to profile "testvault" in vault
5-2.登録確認
# aws-vault ls
Profile Credentials Sessions ======= =========== ======== testvault testvault -
6..aws/configファイル編集
6-1.configファイルを開く
%USERPROFILE%/.aws/config
6-2.下記を入力
[profile testvault] region=ap-northeast-1 output=json mfa_serial= [mfa識別子]
7.動作確認
# aws-vault exec testvault
Enter MFA code for arn:aws:iam::xxxxxxxxxxx:mfa/test: xxxxxx ※MFAコードを入力 Starting subshell cmd.exe, use `exit` to exit the subshell Microsoft Windows [Version 10.0.22621.1992] (c) Microsoft Corporation. All rights reserved.
8.config修正
※aws cliと同じように使いたいのでconfigファイルを修正します。
8-1.configファイルを下記のように修正
[profile testvault] credential_process=aws-vault exec testvault --json --prompt=wincredui region=ap-northeast-1 mfa_serial=arn:aws:iam::xxxxxxxxxxxx:mfa/test
8-2.下記コマンドを実行できることを確認
# aws ec2 describe-vpcs --profile testvault
{ "Vpcs": [ { "CidrBlock": "172.31.0.0/16", "DhcpOptionsId": "dopt-88aca5ec", "State": "available", "VpcId": "vpc-0b7eaa85a85a0772b", "OwnerId": "xxxxxxxxxxxxx", "InstanceTenancy": "default", "Ipv6CidrBlockAssociationSet": [
感想
準備が大変。。。(;・∀・)
でも手順整えたから次からは簡単に使えるはず!