{"id":13508985,"url":"https://github.com/99designs/iamy","last_synced_at":"2025-04-06T01:08:38.120Z","repository":{"id":36276415,"uuid":"40580894","full_name":"99designs/iamy","owner":"99designs","description":"A cli tool for importing and exporting AWS IAM configuration to YAML files","archived":false,"fork":false,"pushed_at":"2023-02-25T02:03:08.000Z","size":2149,"stargazers_count":242,"open_issues_count":19,"forks_count":25,"subscribers_count":64,"default_branch":"master","last_synced_at":"2025-03-29T23:11:30.158Z","etag":null,"topics":["aws","aws-cli","cli","devops","iam","iam-configuration","sync-iam-users","yaml","yaml-files"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/99designs.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":"2015-08-12T04:55:39.000Z","updated_at":"2025-03-08T10:07:00.000Z","dependencies_parsed_at":"2024-01-13T16:20:46.898Z","dependency_job_id":"3cab9ff3-8759-4227-b5dd-7ff771601b4b","html_url":"https://github.com/99designs/iamy","commit_stats":{"total_commits":133,"total_committers":13,"mean_commits":10.23076923076923,"dds":0.3533834586466166,"last_synced_commit":"f1c19eb5e6497d66ffb7f1771016ba2eee83cb8e"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fiamy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fiamy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fiamy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/99designs%2Fiamy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/99designs","download_url":"https://codeload.github.com/99designs/iamy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247419860,"owners_count":20936012,"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":["aws","aws-cli","cli","devops","iam","iam-configuration","sync-iam-users","yaml","yaml-files"],"created_at":"2024-08-01T02:01:01.390Z","updated_at":"2025-04-06T01:08:38.103Z","avatar_url":"https://github.com/99designs.png","language":"Go","readme":"# IAMy\n\nIAMy is a tool for dumping and loading your AWS IAM configuration into YAML files.\n\nThis allows you to use an [Infrastructure as Code](https://en.wikipedia.org/wiki/Infrastructure_as_Code) model to manage your IAM configuration. For example, you might use a github repo with a pull request model for changes to IAM config.\n\n\n## How it works\n\nIAMy has two subcommands.\n\n`pull` will sync IAM users, groups and policies from AWS to YAML files\n\n`push` will sync IAM users, groups and policies from YAML files to AWS\n\nFor the `push` command, IAMy will output an execution plan as a series of [`aws` cli](https://aws.amazon.com/cli/) commands which can be optionally executed. This turns out to be a very direct and understandable way to display the changes to be made, and means you can pick and choose exactly what commands get actioned.\n\n\n## Getting started\n\nYou can install IAMy on macOS with `brew install iamy`, or with the go toolchain `go get -u github.com/99designs/iamy`.\n\nBecause IAMy uses the [aws cli tool](https://aws.amazon.com/cli/), you'll want to install it first.\n\nFor configuration, IAMy uses the same [AWS environment variables](http://docs.aws.amazon.com/cli/latest/userguide/cli-environment.html) as the aws cli. You might find [aws-vault](https://github.com/99designs/aws-vault) an excellent complementary tool for managing AWS credentials.\n\n\n## Example Usage\n\n```bash\n$ iamy pull\n\n$ find .\n./myaccount-123456789/iam/user/joe.yml\n\n$ mkdir -p myaccount-123456789/iam/user/foo\n\n$ touch myaccount-123456789/iam/user/foo/bar.baz\n\n$ cat \u003c\u003c EOD \u003e myaccount-123456789/iam/user/billy.blogs\nPolicies:\n- arn:aws:iam::aws:policy/ReadOnly\nEOD\n\n$ iamy push\nCommands to push changes to AWS:\n        aws iam create-user --path /foo --user-name bar.baz\n        aws iam create-user --user-name billy.blogs\n        aws iam attach-user-policy --user-name billy.blogs --policy-arn arn:aws:iam::aws:policy/ReadOnly\n\nExec all aws commands? (y/N) y\n\n\u003e aws iam create-user --path /foo --user-name bar.baz\n\u003e aws iam create-user --user-name billy.blogs\n\u003e aws iam attach-user-policy --user-name billy.blogs --policy-arn arn:aws:iam::aws:policy/ReadOnly\n```\n\n## Accurate cloudformation matching\n\nBy default, iamy will use a simple heuristic (does it end with an ID, eg -ABCDEF1234) to determine if a given resource is managed by cloudformation. \n\nThis behaviour is good enough for some cases, but if you want slower but more accurate matching pass `--accurate-cfn`\nto enumerate all cloudformation stacks and resources to determine exactly which resources are managed. \n\n## Inspiration and similar tools\n- https://github.com/percolate/iamer\n- https://github.com/hashicorp/terraform\n","funding_links":[],"categories":["Go","cli"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F99designs%2Fiamy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F99designs%2Fiamy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F99designs%2Fiamy/lists"}