AWS CLI Documentation (Linux)

Requirements

AWS Account Linux Server/Desktop IAM User or IAM Role Internet Connection Terminal Access

Install AWS CLI

# Download installer curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # Extract unzip awscliv2.zip # Install sudo ./aws/install

Verify Installation

aws --version
aws-cli/2.x.x Python/3.x Linux

Create IAM User

AWS Console IAM Users Create User Attach Permissions: AmazonS3FullAccess AmazonEC2FullAccess Create Access Key Download credentials

Configure AWS CLI

aws configure
AWS Access Key ID [None]: AKIA**************** AWS Secret Access Key [None]: ***************************** Default region name: us-east-1 Default output format: json

Test Configuration

aws sts get-caller-identity

Who Am I?

aws sts get-caller-identity
{ "UserId": "...", "Account": "...", "Arn": "..." }

List AWS Regions

aws ec2 describe-regions

List Buckets

aws s3 ls

Create Bucket

aws s3 mb s3://my-company-bucket

Upload File

aws s3 cp report.pdf s3://my-company-bucket/

Download File

aws s3 cp s3://my-company-bucket/report.pdf .

Sync Folder to S3

aws s3 sync ./website s3://my-company-bucket
# Download entire bucket aws s3 sync s3://my-company-bucket ./backup

Delete Object

aws s3 rm s3://my-company-bucket/report.pdf

List EC2 Instances

aws ec2 describe-instances

Start Instance

aws ec2 start-instances \ --instance-ids i-0123456789abcdef0

Stop Instance

aws ec2 stop-instances \ --instance-ids i-0123456789abcdef0

Reboot Instance

aws ec2 reboot-instances \ --instance-ids i-0123456789abcdef0

Terminate Instance

aws ec2 terminate-instances \ --instance-ids i-0123456789abcdef0

Connect EC2 Using IAM Role (Recommended)

# Create IAM Role IAM Roles Create Role Trusted Entity: AWS Service Use Case: EC2 Attach Policies: AmazonS3FullAccess AmazonEC2ReadOnlyAccess
# Attach role to instance EC2 Instances Actions Security Modify IAM Role
# No access keys required aws s3 ls aws ec2 describe-instances

Verify EC2 IAM Role

aws sts get-caller-identity
The ARN should show: assumed-role/MyEC2Role/instance-id

Useful Commands

aws configure list aws sts get-caller-identity aws s3 ls aws ec2 describe-instances aws ec2 describe-security-groups aws ec2 describe-volumes aws ec2 describe-key-pairs

Common Errors

Unable to locate credentials Cause: AWS CLI not configured Fix: aws configure
AccessDenied Cause: Missing IAM permissions Fix: Attach correct IAM policy
ExpiredToken Cause: Temporary credentials expired Fix: Re-login or refresh role credentials
InvalidAccessKeyId Cause: Wrong Access Key Fix: Recreate key and run: aws configure

Best Practices

✓ Use IAM Roles on EC2 ✓ Avoid hardcoding Access Keys ✓ Use least privilege permissions ✓ Enable MFA ✓ Rotate credentials regularly ✓ Use S3 versioning for backups ✓ Restrict public bucket access