aws-cli — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited aws-cli (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Run AWS CLI commands safely and efficiently. Default to read-only operations. Always confirm identity, region, and blast radius before mutating anything.
Before any AWS CLI command, confirm three things:
aws sts get-caller-identity (account, principal)--region <r> or AWS_REGION env. Do not rely on default profile region for cross-account work.AWS_PROFILE=<name> if multiple. Show user which profile is active.If aws sts get-caller-identity fails: stop. Do not retry blindly. Diagnose: missing creds, expired SSO session, wrong profile. See references/auth.md.
The CLI returns large JSON. Always narrow output with --query (JMESPath) and --output.
# bad — dumps everything
aws ec2 describe-instances
# good — only what you need
aws ec2 describe-instances \
--query 'Reservations[].Instances[].{Id:InstanceId,State:State.Name,Type:InstanceType,Name:Tags[?Key==`Name`]|[0].Value}' \
--output tableCommon patterns: see references/jmespath.md.
Prefer --output table for human review, --output json for piping to jq, --output text for shell loops.
Default CLI auto-paginates and may hang on huge result sets. For exploration:
--max-items 50 to cap--no-paginate for raw single page (then use NextToken if needed)--page-size 100 to tune API call sizeCLI v2 pipes long output through less by default. In a non-interactive shell (CI, agent runs, bash -c) this can hang. Always disable it:
export AWS_PAGER="" # for the session
aws --no-cli-pager s3 ls # for one commandSet AWS_PAGER="" at the top of any script that calls aws.
Don't poll with sleep loops. The CLI has built-in waiters that poll for you:
aws ec2 wait instance-running --instance-ids i-0abc...
aws ec2 wait instance-terminated --instance-ids i-0abc...
aws lambda wait function-updated --function-name F
aws s3api wait bucket-exists --bucket B
aws cloudformation wait stack-create-complete --stack-name SList available waiters per service: aws <service> wait help.
Default poll interval and max attempts are service-specific (usually 15s × 40 attempts = 10 min).
For unfamiliar commands, two power tools:
# interactive parameter completion — picks args from prompts
aws lambda create-function --cli-auto-prompt
# generate a JSON skeleton of all params, fill in, then submit
aws lambda create-function --generate-cli-skeleton > req.json
# edit req.json
aws lambda create-function --cli-input-json file://req.jsonUseful for any command with >5 params or nested shapes.
Stop and confirm with the user before any of:
delete-*, terminate-*, destroy-*, remove-*put-* / create-* that overwrites existing resourcesupdate-* on IAM, security groups, or KMSprod accounts/profilesaws s3 rm --recursive, aws s3 sync --deleteFor destructive ops: prefer --dry-run first when supported. Show the exact resource ARN(s) that will be affected. Wait for explicit user confirmation.
# inspect current context
aws configure list # shows profile, region, key source
aws configure list-profiles # all named profiles
aws sts get-caller-identity # who am I
# scope a single command without changing env
AWS_PROFILE=staging AWS_REGION=us-west-2 aws s3 lsWhen user mentions a service in a region (e.g., "EU buckets"), pass --region explicitly — do not assume.
Quick references kept short. Open the per-service file for details.
Unable to locate credentials — no profile / env vars. Run aws configure or aws sso login --profile <name>.ExpiredToken / Token has expired — refresh: aws sso login or rotate keys.AccessDenied — show full error, identify principal + action + resource. Do not retry with broader perms; report to user.ThrottlingException — back off, add --cli-read-timeout or retry with jitter. Don't tight-loop.RequestExpired — clock skew. Check date.When presenting results to the user:
123456789012 / us-east-1...")~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.