Created
August 4, 2019 11:07
-
-
Save jcaxmacher/10a3a8128436038b7463f487e26da436 to your computer and use it in GitHub Desktop.
Create an AWS Management Console login link with credentials from environment variables
This file contains 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
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