{"id":13821339,"url":"https://github.com/percolate/iamer","last_synced_at":"2025-04-18T15:03:11.091Z","repository":{"id":19569156,"uuid":"22818406","full_name":"percolate/iamer","owner":"percolate","description":"Dump and load your AWS IAM configuration into text files","archived":false,"fork":false,"pushed_at":"2023-03-16T17:43:24.000Z","size":33,"stargazers_count":48,"open_issues_count":2,"forks_count":6,"subscribers_count":70,"default_branch":"master","last_synced_at":"2025-03-29T06:23:19.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/percolate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2014-08-10T20:52:52.000Z","updated_at":"2023-08-04T22:41:18.000Z","dependencies_parsed_at":"2024-01-15T16:27:10.634Z","dependency_job_id":"149325f6-f104-4c5d-886d-5daf031868de","html_url":"https://github.com/percolate/iamer","commit_stats":{"total_commits":37,"total_committers":3,"mean_commits":"12.333333333333334","dds":0.05405405405405406,"last_synced_commit":"851a0940f17f0102a17ff6b05472e4dbd6af359d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/percolate%2Fiamer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/percolate%2Fiamer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/percolate%2Fiamer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/percolate%2Fiamer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/percolate","download_url":"https://codeload.github.com/percolate/iamer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249184867,"owners_count":21226474,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-04T08:01:20.265Z","updated_at":"2025-04-18T15:03:11.059Z","avatar_url":"https://github.com/percolate.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# IAMer\n\n[![Build Status](https://circleci.com/gh/percolate/iamer/tree/master.svg?style=shield)](https://circleci.com/gh/percolate/iamer)\n[![Latest Version](https://img.shields.io/pypi/v/iamer.svg?label=version)](https://pypi.python.org/pypi/iamer/)\n\nIAMer dump and load your AWS IAM configuration into text files.\n\nOnce dumped, you can version the resulting `json` and `ini` files to keep track\nof changes, and even ask your team mates to do [Pull Requests](https://help.github.com/articles/using-pull-requests)\nwhen they want access to something.\n\nIAMer is idempotent. You can run it as many times as you want, the resulting\nfiles will always be the same. This is useful to make sure your files are up to\ndate with what you have in IAM.\n\n## To Be Implemented\n\nOnce the text files have been modified, you can load the changes into IAM with\none command.\n\n## Quick Start\n\n```bash\n# Dump your current IAM database\n$ iamer dump\nDumping users...\nDumping groups...\nDumping policies...\n\n# Save it\n$ git commit\n$ git push\n```\n\n## Install\n\n```bash\npip install iamer\n```\n\n## Configuration\n\nIAMer uses [boto](https://github.com/boto/boto) so you will need the\nfollowing to run:\n\n```bash\nexport AWS_ACCESS_KEY_ID=\"1234567890\"\nexport AWS_SECRET_ACCESS_KEY=\"bb7075bc63f93d21fb9b8f45c3fa5ad0\"\n```\n\nSee the [boto documention](http://docs.pythonboto.org/en/latest/boto_config_tut.html)\nfor other ways to configure it.\n\n## Usage\n\nThere are 2 modes of operation, `dump` and `load`.\n\n### Dump your IAM configuration locally\n\n```bash\n$ iamer dump\nDumping users...\nDumping groups...\nDumping policies...\n```\n\nYou will get 3 things:\n\n 1. `users.ini`\n 1. `groups.ini`\n 1. `policies/*.json`\n\n#### 1. `users.ini`\n\nA `users.ini` file with the list of users defined in IAM, and the groups and\npolicies attached to each.\n\n```ini\n# This user has no group or policy\n[bob]\n\n# joe is part of the useless-group group\n[joe]\ngroups = useless-group\n\n# superadmin has multiple groups and policies attached to him\n[superadmin]\ngroups = ec2-rw,\n         ec2-r53-r\npolicies = dynamodb-dev-201301121713,\n           dynamodb-live-201301121713\n```\n\n#### 2. `groups.ini`\n\nA `groups.ini` file with the list of groups defined in IAM, and the policies\nattached to each.\n\n```ini\n# A group with no policy\n[useless-group]\n\n# The ec2-rw group has the ec2-read-write policy attached to it\n[ec2-rw]\npolicies = ec2-read-write\n\n# This group has 2 policies attached\n[ec2-r53-r]\npolicies = ec2-read-only,\n           r53-read-only\n```\n\n#### 3. `policies/*.json`\n\nAnd in the `policies/` folder, you will find all the policies referenced in the\n`users.ini` and `groups.ini` files as `json` files.\n\nFor example, the `policies/ec2-read-write.json` will contain:\n\n```json\n{\n  \"Statement\": [\n    {\n      \"Action\": \"ec2:*\",\n      \"Effect\": \"Allow\",\n      \"Resource\": \"*\"\n    }\n  ]\n}\n```\n\n### Update your IAM config based on your local files\n\nTO BE IMPLEMENTED\n\n## See Also\n\n[ec2-security-groups-dumper](https://github.com/percolate/ec2-security-groups-dumper)\nto dump your EC2 Security Groups as CSV and JSON text files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercolate%2Fiamer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpercolate%2Fiamer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpercolate%2Fiamer/lists"}