Registry / aws / iamdata

iamdata

JSON →
library0.1.202606161pypypi✓ verified 84d ago

IAMdata provides comprehensive AWS IAM data for actions, resources, and conditions, based on official IAM policy documents. It ensures data freshness by checking for updates daily. This library is useful for security tools, policy analysis, and compliance checks, providing a programmatic way to access detailed IAM information.

pip install iamdata
INSTALL
IMPORT
SIG · IAMDATA
I
iamdata
awspythonv0.1.202606161
Install
1.9s avg
Import
10ms
Disk
30MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.1.202606161 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 0.010s · 31.8MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 1.9s · import 0.010s · 32MB
30MB installed
● package 30MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

IAMData
from iamdata import IAMData
The primary class for interacting with IAM data.

This quickstart demonstrates how to initialize the `IAMData` client and retrieve information about AWS IAM actions and resource types. The library handles automatic data updates upon initialization.

from iamdata import IAMData # Initialize the IAMData object, which will ensure data is up-to-date iam_data = IAMData() # Get details for a specific S3 action s3_get_object_data = iam_data.get_action("s3", "GetObject") if s3_get_object_data: print(f"S3 GetObject: {s3_get_object_data.get('description')}") else: print("S3 GetObject not found.") # Get all actions for the S3 service s3_actions = iam_data.get_service_actions("s3") if s3_actions: print(f"Number of S3 actions: {len(s3_actions)}") # Get details for an EC2 resource type ec2_instance_data = iam_data.get_resource_type("ec2", "instance") if ec2_instance_data: print(f"EC2 Instance resourceARN: {ec2_instance_data.get('resourceARN')}")
Debug
Known issues
gotchaThe library's versioning (`0.1.YYYYMMDD1`) indicates it's still pre-1.0, and while core API methods are generally stable, minor API changes could occur in new date-stamped versions. Pin exact versions for production use to ensure stability.
fix
Pin the exact library version in your `requirements.txt` or `pyproject.toml` (e.g., `iamdata==0.1.202604161`).
affects: 0.1.x
gotchaIAMdata relies on daily updates of external AWS IAM data. This means the *content* of the returned data (e.g., descriptions, condition keys, ARN patterns) can change over time without a library code update. Logic dependent on specific IAM data values might need periodic review.
fix
Design your applications to be resilient to potential changes in IAM data content. Avoid hardcoding assumptions about data structures beyond what is documented in AWS IAM policy references.
affects: All
gotchaThe library requires internet access to fetch and update its internal IAM data cache. While subsequent operations can be performed offline with cached data, the initial load and daily updates will fail without connectivity.
fix
Ensure the environment where `IAMData()` is initialized has outbound internet access to download data from GitHub. For air-gapped environments, consider pre-populating the data cache.
affects: All
Errors
Common errors & fixes
AttributeError: 'NoneType' object has no attribute 'get' (or similar errors when accessing properties)
A lookup method (e.g., `get_action`, `get_resource_type`) returned `None` because the requested item was not found, and subsequent code attempted to access properties of this `None` object.
fix
Always check if the result of a lookup method is `None` before attempting to access its attributes or dictionary items. For example: `data = iam_data.get_action('s3', 'NonExistentAction'); if data: print(data['description'])`.
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) OR URLError: <urlopen error ...>
The library failed to connect to its external data source (GitHub) to download updates, likely due to a lack of internet connectivity, a firewall block, or temporary network issues.
fix
Verify your internet connection and ensure that no firewalls or proxy settings are preventing Python from making outbound HTTP/HTTPS requests to `github.com`.
KeyError: 'some_field' (when accessing dictionary-like objects returned by the library)
Attempting to access a field within an IAM data object that either does not exist, or its name has changed due to an upstream IAM data update.
fix
Use the `.get()` method with a default value for dictionary-like access (e.g., `item.get('description', 'N/A')`) to prevent `KeyError`. Consult AWS IAM documentation or the `iamdata` object structure for available fields.
Upgrade
Version history
0.1.202606161latest on PyPI · released Jun 16, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
10 hits · last 30 days
node
10
Resources
iamdata — pip install iamdata · libregistry