Skip to content

Instantly share code, notes, and snippets.

@wizardcalidad
Forked from davidmoremad/awscli-cheatsheet.md
Created February 2, 2022 09:40
Show Gist options
  • Select an option

  • Save wizardcalidad/27d868e01d770aba6e3b1736eaa86c3f to your computer and use it in GitHub Desktop.

Select an option

Save wizardcalidad/27d868e01d770aba6e3b1736eaa86c3f to your computer and use it in GitHub Desktop.
The AWS CLI Cheatsheet

AWS CLI

Function Command
Install awscli pip3 install awscli --upgrade --user
Configuring awscli aws configure

EC2

  • UTILS - List all instances
  • UTILS - List all instances of a product (Latch)
  • UTILS - List all instances (ID, PublicIp & Name)
  • UTILS - List all stopped instances
  • UTILS - List all stopped instances with ElasticIP
  • UTILS - List all snapshots in the date specified
  • SEC - List all snapshots without encryption in a date
  • SEC - List SecurityGroups with SSH (22) open to Internet

###UTILS - List all instances

aws ec2 describe-instances \

###UTILS - List all instances of a product (Latch)

aws ec2 describe-instances \
 --filter "Name=tag:Name,Values=latch*" \
 --query "Reservations[].Instances[].[InstanceId, PublicIpAddress, Tags[?Key=='Name']|[0].Value]"

###UTILS - List all instances (ID, PublicIp & Name)

aws ec2 describe-instances \
 --query "Reservations[].Instances[].[InstanceId, PublicIpAddress, Tags[?Key=='Name']|[0].Value]"

###UTILS - List all stopped instances

aws ec2 describe-instances \
 --filters Name=instance-state-name,Values=stopped

###UTILS - List all stopped instances with ElasticIP

aws ec2 describe-instances \
 --query "Reservations[*].Instances[*].PublicIpAddress" \
 --filters Name=instance-state-name,Values=stopped

###UTILS - List all snapshots in the date specified

aws ec2 describe-snapshots \
 --filters Name=start-time,Values=2019-01-05*

Security

###SEC - List all snapshots without encryption in a date

aws ec2 describe-snapshots \
--filters Name=encrypted,Values=false Name=start-time,Values=2019-01-05*

###SEC - List SecurityGroups with SSH (22) open to Internet

aws ec2 describe-security-groups \
--filters Name=ip-permission.from-port,Values=22 Name=ip-permission.to-port,Values=22 Name=ip-permission.cidr,Values='0.0.0.0/0'  \
--query 'SecurityGroups[*].{Name:GroupName}' \
--output table

IAM

Utils

Function Command
List all server certificates aws iam list-server-certificates
List all policies aws iam list-policies
List all groups aws iam list-groups
List all policies for a given group aws iam list-attached-group-policies --group-name ec2-Users
Get users for a specified for a given group aws iam get-group --group-name ec2-users
List groups for a given user aws iam list-groups-for-user --user-name aws-admin2

Security

Function Command
Rotate Keys. Created date of an AccessKey aws iam list-access-keys --user-name aws-admin2 --query 'AccessKeyMetadata[?Status==Active].[CreateDate]' --output text
Check if user has MFA enabled if [[ $(aws iam list-mfa-devices --user-name root --output text) ]]; then echo "MFA Enabled"; else echo "MFA Disabled";fi

S3

Utils

Function Command
List all s3 buckets aws s3 ls

Security

Function Command
Check for public READ s3 buckets `aws s3api list-buckets --query 'Buckets[*].[Name]' --output text
Check for public WRITE s3 buckets `aws s3api list-buckets --query 'Buckets[*].[Name]' --output text
Check for public FULL_CONTROL s3 buckets `aws s3api list-buckets --query 'Buckets[*].[Name]' --output text

RDS

Security

Function Command
List Databases without DeletionProtection enabled `aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier]' --output text
List Public Databases aws rds describe-db-instances --query 'DBInstances[?PubliclyAccessible==true].[DBInstanceIdentifier,Endpoint.Address]'`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment