import boto3
iam_client = boto3.client('iam')
response = iam_client.list_roles()
while 'IsTruncated' in response and response['IsTruncated']: response = iam_client.list_roles(Marker=response['Marker'])
for role in response['Roles']: print(role['RoleName'])
import boto3
iam_client = boto3.client('iam') ec2_client = boto3.client('ec2')
instance_id = 'i-1a2b3c4d5e6f'
response = ec2_client.describe_iam_instance_profile_associations(Filters=[{'Name': 'instance-id', 'Values': [instance_id]}])
if len(response['IamInstanceProfileAssociations']) > 0: for assoc in response['IamInstanceProfileAssociations']: response = iam_client.get_role(RoleName=assoc['IamInstanceProfile']['Arn'].split('/')[-1]) print(response['Role']) else: print('No IAM role attached to instance')