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