MFA認証つきのIAMユーザでaws cliを利用するワンライナーコマンド


IAMユーザのARNとMFAデバイストークンを用意してワンタイムセッションを確立して作業する

eval `aws sts get-session-token --serial-number {IAMユーザのARN} --token-code {MFAトークン} | awk ' $1 == "\"AccessKeyId\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_ACCESS_KEY_ID="$2 } $1 == "\"SecretAccessKey\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_SECRET_ACCESS_KEY="$2} $1 == "\"SessionToken\":" { gsub(/\"/,""); gsub(/,/,""); print "export AWS_SESSION_TOKEN="$2 } '`

付録

  • AWS Security Token Service(STS)を使用して、MFAデバイスのトークンコードから一時的な認証情報(Temporary Security Credentials)を取得する
  • 有効期限はデフォルト12時間

aws sts get-session-token --serial-number <IAMユーザのARN> --token-code <MFAトークン>

# 結果
{
    "Credentials": {
        "SecretAccessKey": "secret-access-key",
        "SessionToken": "temporary-session-token",
        "Expiration": "expiration-date-time",
        "AccessKeyId": "access-key-id"
    }
}

次の環境変数にセット

export AWS_ACCESS_KEY_ID={AccessKeyId}
export AWS_SECRET_ACCESS_KEY={SecretAccessKey}
export AWS_SESSION_TOKEN={SessionToken}
Share:

0 Comments: