{"id":13468397,"url":"https://github.com/dannysteenman/aws-toolbox","last_synced_at":"2025-04-13T13:59:57.738Z","repository":{"id":42614361,"uuid":"347341547","full_name":"dannysteenman/aws-toolbox","owner":"dannysteenman","description":"This repository contains a collection of awesome tools and scripts for Developers and Engineers seeking to automate routine tasks on AWS Cloud.","archived":false,"fork":false,"pushed_at":"2025-02-01T13:06:14.000Z","size":1168,"stargazers_count":1544,"open_issues_count":1,"forks_count":346,"subscribers_count":56,"default_branch":"main","last_synced_at":"2025-04-13T13:59:54.504Z","etag":null,"topics":["amazon-web-services","aws","aws-cli","aws-lambda","bash","boto3","cdk","command-line-tool","devops","devops-tools","python","scripts-collection"],"latest_commit_sha":null,"homepage":"https://towardsthecloud.com/aws-toolbox-cloud-engineers","language":"Python","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/dannysteenman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","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,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"dannysteenman"}},"created_at":"2021-03-13T10:37:39.000Z","updated_at":"2025-04-10T17:24:05.000Z","dependencies_parsed_at":"2023-02-09T04:15:36.545Z","dependency_job_id":"f9cd3cfe-ac51-44e3-8564-1ea44dd32d66","html_url":"https://github.com/dannysteenman/aws-toolbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannysteenman%2Faws-toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannysteenman%2Faws-toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannysteenman%2Faws-toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dannysteenman%2Faws-toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dannysteenman","download_url":"https://codeload.github.com/dannysteenman/aws-toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248724585,"owners_count":21151560,"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":["amazon-web-services","aws","aws-cli","aws-lambda","bash","boto3","cdk","command-line-tool","devops","devops-tools","python","scripts-collection"],"created_at":"2024-07-31T15:01:10.086Z","updated_at":"2025-04-13T13:59:57.713Z","avatar_url":"https://github.com/dannysteenman.png","language":"Python","readme":"# [![AWS Toolbox header](./icons/github-header-image.png)](https://towardsthecloud.com)\n\n# AWS Toolbox 🧰\n\nScripts and tools for AWS cloud automation.\n\n## Overview\n\nThis repository contains scripts for AWS Developers, DevOps Engineers, and Cloud Architects. Tools focus on task automation and infrastructure management.\n\n## Usage\n\nNavigate to the relevant AWS service section. Click on the script name in the table below to open the content and usage instructions.\n\n\n\u003e [!TIP]\n\u003e Struggling with AWS complexity or stuck on-premise? Let's transform your cloud journey.\n\u003e\n\u003e [Schedule a call with me](https://towardsthecloud.com/contact) to find out how I can enhance your existing AWS setup or guide your journey from on-premise to the Cloud.\n\u003e\n\u003e \u003cdetails\u003e\u003csummary\u003e☁️ \u003cstrong\u003eDiscover more about my one-person business: Towards the Cloud\u003c/strong\u003e\u003c/summary\u003e\n\u003e\n\u003e \u003cbr/\u003e\n\u003e\n\u003e Hi, I'm Danny – AWS expert and founder of [Towards the Cloud](https://towardsthecloud.com). With over a decade of hands-on experience, I specialized myself in deploying well-architected, highly scalable and cost-effective AWS Solutions using Infrastructure as Code (IaC).\n\u003e\n\u003e #### When you work with me, you're getting a package deal of expertise and personalized service:\n\u003e\n\u003e - **AWS CDK Proficiency**: I bring deep AWS CDK knowledge to the table, ensuring your infrastructure is not just maintainable and scalable, but also fully automated.\n\u003e - **AWS Certified**: [Equipped with 7 AWS Certifications](https://www.credly.com/users/dannysteenman/badges), including DevOps Engineer \u0026 Solutions Architect Professional, to ensure best practices across diverse cloud scenarios.\n\u003e - **Direct Access**: You work with me, not a team of managers. Expect quick decisions and high-quality work.\n\u003e - **Tailored Solutions**: Understanding that no two businesses are alike, I Custom-fit cloud infrastructure for your unique needs.\n\u003e - **Cost-Effective**: I'll optimize your AWS spending without cutting corners on performance or security.\n\u003e - **Seamless CI/CD**: I'll set up smooth CI/CD processes using GitHub Actions, making changes a breeze through Pull Requests.\n\u003e\n\u003e *My mission is simple: I'll free you from infrastructure headaches so you can focus on what truly matters – your core business.*\n\u003e\n\u003e Ready to unlock the full potential of AWS Cloud?\n\u003e\n\u003e \u003ca href=\"https://towardsthecloud.com/contact\"\u003e\u003cimg alt=\"Schedule your call\" src=\"https://img.shields.io/badge/schedule%20your%20call-success.svg?style=for-the-badge\"/\u003e\u003c/a\u003e\n\u003e \u003c/details\u003e\n\n## AWS Service Management Scripts\n\nThis collection includes Python and Bash scripts for managing various AWS services. The scripts are organized by service for easy navigation.\n\n| Category       | Script Name                                                                                       | Description                                                        |\n| -------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |\n| AppStream      | [appstream_delete_image.py](appstream/appstream_delete_image.py)                                  | Unshares AppStream image, then deletes it                          |\n| CloudFormation | [cfn_delete_stackset.py](cloudformation/cfn_delete_stackset.py)                                   | Deletes stackset and associated instances                          |\n| CloudWatch     | [cw_count_log_groups.py](cloudwatch/cw_count_log_groups.py)                                       | Counts the total number of CloudWatch log groups in an AWS account |\n| CloudWatch     | [cw_delete_log_groups.py](cloudwatch/cw_delete_log_groups.py)                                     | Deletes log groups based on age                                    |\n| CloudWatch     | [cw_fetch_log_groups_with_creation_date.py](cloudwatch/cw_fetch_log_groups_with_creation_date.py) | Fetches log groups with creation date                              |\n| CloudWatch     | [cw_set_retention_policy.py](cloudwatch/cw_set_retention_policy.py)                               | Sets retention policy for log groups                               |\n| CodePipeline   | [cp_slack_notifications.py](codepipeline/cp_slack_notifications.py)                               | Enables notifications on Slack                                     |\n| EC2            | [ec2_delete_unattached_volumes.py](ec2/ec2_delete_unattached_volumes.py)                          | Deletes unattached EBS volumes                                     |\n| EC2            | [ec2_delete_orphaned_snapshots.py](ec2/ec2_delete_orphaned_snapshots.py)                          | Deletes snapshots that are not associated with any volumes         |\n| EC2            | [ec2_delete_ssh_access_security_groups.py](ec2/ec2_delete_ssh_access_security_groups.py)          | Deletes SSH (port 22) inbound rules from all security groups       |\n| EC2            | [ec2_delete_unused_amis.py](ec2/ec2_delete_unused_amis.py)                                        | Deletes unused AMIs (Amazon Machine Images) in an AWS account      |\n| EC2            | [ec2_delete_unused_eips.py](ec2/ec2_delete_unused_eips.py)                                        | Deletes unused Elastic IPs                                         |\n| EC2            | [ec2_delete_unused_keypairs_all_regions.py](ec2/ec2_delete_unused_keypairs_all_regions.py)        | Deletes unused EC2 keypairs in all regions                         |\n| EC2            | [ec2_delete_unused_keypairs_single_region.py](ec2/ec2_delete_unused_keypairs_single_region.py)    | Deletes unused EC2 keypairs in a single region                     |\n| EC2            | [ec2_delete_tagged_security_groups.py](ec2/ec2_delete_tagged_security_groups.py)                  | Deletes tagged security groups                                     |\n| EC2            | [ec2_find_unattached_volumes.py](ec2/ec2_find_unattached_volumes.py)                              | Finds unattached EBS volumes                                       |\n| EC2            | [ec2_asg_ssh.sh](ec2/ec2_asg_ssh.sh)                                                              | SSH wrapper for Auto Scaling group instances                       |\n| EC2            | [ec2_list_available_eips.sh](ec2/ec2_list_available_eips.sh)                                      | Lists unassociated Elastic IPs                                     |\n| EC2            | [ec2_request_spot_instances.sh](ec2/ec2_request_spot_instances.sh)                                | Requests spot instances                                            |\n| EC2            | [ec2_resize_volume.sh](ec2/ec2_resize_volume.sh)                                                  | Resizes EBS volume                                                 |\n| ECS            | [ecs_delete_inactive_task_definitions.py](ecs/ecs_delete_inactive_task_definitions.py)            | Deletes inactive ECS task definitions                              |\n| ECS            | [ecs_publish_ecr_image.sh](ecs/ecs_publish_ecr_image.sh)                                          | Publishes Docker image to ECR                                      |\n| EFS            | [efs_delete_tagged_filesystems.py](efs/efs_delete_tagged_filesystems.py)                          | Deletes tagged EFS and mount targets                               |\n| IAM            | [iam_delete_user.py](iam/iam_delete_user.py)                                                      | Deletes IAM users                                                  |\n| IAM            | [iam_identity_center_create_users.py](iam/iam_identity_center_create_users.py)                    | Create IAM Identity Center (SSO) users                             |\n| IAM            | [iam_rotate_access_keys.py](iam/iam_rotate_access_keys.py)                                        | Rotates IAM user keys                                              |\n| IAM            | [iam_assume_role.sh](iam/iam_assume_role.sh)                                                      | Assumes IAM role                                                   |\n| Organizations  | [org_assign_sso_access_by_ou.py](organizations/org_assign_sso_access_by_ou.py)                    | Assigns SSO access for accounts in an OU                           |\n| Organizations  | [org_import_users_to_sso.py](organizations/org_import_users_to_sso.py)                            | Imports users/groups to AWS SSO                                    |\n| Organizations  | [org_list_accounts_by_ou.py](organizations/org_list_accounts_by_ou.py)                            | Lists accounts in an OU                                            |\n| Organizations  | [org_list_sso_assignments.py](organizations/org_list_sso_assignments.py)                          | Lists SSO assignments for accounts                                 |\n| Organizations  | [org_remove_sso_access_by_ou.py](organizations/org_remove_sso_access_by_ou.py)                    | Removes SSO access for accounts in an OU                           |\n| S3             | [s3_create_tar.py](s3/s3_create_tar.py)                                                           | Creates tar files                                                  |\n| S3             | [s3_delete_empty_buckets.py](s3/s3_delete_empty_buckets.py)                                       | Deletes empty S3 buckets                                           |\n| S3             | [s3_list_old_files.py](s3/s3_list_old_files.py)                                                   | Lists old files in S3                                              |\n| S3             | [s3_search_bucket_and_delete.py](s3/s3_search_bucket_and_delete.py)                               | Deletes S3 bucket and its contents                                 |\n| S3             | [s3_search_bucket_and_download.py](s3/s3_search_bucket_and_download.py)                           | Finds S3 bucket and download all its content                       |\n| S3             | [s3_search_file.py](s3/s3_search_file.py)                                                         | Searches for files in S3 bucket                                    |\n| S3             | [s3_search_key.py](s3/s3_search_key.py)                                                           | Searches for a key in S3 bucket                                    |\n| S3             | [s3_search_multiple_keys.py](s3/s3_search_multiple_keys.py)                                       | Searches for multiple keys in S3 bucket                            |\n| S3             | [s3_search_subdirectory.py](s3/s3_search_subdirectory.py)                                         | Searches subdirectories in S3                                      |\n| SSM            | [ssm_delete_parameters.sh](ssm/ssm_delete_parameters.sh)                                          | Deletes SSM parameters                                             |\n| SSM            | [ssm_import_parameters.sh](ssm/ssm_import_parameters.sh)                                          | Imports SSM parameters                                             |\n| General        | [delete_unused_security_groups.py](general/delete_unused_security_groups.py)                      | Deletes unused security groups                                     |\n| General        | [aws_cli_aliases.sh](cli/aws_cli_aliases.sh)                                                      | AWS CLI command aliases                                            |\n| General        | [tag_secrets_manager_secrets.py](general/tag_secrets_manager_secrets.py)                          | Tags Secrets Manager secrets                                       |\n| General        | [set-alternate-contact.py](general/set-alternate-contact.py)                                      | Sets alternate contacts for all accounts in an organization        |\n| General        | [multi_account_command_executor.py](general/multi_account_command_executor.py)                    | Runs commands across multiple AWS accounts                         |\n\n\n---\n\n## AWS Tools and Utilities\n\nThis section lists tools that enhance AWS usage across console, CLI, and APIs.\n\n### EC2\n- [AutoSpotting](https://github.com/AutoSpotting/AutoSpotting) - Open-source spot market automation tool for easy adoption at scale.\n\n### ECS\n- [Awesome ECS](https://github.com/nathanpeck/awesome-ecs) - Curated list of ECS guides and resources.\n- [AWS Copilot CLI](https://github.com/aws/copilot-cli) - CLI for building and operating containerized applications on ECS and Fargate.\n- [ECS Compose-X](https://github.com/compose-x/ecs_composex) - Tool to generate CFN templates from docker-compose files with added AWS resource definitions.\n\n### IAM\n- [AWS IAM Actions](https://www.awsiamactions.io) - Comprehensive IAM action listing and policy generator.\n- [IAM Floyd](https://github.com/udondan/iam-floyd) - Fluent interface for IAM policy statement generation.\n- [IAM Zero](https://iamzero.dev) - Automated least-privilege policy suggestion tool.\n\n### Infrastructure as Code\n- [AWS CDK Starterkit](https://github.com/dannysteenman/aws-cdk-starterkit) - Rapid AWS CDK app deployment via GitHub actions.\n- [AWS CloudFormation Starterkit](https://github.com/dannysteenman/aws-cloudformation-starterkit) - Rapid AWS CloudFormation stack deployment via GitHub actions.\n- [Awesome CDK](https://github.com/kolomied/awesome-cdk) - Curated list of AWS CDK resources.\n- [Awesome CloudFormation](https://github.com/aws-cloudformation/awesome-cloudformation) - Curated CloudFormation resources.\n- [Awesome Terraform](https://github.com/shuaibiyy/awesome-terraform) - Curated Terraform resources.\n- [Former2](https://github.com/iann0036/former2) - Template generator from existing AWS resources.\n- [Open CDK Guide](https://github.com/kevinslin/open-cdk) - Opinionated AWS CDK best practices guide.\n- [VSCode IAM Actions Snippets](https://github.com/dannysteenman/vscode-iam-actions-snippets) - Adds autocompletion in VS Code for AWS IAM policy actions.\n- [VSCode IAM Service Principal Snippets](https://github.com/dannysteenman/vscode-iam-service-principal-snippets) - Adds autocompletion in VS Code for AWS service principals.\n- [VSCode CDK Snippets](https://marketplace.visualstudio.com/items?itemName=dannysteenman.cdk-snippets) - VS Code extension for CDK construct snippets.\n- [VSCode CloudFormation Snippets](https://marketplace.visualstudio.com/items?itemName=dannysteenman.cloudformation-yaml-snippets) - VS Code extension for CloudFormation resource snippets.\n- [VSCode SAM Snippets](https://marketplace.visualstudio.com/items?itemName=dannysteenman.sam-snippets) - VS Code extension for CloudFormation resource snippets.\n\n### Lambda\n- [AWS Lambda Power Tuning](https://github.com/alexcasalboni/aws-lambda-power-tuning) - Step Functions-based Lambda optimization tool.\n- [Serverless Cost Calculator Comparison](http://serverlesscalc.com) - Cost comparison tool for serverless functions across cloud providers.\n- [Serverless Cost Calculator](https://cost-calculator.bref.sh) - AWS Lambda cost estimation tool.\n\n### S3\n- [s3s3mirror](https://github.com/cobbzilla/s3s3mirror) - High-performance S3 bucket mirroring utility.\n\n### Security\n- [Leapp](https://github.com/Noovolari/leapp) - Cross-platform AWS programmatic access manager.\n- [Prowler](https://github.com/prowler-cloud/prowler) - Open-source security assessment and auditing tool.\n- [AWS Security Tools](https://github.com/0xVariable/AWS-Security-Tools) - Curated list of AWS security tools.\n\n### SSM\n- [aws-gate](https://github.com/xen0l/aws-gate) - Enhanced AWS SSM Session Manager CLI.\n- [aws-ssm-ec2-proxy-command](https://github.com/qoomon/aws-ssm-ec2-proxy-command) - SSH to EC2 via SSM without open ports.\n- [ssm-supercharged](https://github.com/HQarroum/ssm-supercharged) - SSM integration with OpenSSH, EC2 Instance Connect, and sshuttle.\n\n### Miscellaneous\n- [Cloud Custodian](https://github.com/cloud-custodian/cloud-custodian) - Cloud governance platform for AWS.\n- [Service Screener](https://github.com/aws-samples/service-screener-v2) - Tool to evaluate your AWS service configurations based on AWS and community best practices.\n- [Steampipe](https://github.com/turbot/steampipe) - SQL-like querying for AWS resources.\n- [AWS Nuke](https://github.com/rebuy-de/aws-nuke) - AWS account resource removal tool.\n\n---\n\n## Contributors\nThis project exists thanks to all the people who contribute.\n\n[![Code Contributors](https://contrib.rocks/image?repo=dannysteenman/aws-toolbox)](https://github.com/dannysteenman/aws-toolbox/graphs/contributors)\n\nSee how you can [contribute to this repository.](https://github.com/dannysteenman/aws-toolbox/blob/main/.github/CONTRIBUTING.md)\n\n## Author\n[Danny Steenman](https://towardsthecloud.com/about)\n\n[![](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://www.linkedin.com/in/dannysteenman)\n[![](https://img.shields.io/badge/X-000000?style=for-the-badge\u0026logo=x\u0026logoColor=white)](https://twitter.com/dannysteenman)\n[![](https://img.shields.io/badge/GitHub-2b3137?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/dannysteenman)\n","funding_links":["https://github.com/sponsors/dannysteenman"],"categories":["Python","bash","Cloud"],"sub_categories":["AWS"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannysteenman%2Faws-toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannysteenman%2Faws-toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannysteenman%2Faws-toolbox/lists"}