あめがえるのITブログ

頑張りすぎない。ほどほどに頑張るブログ。

Windows端末にaws vaultをインストールし、AWS CLIを安全に使用してみた。

AWS CLIを暗号化し安全に利用できるアプリケーションがあるということで使ってみた。
※Terraformなどではこの方法を使うらしい。

aws vaultとは

AWSのアクセスキー/シークレットキーをOSのキーストアに保存するアプリケーション。Terraform等のサードパーティアプリケーションで利用される。

やること

 ・Windows11にaws vaultをインストール
 ・アクセスキー/シークレットキー取得
 ・AWS CLIプロファイル作成
 ・aws vaultを使用してAWS CLI実行

前提

 ・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


5.aws vault登録
5-1.aws vault登録

# 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": [



感想

準備が大変。。。(;・∀・)
でも手順整えたから次からは簡単に使えるはず!