aws-scripts provides a unified interface to streamline AWS operations:
- Automation: Efficiently handle bulk tasks and resource management.
- Security Audits: Perform automated security checks and compliance enforcement.
- Backups: Simplified snapshot and restoration workflows across services.
- Migrations: Automated transitions between resource configurations (e.g., GP2 to GP3).
- Python 3.10+
The project includes an install.sh script to handle dependencies automatically using poetry and pipx.
./install.shThe CLI follows a standard syntax for all modules:
aws-scripts <module> <command> [OPTIONS]Global configurations (such as AWS Profile and Region) are handled automatically by the AWSHelper utility. You can specify these via common flags:
aws-scripts s3 versioning --profile my-profile --region eu-central-1| Module | Primary Capabilities |
|---|---|
| S3 | Versioning, EventBridge, Inventory, PITR, Cross-region replication, Batch Ops, Multipart copy. |
| EC2 | Snapshot & volume cleanup, IMDSv2 bulk updates, GP2 to GP3 migration. |
| DynamoDB | CSV data imports, table-to-table data copying. |
| DocumentDB | Bulk user creation, restoration from S3 backups. |
| CloudFront | Distribution origin updates, TLS enforcement, maintenance mode, OAI security checks. |
| IAM | Automated offboarding (keys, console, MFA, CodeCommit). |
| OpenSearch | Snapshot lifecycle management (register S3 repo, trigger, restore, policies). |
| Route53 | Export DNS zones to standard files. |
| SSM | Bulk Parameter Store searching by prefix and value. |
| WAF | Bulk WebACL assignments for CloudFront. |
| Backup | Execute restore jobs from CSV lists. |
| ECR | Force image replication across registries. |
| Security | Manage and remove SSO user assignments. |
| Terraform (tfi) | Automated imports (SG rules, Identity Store users/groups). |
- Create a folder under the root directory.
- Implement
main.pyusing theTyperlibrary to define your CLI commands. - Register the module in
aws_scripts/__init__.pyto integrate it into the main CLI entry point.
- Luigi Pellecchia: @luigi.pellecchia
- Alessandro Falcone: @alessandro.falcone
- Stefano Marsiglia: @stefano.marseglia
- Claudio Perrotta: @claudio.perrotta
- Gabriele Previtera: @jiin995
- Pino Villano: @pino.villano
