示例#1
0
    def _get_arns(self):
        """
        Gets a list of all Role ARNs in a given account, optionally limited by
        class property ARN filter
        :return: list of role ARNs
        """
        client = boto3_cached_conn('iam',
                                   service_type='client',
                                   **self.conn_details)

        account_arns = set()

        for role in list_roles(**self.conn_details):
            account_arns.add(role['Arn'])

        for user in list_users(**self.conn_details):
            account_arns.add(user['Arn'])

        for page in client.get_paginator('list_policies').paginate(
                Scope='Local'):
            for policy in page['Policies']:
                account_arns.add(policy['Arn'])

        for page in client.get_paginator('list_groups').paginate():
            for group in page['Groups']:
                account_arns.add(group['Arn'])

        result_arns = set()
        for arn in self.arn_list:
            if arn.lower() == 'all':
                return account_arns

            if arn not in account_arns:
                self.current_app.logger.warn(
                    "Provided ARN {arn} not found in account.".format(arn=arn))
                continue

            result_arns.add(arn)

        return list(result_arns)
示例#2
0
 def list_method(self, **kwargs):
     return list_users(**kwargs)
示例#3
0
 def list_users(self, **kwargs):
     users = list_users(**kwargs)
     return [
         user for user in users
         if not self.check_ignore_list(user['UserName'])
     ]
示例#4
0
 def list_users(self, **kwargs):
     users = list_users(**kwargs)
     return [user for user in users if not self.check_ignore_list(user['UserName'])]
 def list_method(self, **kwargs):
     return list_users(**kwargs)