New to Claude Skills? Learn how to install them →

aws on GitHub

AWS Security Agent

OfficialFree

Automate threat modeling for AWS security reviews.

by aws2.3k stars on aws/agent-toolkit-for-aws
1 views
Updated Aug 10, 2026
Get this skill

Free · Opens the source repo

What AWS Security Agent does

The AWS Security Agent skill enables users to perform automated threat model reviews on their AWS design and specification documents. By utilizing the STRIDE methodology, this skill analyzes requirements.md and design.md files against the source code to identify potential changes in security posture. It eliminates the need for prior scanning, allowing for immediate assessments based on the provided specifications.

To use the skill, users must first ensure that the necessary configuration is set up in .security-agent/config.json, which includes the agent_space_id and region. The workflow begins with pre-checks to verify the configuration before collecting the relevant specification files. The skill then zips the workspace, uploads it to an S3 bucket, and initiates the threat modeling process by creating a threat model in AWS Security Agent.

Once the threat model job is started, the skill polls for status updates every two minutes, providing real-time feedback on the job's progress. Upon completion, it fetches the identified threats and generates a comprehensive report detailing each threat's severity, impact, and recommendations for mitigation. The findings are saved in a markdown file for easy reference and further action.

This skill is particularly beneficial for developers and security professionals who need to ensure the security of their AWS-based applications by systematically identifying and addressing potential threats during the design phase.

When to use it

Use this skill when you need to review AWS design documents for security vulnerabilities or when implementing a new feature that requires a threat assessment.

When not to use it

This skill may not be suitable for environments outside of AWS or for projects that do not utilize `requirements.md` or `design.md` files for specifications.

What you can build with it

Reviewing New Features

When implementing a new feature in an AWS application, use this skill to assess the design for potential security vulnerabilities.

Compliance Audits

During compliance audits, leverage this skill to ensure that your design documents meet security standards.

Regular Security Assessments

Incorporate this skill into your regular security assessment process to continuously monitor and improve your AWS security posture.

How to install AWS Security Agent

View source

1. Install with the skills CLI

npx skills add aws/agent-toolkit-for-aws/threat-modeling-with-aws-security-agent --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by aws

AWS Security Agent — Threat Model Review

Analyze spec documents (requirements.md, design.md) against the source code to identify security-posture changes using STRIDE methodology. No prior scan needed.

Local state

Read .security-agent/config.json for agent_space_id and region. If missing, run the setup-security-agent workflow inline first.

Resolving the values you need

PlaceholderHow to resolve
<id> (agent space)config.agent_space_id
<region>config.region (default us-east-1)
<account>aws sts get-caller-identity --query Account --output text
<role-arn>arn:aws:iam::<account>:role/SecurityAgentScanRole
<bucket>security-agent-scans-<account>-<region>

Workflow

  1. Pre-checks. Read config, verify agent space, resolve values.

  2. Collect spec files. Identify the requirements.md and/or design.md the user is working on. Use absolute paths. Ask if unclear which files to review.

  3. Zip the workspace (same exclusions as code scan):

    cd <absolute-workspace-path>
    zip -r /tmp/source.zip . \
      -x ".git/*" -x ".security-agent/*" -x "node_modules/*" \
      -x "__pycache__/*" -x ".venv/*" -x "venv/*" \
      -x "dist/*" -x "build/*" -x "target/*" \
      -x ".mypy_cache/*" -x ".pytest_cache/*" -x ".tox/*" \
      -x ".next/*" -x "cdk.out/*" -x ".DS_Store" -x "*.pyc"
    
  4. Upload source zip:

    SCAN_ID="tm-$(date +%s)-$(openssl rand -hex 3)"
    WORKSPACE_ID=$(printf '%s' "$(pwd)" | md5sum | cut -c1-12)
    aws s3 cp /tmp/source.zip s3://<bucket>/security-scans/source/${WORKSPACE_ID}/source.zip
    
  5. Upload spec files:

    aws s3 cp /path/to/requirements.md s3://<bucket>/security-scans/threat-models/${SCAN_ID}/specs/requirements.md
    aws s3 cp /path/to/design.md s3://<bucket>/security-scans/threat-models/${SCAN_ID}/specs/design.md
    
  6. Create threat model:

    aws securityagent create-threat-model --agent-space-id <id> --title <title> \
      --service-role <role-arn> \
      --assets sourceCode=[{s3Location=s3://<bucket>/security-scans/source/${WORKSPACE_ID}/source.zip}] \
      --scope-docs '[{"s3Location":"s3://<bucket>/security-scans/threat-models/'${SCAN_ID}'/specs/requirements.md"},{"s3Location":"s3://<bucket>/security-scans/threat-models/'${SCAN_ID}'/specs/design.md"}]'
    

    Capture threatModelId.

  7. Start threat model job:

    aws securityagent start-threat-model-job --agent-space-id <id> --threat-model-id <tm-id>
    

    Capture threatJobId.

  8. Persist to scans.json with scan_type: "THREAT_MODEL".

  9. Tell user: "Threat model review started. Runtime varies with workspace size. I'll check every 2 minutes — say 'stop polling' to opt out."

  10. Poll every 2 minutes:

    aws securityagent batch-get-threat-model-jobs --agent-space-id <id> --threat-model-job-ids <tj-id>
    

    Only respond when status changes.

  11. On COMPLETED → fetch threats:

    aws securityagent list-threats --agent-space-id <id> --threat-job-id <tj-id>
    

    If nextToken, paginate with --next-token.

Findings presentation

Each threat includes: statement, severity, stride category, threatImpact, recommendation, impactedAssets.

🟣 CRITICAL: {statement}
   STRIDE: {stride}
   Impact: {threatImpact}
   Assets: {impactedAssets}
   Recommendation: {recommendation}

🔴 HIGH: {statement}
   ...

Write full report to .security-agent/findings-{scan_id}.md. Call out any threat that represents a regression from the prior design.


Rules

  • Threat model reviews are standalone — no prior scan needed
  • Poll every 2 minutes, not faster
  • At least one spec file is required
  • Use absolute paths for workspace and spec files
  • Title: threat-model-<feature-name> (no spaces)

Frequently asked questions about AWS Security Agent

Similar skills