Files
code-dumps/aws/iam-custom-policies.py
T
2025-02-17 16:24:54 +08:00

40 lines
1.3 KiB
Python
Executable File

#!/usr/bin/python3
import boto3
import json
def list_custom_iam_policies():
# Create an IAM client
iam = boto3.client('iam')
# Initialize a paginator
paginator = iam.get_paginator('list_policies')
# List of custom policies
custom_policies = []
# Iterate through all pages of policies
for page in paginator.paginate(Scope='Local'):
for policy in page['Policies']:
if policy['PolicyName'] != 'AWSManaged':
policy_version = iam.get_policy_version(
PolicyArn=policy['Arn'],
VersionId=policy['DefaultVersionId']
)
custom_policies.append({
'PolicyName': policy['PolicyName'],
'PolicyArn': policy['Arn'],
'PolicyDocument': json.dumps(policy_version['PolicyVersion']['Document'], indent=2, separators=(',', ': '))
})
return custom_policies
if __name__ == "__main__":
custom_iam_policies = list_custom_iam_policies()
for policy in custom_iam_policies:
print(f"Policy Name: {policy['PolicyName']}")
print(f"Policy ARN: {policy['PolicyArn']}")
print("Policy Document:")
print(policy['PolicyDocument'])
print("=" * 40)