0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

aws-vault の使い方を実例ベースで徹底解説

Posted at

〜MFA・複数アカウント・Role切り替えを安全&快適に〜

はじめに

AWSを業務で使っていると、こんな悩みありませんか?

  • Access Key をファイルに平文で置きたくない
  • MFA 必須で毎回の入力が面倒
  • 本番・検証・個人アカウントの切り替えが混乱する
  • 「今どのアカウントで操作してるか」不安になる

これらをまとめて解決してくれるのが aws-vault です。

本記事では、
「aws-vaultって何?」→「どう使う?」→「現場での実例」
という流れで、できるだけ噛み砕いて解説します。


aws-vault とは?

AWS認証情報を安全に管理し、MFAやAssumeRoleを簡単にするCLIツールです。

ざっくり特徴

  • Access Key を OSのキーチェーンに安全保存
  • **一時クレデンシャル(STS)**を自動取得
  • MFA / Role切り替えをほぼ意識せず使える
  • コマンド実行後、認証情報は自動破棄

aws-vault を使わない場合との比較

項目 通常のAWS CLI aws-vault
認証情報 ファイルに平文 OSの安全領域
MFA 毎回手動 必要時のみ
Role切替 設定が複雑 プロファイル切替だけ
複数アカウント 混乱しがち 明確に分離
事故防止

インストール

macOS

brew install aws-vault

確認

aws-vault --version

基本構成の考え方(重要)

aws-vaultを理解するコツはこれ👇

IAMユーザーの実体 → aws-vault
Role・振る舞い → ~/.aws/config

  • ~/.aws/credentials は基本触らない
  • 設計は ~/.aws/config に集約する

実例①:IAMユーザーを登録する(最初の一歩)

aws-vault add myuser

入力内容:

  • Access Key ID
  • Secret Access Key
  • MFAデバイス(任意だが推奨)

👉 登録後、キーは キーチェーンに保存される
👉 ファイルに平文では残らない


実例②:最小構成で使ってみる(Roleなし)

~/.aws/config

[profile myuser]
region = ap-northeast-1

実行

aws-vault exec myuser -- aws s3 ls
  • 一時クレデンシャルで実行
  • コマンド終了後、環境変数は自動破棄

実例③:一番よくある構成(IAMユーザー → Role)

構成イメージ

IAMユーザー(ログイン)
   ↓ MFA
AssumeRole
   ↓
本番アカウント

~/.aws/config

[profile myuser]
region = ap-northeast-1

[profile prod]
role_arn = arn:aws:iam::123456789012:role/AdminRole
source_profile = myuser
mfa_serial = arn:aws:iam::111111111111:mfa/myuser
region = ap-northeast-1

実行

aws-vault exec prod -- aws ec2 describe-instances

👉

  • myuserでログイン
  • MFA認証
  • AdminRoleをAssume
  • 一時権限でコマンド実行

実例④:シェルを起動して作業する

複数コマンドを叩く場合はこちらが便利。

aws-vault exec prod
aws sts get-caller-identity
aws s3 ls
terraform plan

exitすると認証情報は破棄される。


実例⑤:本番・検証アカウントを切り替える

[profile stg]
role_arn = arn:aws:iam::222222222222:role/AdminRole
source_profile = myuser

[profile prod]
role_arn = arn:aws:iam::333333333333:role/AdminRole
source_profile = myuser
aws-vault exec stg
aws-vault exec prod

👉 プロファイル名を変えるだけ
👉 誤操作防止に非常に有効


実例⑥:踏み台Role(セキュリティ強化)

[profile jump]
role_arn = arn:aws:iam::111111111111:role/JumpRole
source_profile = myuser

[profile prod]
role_arn = arn:aws:iam::333333333333:role/AdminRole
source_profile = jump
  • 直接本番に入れない構成
  • 大規模組織でよく使われる

実例⑦:Terraformと一緒に使う

aws-vault exec prod -- terraform plan
aws-vault exec prod -- terraform apply
  • 永続的な認証情報を残さない
  • CI/CDでも事故りにくい

実例⑧:今どの権限か確認する

事故防止のため、必ず確認。

aws sts get-caller-identity

よくあるハマりポイント

❌ credentials に直接書く

👉 aws-vaultのメリット消失

❌ プロファイル名を曖昧にする

👉 prod-admin / prod-readonly など明確に

❌ MFA設定を忘れる

👉 本番操作は必ずMFA


まとめ

  • aws-vault は AWSを安全に使うための必須ツール
  • 認証情報は aws-vault、設計は config
  • プロファイルを分けるだけで事故率が激減
  • Terraform / CI/CD と相性抜群

「AWSを仕事で触るなら、まずaws-vault」

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?