def __enter__(self): sts = Session().client('sts') assumed_role_object = sts.assume_role( RoleArn=self.role_arn, RoleSessionName=self.role_session_name, ) self.credentials = assumed_role_object['Credentials'] kwargs = { "service_name": self.service_name, "aws_access_key_id": self.credentials['AccessKeyId'], "aws_secret_access_key": self.credentials['SecretAccessKey'], "aws_session_token": self.credentials['SessionToken'], } if self.kwargs is not None: kwargs.update(self.kwargs) self.client = Session().client(**kwargs) self.client = make_better(self.service_name, self.client) return self.client
def __enter__(self): credentials = {} for assumable_detail in self.assumable_details: role_arn, role_session_name = assumable_detail logger.info('About to assume: {} with session name: {}'.format( role_arn, role_session_name)) sts = Session().client('sts', **credentials) assumed_role_object = sts.assume_role( RoleArn=role_arn, RoleSessionName=role_session_name, ) new_credentials = assumed_role_object['Credentials'] credentials = { "aws_access_key_id": new_credentials['AccessKeyId'], "aws_secret_access_key": new_credentials['SecretAccessKey'], "aws_session_token": new_credentials['SessionToken'], } self.client = Session().client(self.service_name, **credentials) self.client = make_better(self.service_name, self.client) return self.client