DEV Community

丁久
丁久

Posted on • Originally published at dingjiu1989-hue.github.io

IAM Audit

This article was originally published on AI Study Room. For the full version with working code examples and related articles, visit the original post.

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit

IAM Audit Fundamentals

Identity and Access Management (IAM) audits verify that users have appropriate permissions. Regular audits prevent privilege creep, detect unused roles, and identify security gaps.

Permission Review

Automate permission reviews across cloud providers:

import boto3

import json

class IAMAuditor:

def init(self):

self.iam = boto3.client("iam")

def get_all_users_with_permissions(self):

users = []

paginator = self.iam.get_paginator("list_users")

for page in paginator.paginate():

for user in page["Users"]:

user_info = {

"username": user["UserName"],

"created": user["CreateDate"],

"policies": [],

"groups": [],

"last_used": None

}

Inline policies

policies = self.iam.list_user_policies(UserName=user["UserName"])

user_info["policies"] = policies["PolicyNames"]

Attached managed policies

attached = self.iam.list_attached_user_policies(UserName=user["UserName"])

user_info["managed_policies"] = [p["PolicyName"] for p in attached["AttachedPolicies"]]

Groups

groups = self.iam.list_groups_for_user(UserName=user["UserName"])

user_info["groups"] = [g["GroupName"] for g in groups["Groups"]]

Last activity

last_used = self.iam.get_user(UserName=user["UserName"])

if "PasswordLastUsed" in last_used["User"]:

user_info["last_used"] = last_used["User"]["PasswordLastUsed"]

users.append(user_info)

return users

Unused Role Detection

def find_unused_roles(days_threshold=90):

cutoff = datetime.utcnow() - timedelta(days=days_threshold)

unused = []

paginator = client.get_paginator("list_roles")

for page in paginator.paginate():

for role in page["Roles"]:

if "LastUsedDate" not in role:


Read the full article on AI Study Room for complete code examples, comparison tables, and related resources.

Found this useful? Check out more developer guides and tool comparisons on AI Study Room.

Top comments (0)