概要
開発環境でAWSの認証情報を安全に行う為に、AWS Vault
を導入しました。今回はその設定方法について記載します。
事前設定
- AWSのアカウントがあり、
IAM
の設定が出来る権限を持っている - Homebrewがインストールされている
導入手順
基本設定
-
AWS Vault
をインストールする
brew install --cask aws-vault
-
AWS Vault
にAWS認証情報を追加する
※ Access KeyとSecret Access Keyの入力が必要な為、各項目に入力を行う
# 構文
aws-vault add # 任意のprofile名入力
# 下記はコマンド入力指示
Enter Access Key Id: # AWSのアクセスキーを入力
Enter Secret Key: # AWSのシークレットアクセスキーを入力
# 入力例
aws-vault add test
# 下記はコマンド入力指示
Enter Access Key Id: ABDCDEFDASDASF
Enter Secret Key: %%%
アクセスキーが作成されていない場合、下記のURLに作成方法が記載してありますので、参考にして作成してください。
[AWS公式ドキュメント] アクセスキーの管理 (コンソール)
aws-vaultのキーチェーンのパスワードを忘れた際の対処方法
- 下記のコマンドで、aws-vaultのキーチェーンの情報を消去する
rm ~/Library/Keychains/aws-vault.keychain-db
- 再度、キーチェーンの設定が表示される為、パスワードを入力する
-
aws-vault list
のコマンドで登録されている事を確認する
aws-vault list
Profile Credentials Sessions
======= =========== ========
default - -
test test -
- 初期の
config
ファイルは、下記の状態になっている
cat ~/.aws/config
[default]
region=ap-northeast-1
[profile test]
認証情報を継承
-
source_profile
を設定をして、default
に記載している認証情報を継承する
# 構文
aws configure set profile.任意のプロファイル名.source_profile default(継承したいprofileを選択しても良い)
# 入力例
aws configure set profile.test.source_profile default
default
に設定があり、profile
内に設定がない場合、default
の設定内容を参照する
リージョンの変更
-
profile
毎に使用するリージョンを変更したい場合に使用する
# 構文
aws configure set profile.任意のprofile名.region リージョン名
# 入力例
aws configure set profile.test.region us-east-1
IAMロールの導入
-
profile
毎にロールの権限を付与してAWSのアクセス権限を制御したい場合に使用する
構文
aws configure set profile.任意のprofile名.role_arn IAMロールのARN
入力例
aws configure set profile.test.role_arn arn:aws:iam::123456789000:role/testRole
MFA認証の導入
profile
毎にMFA認証を設定したい場合に使用する
# 構文
aws configure set profile.任意のprofile名.mfa_serial MFAのARN
# 入力例
aws configure set profile.test.mfa_serial arn:aws:iam::987654321000:mfa/testMfa
MFA認証の登録方法に関しては、下記を参考にして作成して下さい。
[公式]MFA デバイスを登録する
コマンドの叩き方
# 構文
aws-vault exec 任意のプロファイル名 -- awsコマンド or Terraformコマンド
# 入力例
# AWS CLI
aws-vault exec test -- aws s3 ls
# Terraform CLI
aws-vault exec test -- terraform init
補足
今回は、基本的な設定を記載しております。他にもいろんな設定が出来る為、公式ドキュメントを参考にして、必要に応じて組み込んで下さい
AWS Vaultに設定した認証の消去方法
- 下記の消去コマンドで、Credentialsに記載されている
profile
情報を入力して消去を行う
(消去する際、本当に消去して良いか表示がされる為、問題なければy
を押下する)
aws-vault remove プロファイル名
# 最終確認のコマンド入力
Delete credentials for profile "test"? (y|N) y
Deleted credentials.
参考記事
まとめ
今回の記事の内容とは関係ないが、公式を読み込んで設定する事で、仕組みも理解出来、応用した設定も出来る。