agent: |
fFaE4DsUHFgCAxJ4CTxgList all AWS IAM Users
List all AWS IAM Users
There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.
This lists all IAM users in an AWS account, providing key details like usernames, user IDs, and creation dates. Essential for managing permissions and auditing access, this function supports security and compliance protocols by offering a clear view of user entities and their access levels. It's instrumental in enforcing security policies and the principle of least privilege in AWS resource access management.
inputs
outputs
import boto3
import botocore.exceptions
creds = _get_creds(cred_label)['creds']
access_key = creds['username']
secret_key = creds['password']
# Initialize the IAM client
iam_client = boto3.client('iam',aws_access_key_id=access_key,aws_secret_access_key=secret_key)
try:
# Create a paginator for the list_users operation
paginator = iam_client.get_paginator('list_users')
# Use the paginator to paginate through the users
table = context.newtable()
table.title = "User list"
table.num_cols = 3
table.num_rows = 1
table.has_header_row = True
rownum = 0
table.setval(rownum, 0, "User name")
table.setval(rownum, 1, "User ID")
table.setval(rownum, 2, "Created on")
for page in paginator.paginate():
users = page['Users']
table.num_rows += len(page['Users'])
# Output user details
if users:
# print("List of IAM Users:")
for user in users:
rownum += 1
# print(f"Username: {user['UserName']}, User ID: {user['UserId']}, Created On: {user['CreateDate']}")
table.setval(rownum, 0, user['UserName'])
table.setval(rownum, 1, user['UserId'])
table.setval(rownum, 2, user['CreateDate'])
else:
print("No IAM users found in this page.")
# Handle specific exceptions
except botocore.exceptions.NoCredentialsError:
print("Credentials not available")
except botocore.exceptions.PartialCredentialsError:
print("Incomplete credentials provided")
except botocore.exceptions.SSLError:
print("SSL connection could not be established. Ensure your network allows SSL connections to AWS services")
except botocore.exceptions.EndpointConnectionError:
print("Unable to connect to the endpoint. Check your AWS configuration and network settings")
except botocore.exceptions.ClientError as e:
print(f"Unexpected error occurred accessing AWS: {e}")
# Handle general exceptions
except Exception as e:
print(f"An unhandled error occurred: {str(e)}")
copied