AWS CLI Cheat Sheet — Quick Reference
Handy commands from login/config to advanced usage. Click Copy on any block to grab commands instantly.
🔑 Login & Configuration
aws configure # Configure with Access Key & Secret
aws configure sso # Configure with Identity Center (SSO)
aws configure list # Show current config
aws configure list-profiles # Show all profiles
aws sts get-caller-identity # Show who you are logged in as
📦 S3 (Storage)
aws s3 ls # List all buckets
aws s3 ls s3://my-bucket # List files in bucket
aws s3 mb s3://my-new-bucket # Create bucket
aws s3 cp file.txt s3://my-bucket/ # Upload file
aws s3 cp s3://my-bucket/file.txt . # Download file
aws s3 sync ./localdir s3://my-bucket/ # Sync local dir → S3
💻 EC2 (Compute)
aws ec2 describe-instances # List all EC2 instances
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
aws ec2 create-key-pair --key-name MyKey > MyKey.pem
👤 IAM (Users & Access)
aws iam list-users
aws iam create-user --user-name testuser
aws iam attach-user-policy --user-name testuser \
--policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
📊 CloudWatch (Logs & Metrics)
aws logs describe-log-groups
aws logs describe-log-streams --log-group-name /aws/lambda/my-function
aws logs get-log-events \
--log-group-name /aws/lambda/my-function \
--log-stream-name <stream-name>
⚡ Lambda
aws lambda list-functions
aws lambda invoke --function-name myLambdaFunction output.json
🗄️ DynamoDB
aws dynamodb list-tables
aws dynamodb scan --table-name MyTable
🔥 EMR (Big Data)
aws emr list-clusters
aws emr describe-cluster --cluster-id j-1234567890ABCDEF
aws emr add-steps --cluster-id j-1234567890ABCDEF \
--steps Type=Spark,Name="SparkJob",ActionOnFailure=CONTINUE,Args=[--class,org.apache.spark.examples.SparkPi,s3://my-bucket/spark-examples.jar,10]
⚙️ Advanced CLI Tricks
# Use profiles
aws s3 ls --profile dev
aws s3 ls --profile prod
# Query with JMESPath
aws ec2 describe-instances \
--query "Reservations[*].Instances[*].InstanceId" --output text
# Change output format
aws ec2 describe-instances --output table
aws ec2 describe-instances --output text
aws ec2 describe-instances --output json
# Stop all EC2s in a region
for id in $(aws ec2 describe-instances \
--query "Reservations[*].Instances[*].InstanceId" --output text); do
aws ec2 stop-instances --instance-ids $id
done
Best Practices: Prefer SSO/roles over static keys. Use profiles for multiple accounts. Rotate keys when used. Consider tools like
aws-vault
for secure storage.