Skip to content

Instantly share code, notes, and snippets.

@jcaxmacher
Created August 4, 2019 11:07
Show Gist options
  • Save jcaxmacher/10a3a8128436038b7463f487e26da436 to your computer and use it in GitHub Desktop.
Save jcaxmacher/10a3a8128436038b7463f487e26da436 to your computer and use it in GitHub Desktop.
Create an AWS Management Console login link with credentials from environment variables
import os, urllib, json, sys
import requests
import boto3
url_credentials = {}
url_credentials['sessionId'] = os.environ['AWS_ACCESS_KEY_ID']
url_credentials['sessionKey'] = os.environ['AWS_SECRET_ACCESS_KEY']
url_credentials['sessionToken'] = os.environ['AWS_SESSION_TOKEN']
json_string_with_temp_credentials = json.dumps(url_credentials)
request_parameters = "?Action=getSigninToken"
request_parameters += "&SessionDuration=43200"
if sys.version_info[0] < 3:
def quote_plus_function(s):
return urllib.quote_plus(s)
else:
def quote_plus_function(s):
return urllib.parse.quote_plus(s)
request_parameters += "&Session=" + quote_plus_function(json_string_with_temp_credentials)
request_url = "https://signin.aws.amazon.com/federation" + request_parameters
r = requests.get(request_url)
signin_token = json.loads(r.text)
request_parameters = "?Action=login"
request_parameters += "&Issuer=Example.org"
request_parameters += "&Destination=" + quote_plus_function("https://console.aws.amazon.com/")
request_parameters += "&SigninToken=" + signin_token["SigninToken"]
request_url = "https://signin.aws.amazon.com/federation" + request_parameters
print (request_url)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment