def get_all_iam_roles()

in Back-End/lambdas/receive_sqs_message.py [0:0]


def get_all_iam_roles(account_number, cross_account_role):

    # Init
    var_list = []

    # Use boto3 on source account
    client_iam = create_boto_client(
        account_number, 'us-east-1', 'iam', cross_account_role)

    # Page roles
    paginator = client_iam.get_paginator('list_roles')

    for page in paginator.paginate():
        for i in page['Roles']:

            role_name = i['RoleName']

            # Get Tags for Role
            try:
                print(f'Getting Tags for: {role_name}...')
                tags = client_iam.list_role_tags(RoleName=role_name)['Tags']
            except ClientError as e:
                tags = 'No Tags Exist'

            var_list.append(
                {
                    'Id': str(i['Arn']),
                    'EntryType': 'iam-roles',
                    'Region': 'us-east-1',
                    'AccountNumber': str(account_number),
                    'Link': str(f"https://console.aws.amazon.com/iam/home?region=us-east-1#/roles/{role_name}"),
                    'Tags': str(tags),
                    'RoleName': str(role_name),
                    'CreateDate': str(i['CreateDate'])
                })

    return var_list