IAM Floyd
AWS IAM policy statement generator with a fluent interface, for TypeScript, JavaScript, Python, Java, C# and Go.
IAM Floyd has a class for every AWS service, with a method for every action, resource type and condition key. Your IDE completes them and shows their documentation, so you neither look up action names and ARN formats, nor deploy policies with typos.
from cdk_iam_floyd import Statement
statement = (
Statement.Ec2()
.allow()
.to_start_instances()
.to_stop_instances()
.if_resource_tag('Owner', '${aws:username}')
)
{
"Condition": {
"StringLike": {
"ec2:ResourceTag/Owner": "${aws:username}"
}
},
"Action": ["ec2:StartInstances", "ec2:StopInstances"],
"Resource": "*",
"Effect": "Allow"
}
Support for:
- 458 Services
- 22327 Actions
- 2349 Resource Types
- 2516 Condition keys
Features
- Complete: generated from the AWS documentation, and updated every week
- Access levels: add all actions of an access level, e.g.
allReadActions()orallWriteActions() - Regular expressions: add all actions that match a pattern with
allMatchingActions('/vpn/i') - Resources: build ARNs with a method per resource type, e.g.
onBucket('example-bucket'), with defaults for partition, region and account - Conditions: a method per condition key, with operators like
ForAnyValue:StringEqualsorIfExists - AWS CDK:
cdk-iam-floydstatements are aniam.PolicyStatementof the AWS CDK, and theon*()methods take constructs, e.g.onBucket(bucket) - Policies: a policy document that knows the maximum size of its type, validates its estimated size and splits itself into several policies
- Collections of common statements, and the names of all AWS managed policies
- Policy converter: turn an existing JSON policy into IAM Floyd code with the online converter
Packages
IAM Floyd comes in two variants, with the same API and the same version number in every language:
iam-floydcreates statements as JSON, for the AWS SDKs, CloudFormation, Terraform or anything else that takes an IAM policy. The packages have no dependencies. In Python, Java, C# and Go, they are native and do not need Node.js.cdk-iam-floydcreates statements of the AWS CDK v2. In Python, Java, C# and Go, they are built with jsii, like the AWS CDK itself, and need Node.js.
| Language | iam-floyd |
cdk-iam-floyd |
|---|---|---|
| TypeScript / JavaScript | ||
| Python | ||
| Java | ||
| C# / .NET | ||
| Go |
Installation
pip install cdk-iam-floyd
IAM Floyd has not reached 1.0.0 yet, and the API can still change between releases. Pin the exact version.
The requirements of each package and the compatibility with the AWS CDK are listed in the documentation.
Documentation
The documentation explains all features, with examples in every language.
Legal
The service models in the lib/generated/model folder, and the code generated from them, are derived from the AWS documentation. The class- and function-names and their description therefore are property of AWS.
AWS and their services are trademarks, registered trademarks or trade dress of AWS in the U.S. and/or other countries.
This project is not affiliated, funded, or in any way associated with AWS.
IAM Floyd is licensed under Apache License 2.0. Dependencies might be released under different licenses.
Metadata
Release files for cdk-iam-floyd 0.851.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cdk_iam_floyd-0.851.0.tar.gz | 10.0 MB | With provenance | Details for cdk_iam_floyd-0.851.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cdk_iam_floyd-0.851.0-py3-none-any.whl | Python 3 | none | any | Details for cdk_iam_floyd-0.851.0-py3-none-any.whl |
Total release size: 20.0 MB
Release files / cdk_iam_floyd-0.851.0.tar.gz
| Download URL | cdk_iam_floyd-0.851.0.tar.gz |
|---|---|
| Size | 10.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b5b3cf0563103acca94ff6749559973e5a8cf8bd36d54cedc535c9195bb12f22
|
|
BLAKE2b-256 checksum How to use checksums |
fa1818d578492cc2c09d41d0b416651da579750111567951150d2f55ba8ec3d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logRelease files / cdk_iam_floyd-0.851.0-py3-none-any.whl
| Download URL | cdk_iam_floyd-0.851.0-py3-none-any.whl |
|---|---|
| Size | 10.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
52c8ae4928e0174a841400b8f7cf3fa7cfa09e20406a547c4e20736fe244c0c2
|
|
BLAKE2b-256 checksum How to use checksums |
fa0221ef75861e304430af2bb8f66b0c72acd4a1bcf4d67af65961296f433af2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logSecurity for cdk-iam-floyd 0.851.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for cdk_iam_floyd-0.851.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.