AWS Vaultを使ったスイッチロール設定手順

背景

AWS CLIやterraformでスイッチロール時にMFAを利用する際、コマンドを実行する都度MFAコードを入力するのは煩雑です。AWS Vaultを使うとスイッチロール後のプロファイルのシェルに入れるようになります。

構成

defaultプロファイルでIAM ユーザーによるログインをし、some-profileというプロファイルに設定しているAWSアカウントにスイッチロールする、という構成を前提に、本記事は記載します。具体的には以下の設定を前提とします。

% cat ~/.aws/config
[default]
region = ap-northeast-1
output = json
cli_pager=cat

[profile some-profile]
source_profile = default
role_arn = arn:aws:iam::1234567890:role/some_role_for_delegation
mfa_serial = arn:aws:iam::987654321:mfa/someone@example.com
% cat ~/.aws/credentials
[default]
aws_access_key_id=AKIA.....
aws_secret_access_key=........

[some-profile]
source_profile = default
role_arn = arn:aws:iam::1234567890:role/some_role_for_delegation
mfa_serial = arn:aws:iam::987654321:mfa/someone@example.com

設定手順

homebrewでコマンドをインストールします。

% brew install --cask aws-vault

インストールの確認を兼ねてコマンドを打ってみます。

% aws-vault list
Profile                    Credentials              Sessions
=======                    ===========              ========
default                    -                        -
some-profile               -                        -

default profileにcredentialを追加します。以下のコマンドを実行すると、IAMキーとシークレットを求めるプロンプトが出るので、入力します。

% aws-vault add default

最後に、以下のコマンドを実行します。するとMFAのコードを入力を求めるプロンプトが出るので、入力します。

% aws-vault exec some-profile
Starting subshell /bin/zsh, use `exit` to exit the subshell

以上で、上記コマンドを実行したターミナルではsome-profileにスイッチロールした状態になります。

本サイトの更新情報は、Twitterの株式会社プレセナ・ストラテジック・パートナーズエンジニア公式アカウントで発信しています。ご確認ください。

最終更新