- Published on
Paginate through IAM Users on AWS using Python and Boto3
- Authors
- Name
- Ruan Bekker
- @ruanbekker
When listing AWS IAM Users in Boto3, you will find that not all the users are retrieved. This is because they are paginated.
To do a normal list_users api call:
>>> import boto3
>>> iam = boto3.Session(region_name='eu-west-1', profile_name='default').client('iam')
>>> len(iam.list_users()['Users'])
100
Although I know there's more than 200 users. Therefore we need to paginate through our users:
>>> import boto3
>>> iam = boto3.Session(region_name='eu-west-1', profile_name='default').client('iam')
>>> paginator = iam.get_paginator('list_users')
>>> users = []
>>> all_users = []
>>> for response in paginator.paginate():
... users.append(response['Users'])
...
>>> len(users)
3
>>> for iteration in xrange(len(users)):
... for userobj in xrange(len(users[iteration])):
... all_users.append((users[iteration][userobj]['UserName']))
...
>>> len(all_users)
210
For more information on this, have a look at AWS Documentation about Pagination
Thank You
Thanks for reading, if you like my content, feel free to check out my website, and subscribe to my newsletter or follow me at @ruanbekker on Twitter.
- Linktree: https://go.ruan.dev/links
- Patreon: https://go.ruan.dev/patreon