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の株式会社プレセナ・ストラテジック・パートナーズエンジニア公式アカウントで発信しています。ご確認ください。
最終更新
役に立ちましたか?