AWS Session Management
Project description
AWS Session Management
This package contains
AwsSessionManagement - handles AWS Session with AWS Temp credentials by Assuming a given Role it renews the temp credentials when needed This library helps keeping boto3 clients with the fresh aws temp credentials
Usage:
This example shows how to manage the AWSRequestAuth object with the fresh temp credentials These credentials will be automatically refreshed by the AwsSessionManamagement class
Using the following libraries:
import requests import aws_requests_auth (https://github.com/DavidMuller/aws-requests-auth)
def get_auth(self):
auth = None
if self.awsSessionManagement is not None:
aws_access_key_id, aws_secret_access_key, aws_session_token = self.awsSessionManagement.get_aws_credentials()
if aws_access_key_id is not None and aws_secret_access_key is not None and aws_session_token is not None:
logger.debug("got aws credentials, using for authentication")
auth = AWSRequestsAuth(aws_access_key=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
aws_token=aws_session_token,
aws_host=f'{self.wmc_api_id}.execute-api.{self.wmc_api_region}.amazonaws.com',
aws_region=self.wmc_api_region,
aws_service='execute-api')
else:
logger.warning("ALL the retrieved aws credentials are None, not using authentication!")
return auth
headers = {'content-type': 'application/json'}
json_data = {"a": 'a_value', "b": 'b_value'}
data = json.dumps(json_data)
response = requests.post(url=f"{self.api_gateway}/abc", auth=self.get_auth(), data=data, headers=headers)
OR Alternatively you can use AwsSessionManagement as follows:
def get_auth_request(aws_access_key_id, aws_secret_access_key, aws_session_token, aws_host, aws_region, aws_service):
logger.info("creating/updating auth request ...")
auth = AWSRequestsAuth(aws_access_key=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
aws_token=aws_session_token,
aws_host=aws_host,
aws_region=aws_region,
aws_service=aws_service)
logger.info("returning auth request")
return auth
awsSessionManagement = AwsSessionManagement(role_arn='roleArnValue',
external_id='externalIdValue',
func=get_auth_request,
func_params_dict={'aws_host': 'your_service_aws_host_name', 'aws_region': 'your_service_region', 'aws_service': 'your_aws_service_name'},
role_session_name="CurrentSession")
# For example:
# aws_host = f'{self.api_gateway_id}.execute-api.{self.api_gateway_region}.amazonaws.com'
# aws_region = 'eu-west-1'
# aws_service = 'execute-api'
# get the auth request object with the temp aws credentials
auth = awsSessionManagement.get_func_res()
headers = {'Accept': 'application/json'}
response = requests.get(f"{self.api_gateway_url}/abc", auth=auth, headers=headers)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aws-session-management-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9491ec1a6ac6cb3a29a1a9653598a40b90ff81f534d677c9beff3804ede0af58 |
|
MD5 | a2cd9ae08c0abf7c295898f30adb55d2 |
|
BLAKE2b-256 | 7583f60e58b9913556391f9c68d4360cea53fab2929f2f4dd61d9e562c59519a |
Close
Hashes for aws_session_management-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a82bf02b989a4c27096d41a572d0760cb0f34f00724df5fec69137ad6b6d104 |
|
MD5 | d049ed780e9b86d4467e8efaf458e2c5 |
|
BLAKE2b-256 | 6084b3b8a454347ee9821bd18b05ad5ba4f8a4fe09be1dc07526cb5501371c47 |