def __call__(self, logger, account): try: sts = STS(logger) # assume role session_name = "custom-control-tower-session" partition = get_partition() role_arn = "%s%s%s%s%s%s" % ("arn:", partition, ":iam::", str(account), ":role/", environ.get('EXECUTION_ROLE_NAME')) credentials = sts.assume_role(role_arn, session_name) return credentials except ClientError as e: logger.log_unhandled_exception(e) raise
def test_get_partition_for_us_gov_cloud_region(): environ['AWS_REGION'] = 'us-gov-west-1' assert aws_us_gov_cloud_regions_partition == get_partition()
def test_get_partition_for_eu_region(): environ['AWS_REGION'] = 'eu-west-1' assert aws_regions_partition == get_partition()
def test_get_partition_for_cn_region(): environ['AWS_REGION'] = 'cn-north-1' assert aws_china_regions_partition == get_partition()
def test_get_partition_for_us_region(): environ['AWS_REGION'] = 'us-east-1' assert aws_regions_partition == get_partition()