Created
April 4, 2020 02:33
-
-
Save tomofuminijo/8d80023689e17ef3992923809e6470da to your computer and use it in GitHub Desktop.
A sample script that executes GetSessionToken and then AssumeRole
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -eu | |
# Auth アカウントのIAM ユーザ アクセスキーにより、get-session-token を実行して、MFA 認証済みの一時的認証情報を入手する | |
credentials=$(aws sts get-session-token \ | |
--serial-number arn:aws:iam::<auth_account_id>:mfa/<iam_username> \ | |
--token-code $1 \ | |
--query "Credentials.[AccessKeyId, SecretAccessKey,SessionToken]" \ | |
--output text) | |
# 一旦環境変数にMFA 認証済み一時的認証情報をセット | |
export AWS_ACCESS_KEY_ID=$(echo $credentials | cut -d ' ' -f 1) | |
export AWS_SECRET_ACCESS_KEY=$(echo $credentials | cut -d ' ' -f 2) | |
export AWS_SESSION_TOKEN=$(echo $credentials | cut -d ' ' -f 3) | |
# 対象アカウントのIAM ロールをassume-role する | |
credentials=$(aws sts assume-role --role-arn arn:aws:iam::<target-accountid>:role/<role_name> \ | |
--role-session-name <session_name(任意)> \ | |
--query "Credentials.[AccessKeyId, SecretAccessKey,SessionToken]" \ | |
--output text) | |
# 取得した対象アカウントの一時的認証情報をaws cli のdev プロファイルにセットする | |
access_key_id=$(echo $credentials | cut -d ' ' -f 1) | |
secret_access_key=$(echo $credentials | cut -d ' ' -f 2) | |
session_token=$(echo $credentials | cut -d ' ' -f 3) | |
aws configure set profile.dev.aws_access_key_id "$access_key_id" | |
aws configure set profile.dev.aws_secret_access_key "$secret_access_key" | |
aws configure set profile.dev.aws_session_token "$session_token" | |
# 環境変数削除 | |
unset AWS_ACCESS_KEY_ID | |
unset AWS_SECRET_ACCESS_KEY | |
unset AWS_SESSION_TOKEN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment