It happened faster than I could blink. One wrong flag. One misplaced parameter. No confirmation prompt. The terminal didn’t ask if I was sure. The resources were gone before I could think about stopping it. If you’ve used the AWS CLI long enough, you know this is not a rare story. The AWS CLI is powerful, but power without guardrails is dangerous.
The CLI gives you raw, direct access to services like S3, EC2, DynamoDB, IAM. With a single command, you can destroy data, halt infrastructure, or break authentication flows. Even the most experienced engineers have made critical mistakes here. AWS documentation mentions --dry-run for some actions. That’s good, but not enough. Many destructive commands skip this flag entirely. Some resource deletions don’t support confirm prompts. The CLI assumes you know exactly what you are doing. That assumption is often wrong.
Dangerous actions to watch for include:
aws s3 rmwith recursive and force flagsaws ec2 terminate-instanceswithout a filteraws cloudformation delete-stackon the wrong stackaws iam delete-useroraws iam delete-rolethat services depend on
Mistakes here aren’t about syntax. They are about context. Production accounts often share config with staging or dev in the same CLI profile. One wrong --profile switch and you’re operating on live infrastructure. Combine that with muscle memory from daily typing and you have a recipe for irrecoverable loss.