Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
spillwavesolutions avatar

Mastering Aws Cli

  • 19 installs
  • 8 repo stars
  • Updated December 29, 2025
  • spillwavesolutions/mastering-aws-cli

Helps with ai & agent building tasks during AI-assisted development.

About

mastering-aws-cli is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • mastering-aws-cli
  • AI & Agent Building
  • AI-coding skill

Mastering Aws Cli by the numbers

  • 19 all-time installs (skills.sh)
  • Ranked #10,571 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Jul 27, 2026 (Skillselion catalog sync)
npx skills add https://github.com/spillwavesolutions/mastering-aws-cli --skill mastering-aws-cli

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19
repo stars8
Last updatedDecember 29, 2025
Repositoryspillwavesolutions/mastering-aws-cli

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

AWS CLI v2 Quick Reference

A unified tool to manage AWS services from the terminal. This guide focuses on CLI v2 features, practical examples, and advanced patterns for experienced developers.

Quick Start

# Verify installation and version
aws --version

# Interactive configuration
aws configure                    # Access keys + region + output format
aws configure sso               # IAM Identity Center (SSO) - recommended

# Verify identity
aws sts get-caller-identity     # Shows Account, UserId, ARN

# Enable auto-prompt for command discovery
aws dynamodb --cli-auto-prompt

Power User Tips

# See all waiter commands for a service
aws ec2 wait help

# Generate command skeleton (fill in the blanks)
aws lambda create-function --generate-cli-skeleton > create-fn.json

# Create CLI alias for common commands
aws configure set cli_alias.whoami "sts get-caller-identity"
aws whoami  # Now works!

# Disable pager for scripting
export AWS_PAGER=""

See Advanced Patterns for JMESPath mastery and automation tricks.

Global Options

FlagDescription
--profile NAMEUse named profile from ~/.aws/credentials
--region REGIONOverride default region (e.g., us-east-1)
--output FORMATOutput: json (default), text, table, yaml, yaml-stream
--query EXPRFilter output using JMESPath expressions
--no-paginateDisable auto-pagination (first page only)
--dry-runCheck permissions without executing (EC2, etc.)
--debugVerbose HTTP/API debug logging
--cli-auto-promptInteractive parameter completion
--no-cli-pagerDisable output paging

Decision Trees

Compute & Containers

Need compute?
├── Serverless functions ────────────► Lambda (references/lambda.md)
├── Docker containers
│   ├── Managed orchestration ───────► ECS (references/ecs.md)
│   ├── Kubernetes ──────────────────► EKS (references/eks.md)
│   └── Container registry ──────────► ECR (references/ecr.md)
└── Virtual machines ────────────────► EC2 (use aws ec2 commands)

Data & Storage

Need data storage?
├── Object/blob storage ─────────────► S3 (references/s3.md)
├── NoSQL (key-value/document) ──────► DynamoDB (references/dynamodb.md)
├── Relational SQL ──────────────────► Aurora/RDS (references/aurora.md)
├── Data catalog & ETL ──────────────► Glue (references/glue.md)
└── Data warehouse ──────────────────► Redshift (aws redshift commands)

Streaming & Messaging

Need streaming/messaging?
├── Kafka-compatible ────────────────► MSK (references/msk.md)
├── Real-time streams ───────────────► Kinesis (references/kinesis.md)
├── Message queues ──────────────────► SQS (aws sqs commands)
└── Pub/Sub notifications ───────────► SNS (aws sns commands)

Security & Access

Need security/access management?
├── Users, roles, policies ──────────► IAM (references/iam-security.md)
├── Secrets & credentials ───────────► Secrets Manager/SSM (references/private-parameters.md)
├── Private network access ──────────► VPC (references/vpc-networking.md)
└── Secure tunneling ────────────────► SSM/Bastion (references/bastion-tunneling.md)

Reference File Navigation

ReferenceDescriptionKey Triggers
SetupInstallation, configuration, profiles, SSOinstall, configure, sso, profile
IAM & SecurityRoles, policies, STS, MFA, cross-accountiam, role, policy, sts, assume-role
LambdaFunctions, layers, aliases, URLs, eventslambda, serverless, function
ECSClusters, tasks, services, Fargateecs, fargate, task, container
EKSClusters, node groups, kubeconfig, IRSAeks, kubernetes, kubectl, k8s
ECRRepositories, auth, scanning, lifecycleecr, docker, registry, image
S3Buckets, objects, sync, presign, lifecycles3, bucket, upload, sync
DynamoDBTables, items, queries, streams, backupsdynamodb, ddb, nosql
Aurora/RDSClusters, serverless v2, cloning, blue-greenrds, aurora, mysql, postgresql
GlueCatalog, crawlers, ETL jobs, workflowsglue, etl, catalog, crawler
MSKKafka clusters, serverless, configurationmsk, kafka, streaming
KinesisData streams, Firehose, consumerskinesis, stream, firehose
Secrets & ParamsParameter Store, Secrets Manager, rotationssm, secrets, parameter, rotation
VPC & NetworkingVPCs, subnets, security groups, endpointsvpc, subnet, security-group, endpoint
Bastion & TunnelingSSM Session Manager, port forwardingbastion, tunnel, ssm, ssh
GitHub CI/CDOIDC, GitHub Actions, CodeBuildgithub, actions, oidc, cicd
Advanced PatternsJMESPath, waiters, skeletons, aliasesjmespath, query, waiter, alias

Environment Variables

