Jump アカウント方式における AWS CLI セットアップ手順

Jump アカウント方式における AWS CLI セットアップ手順

Jump アカウント方式でAWSを利用する際に、ローカル環境で aws-vault を使用して AWS CLI をセキュアに利用するための設定手順をまとめました。MFA が必須な環境での具体的な設定方法を紹介します。
2026.07.22

こんにちは!コンサルティング3部のくろすけです!

AWSを導入いただく際に AWS Organizations (AWS IAM Identity Center による IAM ユーザー管理) を使用しない場合に、Jump アカウント方式をご検討いただくことがしばしばあります。
本記事では、Jump アカウント方式において、ローカル環境で aws-vault を利用して AWS CLI をセキュアに利用するための設定手順をまとめます。

概要

Jump アカウント方式

本記事では、Jump アカウント方式がどのようなものかについては詳しく取り上げません。詳しくは以下の記事をご覧ください。

https://dev.classmethod.jp/articles/multi-account-user-management/

アカウント構成

jump-account.png

本記事では、上図のように利用者の IAM ユーザーを Jump アカウントへ集約する構成を前提とします。
利用者は IAM ユーザー名・パスワードに加えて MFA で Jump アカウントへサインインします。(今回の手順は MFA の強制設定がされている環境での手順となっています。)

Jump アカウントの IAM ユーザーには、対象アカウントの IAM ロールへ sts:AssumeRole する権限を IAM グループ経由で付与します。
ロールへのスイッチ時には AWS STS から一時的な認証情報が発行され、利用者はそのロールの権限で作業できます。

対象アカウントは、本番・ステージング・開発の 3 環境を想定します。各アカウントには「管理者」「開発者」「運用者」の IAM ロールを用意し、Jump アカウントの IAM グループごとに、スイッチを許可するロールと環境を制御します。
このため、利用者の追加・権限変更・削除は、原則として Jump アカウントの IAM ユーザーと IAM グループの管理だけで完結します。

IAM ユーザーの準備

  • Jump アカウントの IAM ユーザーが発行済みであること
  • Jump アカウントの IAM ユーザーが MFA を使用して AWS アカウントにログインできること

https://dev.classmethod.jp/articles/jump-account-iam-user-management-guide/

やってみた

1. AWS CLI のインストールする

今回は現在のユーザーのみに AWS CLI をインストールします。
今回は Windows 用の AWS CLI MSI インストーラを使用します。

  1. Windows 用の AWS CLI MSI インストーラ (64 ビット) をダウンロードして実行

    msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2-User.msi
    
  2. AWS CLI のバージョンを確認

    aws が認識されない場合は、AWS CLI をインストールした後に PowerShell を再起動してください。

    aws --version
    

    AWS CLI のバージョンが表示されれば、インストールは完了です。

AWS CLI インストールの詳細は、以下の AWS 公式ドキュメントをご確認ください。

2. aws-vault のインストール

今回は aws-vault を使用して AWS CLI をセキュアに利用するため、aws-vault をインストールします。

https://github.com/ByteNess/aws-vault

  1. aws-vault のインストール

    それぞれの環境に合わせてインストールしてください。(前述のリポジトリにインストール方法が記載されています。)
    下記は Windows 環境でのインストールコマンドです。

    choco install aws-vault
    
  2. aws-vault のバージョンを確認

    aws-vault --version
    

    aws-vault のバージョンが表示されれば、インストールは完了です。

3. Jump アカウントの IAM アクセスキーを取得する

  1. AWS マネジメントコンソールにログインし、対象の IAM ユーザーを選択

    CleanShot20260722at18.43.23.png

  2. セキュリティ認証情報 タブを選択

    CleanShot20260722at18.46.24.png

  3. アクセスキー セクションにて、アクセスキーを作成 を選択

    CleanShot20260722at18.49.02.png

  4. 任意で説明タグを設定(今回は設定しない)し、アクセスキーを作成 を選択

    CleanShot20260722at18.52.03.png

  5. csv ファイルをダウンロードし、完了

    CleanShot20260722at18.54.20.png

4. aws-vault で Jump アカウントの認証情報を設定する

Jump アカウントの IAM ユーザーに発行されたアクセスキーを、aws-vault に登録します。

  1. aws-vault に認証情報を登録

    aws-vault add default
    
    Enter Access Key ID: <Jump アカウントのアクセスキー ID>
    Enter Secret Access Key: <Jump アカウントのシークレットアクセスキー>
    Enter MFA Device ARN (If MFA is not enabled, leave this blank): <Jump アカウントの MFA デバイス ARN>
    Added credentials to profile "default" in vault
    
  2. $HOME\.aws\config に下記の設定を追加

    default プロファイルから、それぞれの環境の IAM ロールにスイッチする構成となります。
    今回は、default、prd、stg、dev の 4 つのプロファイルを作成しています。
    default 以外のプロファイル名は環境に合わせて適宜ご変更ください。(例: ${SYSTEM_NAME}-${ENV} など)

    [default]
    credential_process = aws-vault export --no-session --format=json default
    mfa_serial = <Jump アカウントの MFA デバイス ARN>
    region = ap-northeast-1
    output = json
    
    [profile prd]
    source_profile = default
    mfa_serial = <Jump アカウントの MFA デバイス ARN>
    role_arn = <本番アカウントのスイッチ先 IAM ロール ARN>
    region = ap-northeast-1
    
    [profile stg]
    source_profile = default
    mfa_serial = <Jump アカウントの MFA デバイス ARN>
    role_arn = <ステージングアカウントのスイッチ先 IAM ロール ARN>
    region = ap-northeast-1
    
    [profile dev]
    source_profile = default
    mfa_serial = <Jump アカウントの MFA デバイス ARN>
    role_arn = <開発アカウントのスイッチ先 IAM ロール ARN>
    region = ap-northeast-1
    
  3. 動作確認

    手順 2 で設定したプロファイル名を指定して、動作確認を行ってください。

    aws sts get-caller-identity --profile default
    aws sts get-caller-identity --profile prd
    aws sts get-caller-identity --profile stg
    aws sts get-caller-identity --profile dev
    

    対話形式で MFA のコードが求められるので、入力してください。
    それぞれのコマンドで下記のような結果が表示されれば、設定は完了です。

    {
        "UserId": "AROAXXXXXXXXXXXXX:botocore-session-XXXXXXXXXX",
        "Account": "<アカウント ID>",
        "Arn": "arn:aws:sts::<アカウント ID>:assumed-role/<アカウント名>/botocore-session-XXXXXXXXXX"
    }
    

5. 認証情報の削除

アクセスキー、シークレットキーを csv でダウンロードした場合には、必要がなければ漏洩事故防止のために csv ファイルを完全に削除してください。
アクセスキー、シークレットキーは権限があれば再発行が可能なので、基本的には削除を推奨します。

あとがき

手順をご相談いただくこともあるため、改めて汎用的な手順としてまとめてみました。

実際の環境では、アカウント ID、IAM ロール名、プロファイル名、リージョンを管理者の指示に従って置き換えてください。

当初 Windows 環境向けの手順としていたんですが、異なるのはインストールコマンドくらいだったので、Mac や Linux 環境でも少し読み替えていただければ再現可能かと思います。

以上、くろすけでした!

この記事をシェアする

関連記事