AWS CLI Reference

Installation & Configuration

# Install AWS CLI v2 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip && sudo ./aws/install # Configure default profile aws configure # AWS Access Key ID: AKIAIOSFODNN7EXAMPLE # AWS Secret Access Key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY # Default region name: us-east-1 # Default output format: json # Check current identity aws sts get-caller-identity

Named Profiles

# Create a named profile aws configure --profile prod # Use a named profile aws s3 ls --profile prod # Set profile via environment variable export AWS_PROFILE=prod # ~/.aws/credentials [default] aws_access_key_id = AKIA... aws_secret_access_key = ... [prod] aws_access_key_id = AKIA... aws_secret_access_key = ... # ~/.aws/config [profile prod] region = us-west-2 output = yaml

S3 Commands

# List buckets / objects aws s3 ls aws s3 ls s3://my-bucket/prefix/ # Copy and sync aws s3 cp file.txt s3://my-bucket/ aws s3 cp s3://my-bucket/file.txt ./ aws s3 sync ./local-dir s3://my-bucket/remote-dir --delete # Remove aws s3 rm s3://my-bucket/file.txt aws s3 rm s3://my-bucket/ --recursive # Make / remove bucket aws s3 mb s3://new-bucket --region us-east-1 aws s3 rb s3://empty-bucket # Presigned URL (1 hour) aws s3 presign s3://my-bucket/secret.pdf --expires-in 3600

EC2 Commands

# List instances aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name,PublicIpAddress]' --output table # Start / stop / terminate aws ec2 start-instances --instance-ids i-1234567890abcdef0 aws ec2 stop-instances --instance-ids i-1234567890abcdef0 aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 # Launch instance aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type t3.micro \ --key-name my-key \ --security-group-ids sg-12345678 \ --subnet-id subnet-12345678 \ --count 1 # Describe security groups aws ec2 describe-security-groups --group-ids sg-12345678

IAM Commands

# List users, roles, policies aws iam list-users aws iam list-roles aws iam list-policies --scope Local # Create user and attach policy aws iam create-user --user-name alice aws iam attach-user-policy --user-name alice \ --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess # Create access key aws iam create-access-key --user-name alice # Assume role aws sts assume-role \ --role-arn arn:aws:iam::123456789012:role/MyRole \ --role-session-name my-session

Output Formats & Query

FlagDescriptionExample
--output jsonDefault JSON outputaws ec2 describe-vpcs --output json
--output tableHuman-readable tableaws s3 ls --output table
--output textTab-separated textaws ec2 describe-instances --output text
--output yamlYAML (v2 only)aws sts get-caller-identity --output yaml
--queryJMESPath filter--query 'Buckets[*].Name'
--filterServer-side filter--filters Name=instance-state-name,Values=running