A lil python package to generate iam policies
Project description
IAM Builder
A python script to generate an IAM policy based on an yaml or json configuration.
To install:
# Most stable
pip install iam-builder
# OR directly from github
pip install git+git://github.com/moj-analytical-services/iam_builder.git#egg=iam_builder
To use the command line interface:
iam_builder -c examples/iam_config.yaml -o examples/iam_policy.json
-c
is the path to your iam configuration (either a yaml or json file).-o
is the path to your output iam policy (needs to be a json file).
Or to do the same thing in python:
import yaml
import json
from iam_builder.iam_builder import build_iam_policy
with open('examples/iam_config.yaml') as f:
config = yaml.load(f)
iam_policy = build_iam_policy(config)
with open('examples/iam_policy.json', "w+") as f:
json.dump(iam_policy, f, indent=4, separators=(',', ': '))
Both scripts will create the output iam_policy seen in the examples folder. You can also see more example configs by looking in the unit tests.
Your config file can be either a yaml or json file.
The example yaml (iam_config.yaml
) looks this:
athena:
write: false
glue_job:
iam_role_name: iam_role_name
s3:
read_only:
- test_bucket_read_only/*
write_only:
- test_bucket_write_only/*
- test_bucket_read_only/write_only_folder/*
read_write:
- test_bucket_read_write/*
- test_bucket_read_only/write_folder/*
Whilst the example json (iam_config.json
) looks like this:
{
"athena": {
"write": false
},
"glue_job": {
"iam_role_name": "iam_role_name"
},
"s3": {
"read_only": [
"test_bucket_read_only/*"
],
"write_only": [
"test_bucket_write_only/*",
"test_bucket_read_only/write_only_folder/*"
],
"read_write": [
"test_bucket_read_write/*",
"test_bucket_read_only/write_folder/*"
]
}
}
-
athena: only has one key value pair.
write
which is either true or false. Iffalse
then only read access to Athena (cannot create, delete or alter tables, databases and partitions). Iftrue
then the role will also have the ability to do stuff like CTAS queries,DROP TABLE
,CREATE DATABASE
, etc. -
run_glue_job: Allows role to run glue jobs. Requires an
iam_role_name
parameter which should be the name of the iam role that is going to use this policy. -
s3: Has can have up to 3 keys:
read_only
,write_only
andread_write
. Each key describes the level of access you want your iam policy to have with each s3 path. More details below:-
read_only: A list of s3 paths that the iam_role should be able to access (read only). Each item in the list should either be a path to a object or finish with
/*
to denote that it can access everything within that directory. Note the S3 paths don't start withs3://
in the config. -
write_only: A list of s3 paths that the iam_role should be able to access (write only). Each item in the list should either be a path to a object or finish with
/*
to denote that it can access everything within that directory. Note the S3 paths don't start withs3://
in the config. -
read_write_s3_access: A list of s3 paths that the iam_role should be able to access (read and write). Each item in the list should either be a path to a object or finish with
/*
to denote that it can access everything within that directory. Note the S3 paths don't start withs3://
in the config.
-
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file iam_builder-1.2.3.tar.gz
.
File metadata
- Download URL: iam_builder-1.2.3.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.16 CPython/3.6.5 Darwin/17.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e78385b7bce59f2742fc8040b87baf5656db8239bb007d1226c88b05589818f1 |
|
MD5 | 8c80df37f9aabedddb8d59e61859ae7c |
|
BLAKE2b-256 | 0677f272c37a25d3d21b5b2da1b43cbf03738136de5d139d52ddde2419b980ab |
File details
Details for the file iam_builder-1.2.3-py3-none-any.whl
.
File metadata
- Download URL: iam_builder-1.2.3-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.16 CPython/3.6.5 Darwin/17.7.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9e220fabbd20efb321f9ee36db396f9f66b2fad71242e2bbc199a0fee1d1d99 |
|
MD5 | 240aba6f0fd031c3ebe92a4649ac0e66 |
|
BLAKE2b-256 | 13cd92661f7ef117b32669a78bd02e6430c6c722336a97c033908a8398b5f410 |