VariablePurposeExample
AWS_ACCESS_KEY_IDAccess key for authenticationAKIAIOSFODNN7EXAMPLE
AWS_SECRET_ACCESS_KEYSecret key for authenticationwJalrXUtnFEMI/...
AWS_SESSION_TOKENSession token (temporary credentials)For STS assume-role
AWS_PROFILENamed profile to useproduction
AWS_REGIONAWS region for requestsus-west-2
AWS_DEFAULT_OUTPUTDefault output formatjson, text, table
AWS_PAGERPager program (empty to disable)""
AWS_CONFIG_FILECustom config file path~/.aws/config
AWS_SHARED_CREDENTIALS_FILECustom credentials file path~/.aws/credentials
AWS_CA_BUNDLECustom CA certificate bundle/path/to/cert.pem
AWS_RETRY_MODERetry modestandard, adaptive

Credential Precedence

The CLI resolves credentials in this order (first match wins):

1. Command-line options (--profile, explicit credentials) 2. Environment variables (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) 3. Web identity token (EKS IRSA, OIDC) 4. SSO credentials (IAM Identity Center) 5. Credentials file (~/.aws/credentials) 6. Config file (~/.aws/config with credential_process) 7. Container credentials (ECS task role) 8. Instance metadata (EC2 instance profile, IMDSv2)

Common Patterns

Profile Switching

# Use specific profile for one command
aws s3 ls --profile production

# Set default profile for session
export AWS_PROFILE=production

# List configured profiles
aws configure list-profiles

Output Filtering with JMESPath

# Get specific fields
aws ec2 describe-instances \
    --query 'Reservations[*].Instances[*].[InstanceId,State.Name]' \
    --output table

# Filter running instances
aws ec2 describe-instances \
    --query 'Reservations[*].Instances[?State.Name==`running`].InstanceId' \
    --output text

Wait for Resource State

# Wait for instance to be running
aws ec2 wait instance-running --instance-ids i-1234567890abcdef0

# Wait for Lambda function update
aws lambda wait function-updated --function-name my-function

Best Practices

CategoryRecommendation
SecurityUse aws configure sso over long-lived access keys
SecurityUse IAM roles for compute (EC2/Lambda/ECS) instead of embedded keys
SecurityEnable MFA for sensitive operations
ScriptingUse --output json or --output text for parsing
ScriptingUse --query to filter data and reduce output
SafetyUse --dry-run before destructive operations
PerformanceUse --page-size to control memory on large lists
RegionsExplicitly set region in scripts to avoid surprises
CostUse lifecycle policies (S3/ECR) for automatic cleanup
DebuggingUse --debug to see raw HTTP requests/responses

Common Errors Quick Reference

ErrorCauseFix
ExpiredTokenSession credentials expiredRun aws sso login or aws sts get-session-token
AccessDeniedMissing IAM permissionsCheck IAM policy; use --debug to see required action
InvalidClientTokenIdInvalid access keyVerify AWS_ACCESS_KEY_ID or run aws configure
UnauthorizedAccessWrong region or accountCheck --region flag and aws sts get-caller-identity
ThrottlingExceptionAPI rate limit exceededAdd retry logic with exponential backoff
NoCredentialProvidersNo credentials foundCheck credential chain; run aws configure list

For detailed troubleshooting, see Setup.

When Not to Use

  • AWS SDK code — For boto3, AWS SDK for JavaScript, etc., use programming documentation
  • CloudFormation/Terraform — This skill covers CLI commands, not IaC templates
  • Console UI steps — CLI-focused; use AWS documentation for console walkthroughs
  • Pricing/billing — Use AWS pricing calculator or Cost Explorer documentation

Quick Command Reference

# Identity & Access
aws sts get-caller-identity
# → {"Account": "123456789012", "UserId": "AIDAEXAMPLE", "Arn": "arn:aws:iam::123456789012:user/dev"}

aws sts assume-role --role-arn arn:aws:iam::123456789012:role/Admin --role-session-name mysession
# → {"Credentials": {"AccessKeyId": "ASIA...", "SecretAccessKey": "...", "SessionToken": "..."}}

# S3
aws s3 ls
# → 2024-01-15 bucket-name-1
# → 2024-02-20 bucket-name-2

aws s3 sync ./local s3://bucket/prefix --delete

# Lambda
aws lambda invoke --function-name fn response.json
# → {"StatusCode": 200, "ExecutedVersion": "$LATEST"}

aws lambda update-function-code --function-name fn --zip-file fileb://code.zip
# → {"FunctionName": "fn", "LastModified": "2024-12-28T...", "State": "Active"}

# ECS
aws ecs list-clusters
# → {"clusterArns": ["arn:aws:ecs:us-east-1:123456789012:cluster/prod"]}

aws ecs update-service --cluster prod --service api --force-new-deployment

# EKS
aws eks update-kubeconfig --name my-cluster
# → Added new context arn:aws:eks:us-east-1:123456789012:cluster/my-cluster

aws eks list-clusters
# → {"clusters": ["my-cluster", "dev-cluster"]}

# Secrets
aws secretsmanager get-secret-value --secret-id prod/api/key --query SecretString --output text
# → sk_live_xxxxxxxxxxxxx

aws ssm get-parameter --name /app/prod/db/host --with-decryption --query Parameter.Value --output text
# → db.example.com

# Debugging
aws ssm start-session --target i-0123456789abcdef0
# → Starting session with SessionId: user-0a1b2c3d4e5f67890

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.