コンテンツにスキップ
Dev Classmethod Jp Articles Aws Vault Account Switch

aws-vault で role_arn を変えてもアカウントが切り替わらない原因はセッションキャッシュだった!

  • URL: https://dev.classmethod.jp/articles/aws-vault-account-switch
  • 日付: 2026-06-24
  • Tier: Tier 2
  • 要旨: aws-vault でプロファイル名が同じままロール ARN だけを変更すると、セッションキャッシュが古い認証情報を再利用するため、実際の認証先がアップデートされない。aws-vault clear で全キャッシュ削除、または aws-vault clear プロファイル名 で該当プロファイルのキャッシュをクリアすれば解決。本番と検証環境を切り替える際は、プロファイルをアカウントごとに分けておくことが推奨される構成。

詳細

aws-vault は STS で取得した一時認証情報をキャッシュするとき、プロファイル名を単位としてキャッシュキーを設定する。そのため同じプロファイル内で role_arn だけを本番環境に書き換えても、aws-vault は以前の検証環境アカウントで取得した有効なセッションを再利用してしまい、設定と実際の認証先に不一致が生じる。セッションキャッシュの衝突の他、本番 ARN を有効にしたまま検証だと思い込んで作業するヒューマンエラーのリスク、作業後に ARN を元に戻す手間といった落とし穴がある。推奨される方法は環境ごとにプロファイルを分けておくことで、dev と prod に分ければ清でキャッシュキーもそれぞれ異なり、clear なしで混ざらない。また command に dev/prod と表示されるので目で確認でき、作業後に設定を戻す必要もない。Terraform を実行するときは aws-vault exec prod – terraform plan のように profile をコマンドに指定し、Terraform コード内では provider の profile と region を変数に分離して管理し、毎回手動修正しないようにする。