Beispiel #1
0
 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
Beispiel #2
0
    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