Skip to content

Instantly share code, notes, and snippets.

@shariqmalik
Last active August 28, 2023 18:08
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shariqmalik/ae54c0f8a6bc6815dcb547e6a4af9eb0 to your computer and use it in GitHub Desktop.
Save shariqmalik/ae54c0f8a6bc6815dcb547e6a4af9eb0 to your computer and use it in GitHub Desktop.
Oneliners to generate formated temporary AWS STS credentials based on a preconfigured AWS profile

Oneliners to generate formated temporary AWS STS credentials based on a preconfigured AWS profile.

For Windows (Powershell)

aws sts get-session-token --duration-seconds (Read-Host -Prompt "Session Duration") --serial-number (Read-Host -Prompt "Serial Number") --token-code (Read-Host -Prompt "MFA code") | ConvertFrom-Json | %{$_.Credentials} | %{@{aws_access_key_id=$_.AccessKeyId;aws_secret_access_key=$_.SecretAccessKey;aws_session_token=$_.SessionToken}} | ConvertTo-Json -Compress | %{$_ -replace "{","`n`n[profile-name]`n"} | %{$_ -replace "}",""} |  %{$_ -replace ":"," = "} | %{$_ -replace '"',""} |  %{$_ -replace",","`n"} | %{$_ -replace "profile-name", (Read-Host -Prompt "Profile Name")} | tee -Variable _ | Add-Content $HOME\.aws\credentials

For Linux (bash)

read -p "Session Duration: " duration; read -p "Serial Number: " serial; read -p "MFA Code: " mfa; aws sts get-session-token --duration-seconds $duration --serial-number $serial --token-code $mfa| jq '.Credentials' | jq -c '{aws_access_key_id: .AccessKeyId, aws_secret_access_key: .SecretAccessKey, aws_session_token: .SessionToken}' | sed -e 's/{/[default]\n/g' -e 's/}//g' -e 's/":"/ = /g' -e 's/",/\n/g' -e 's/"//g' | tee /tmp/credentials; mv /tmp/credentials ~/.aws/credentials
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment