Skip to main content
skill CX Codex

threat-modeling-with-aws-security-agent — Claude Code skill

Runs a STRIDE threat model review on spec files and codebases using AWS Security Agent to detect architectural security risks.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a claude-code
Open on GitHub

What threat-modeling-with-aws-security-agent does

This skill compares design documents such as requirements.md or design.md directly against repository code. The agent packages workspace files while omitting build artifacts, pushes the archive to an S3 bucket, and initiates an AWS Security Agent evaluation job.

The workflow polls task status every 2 minutes. Once finished, it compiles findings into .security-agent/findings-{scan_id}.md, tagging issues by STRIDE category, impact level, and mitigation advice.

Execution fails immediately without .security-agent/config.json defining agent_space_id or lacking the SecurityAgentScanRole IAM role. However, running a prior code scan is not needed, as long as at least one spec file exists.

What it helps with

  • evaluate spec documents against source code using STRIDE
  • identify security regressions introduced by new design specs
  • generate threat reports with severity and remediation steps
  • audit requirements.md for architectural security flaws

Example prompts for the agent

  • Run a STRIDE threat model review on design.md against the codebase
  • Check requirements.md for security posture changes and risks
  • Start a threat modeling job with AWS Security Agent for our spec

How to install threat-modeling-with-aws-security-agent

1Skills CLI (Vercel)

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

2Manually: put the files in place

~/.claude/skills/threat-modeling-with-aws-security-agent/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/threat-modeling-with-aws-security-agent/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about threat-modeling-with-aws-security-agent

How to install threat-modeling-with-aws-security-agent in Claude Code?

Run npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a claude-code in your terminal to register the skill.

What does this skill do?

It uploads your workspace and spec documents to S3 and triggers AWS Security Agent to analyze threats under the STRIDE methodology.

Is a prior code scan required before running threat modeling?

No, threat model reviews run independently. You only need an initialized .security-agent/config.json and at least one spec file.

Source text

SKILL.md · Apache-2.0
---
name: threat-modeling-with-aws-security-agent
description: Run an AWS Security Agent threat model review on spec/design documents. Use when the user asks to review a spec for security, run a threat model, check if a design introduces security risks, review requirements.md or design.md for security posture changes, or STRIDE analysis.
---

# 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

| Placeholder | How 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):

   ```bash
   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:**

   ```bash
   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 --expected-bucket-owner <account>
   ```

5. **Upload spec files:**

   ```bash
   aws s3 cp /path/to/requirements.md s3://<bucket>/security-scans/threat-models/${SCAN_ID}/specs/requirements.md --expected-bucket-owner <account>
   aws s3 cp /path/to/design.md s3://<bucket>/security-scans/threat-models/${SCAN_ID}/specs/design.md --expected-bucket-owner <account>
   ```

6. **Create threat model:**

   ```bash
   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:**

   ```bash
   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:

    ```bash
    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:

    ```bash
    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)

© aws · Apache-2.0 · aws/agent-toolkit-for-aws

Similar skills

Everything for Security →

From the same set133

scanning-with-aws-security-agent Runs repository scans using managed AWS Security Agent service by uploading code to S3. Returns ranked findings with code locations and remediation steps. CX Codex +1 1,500installs setup This skill kicks off the connection setup for AWS DevOps Agent and AWS Security Agent. Reach for it when MCP tools go missing or you are wiring the toolkit up for the first time. CX Codex +1 1,500installs setup-security-agent Configures AWS Security Agent for the project workspace by provisioning an agent space, IAM role, and S3 bucket. CX Codex +1 1,500installs chatting-with-aws-devops-agent This skill sends AWS infrastructure questions to AWS DevOps Agent for conversational analysis. Use it for cost, architecture, topology, security, and diagnostic questions. CX Codex +1 1,500installs running-release-tests Runs UI and API release tests in AWS DevOps Agent from a pre-configured test profile. Useful before a rollout, when you want workflows and regressions checked. CX Codex +1 1,400installs aws-well-architected-review Runs an AWS Well-Architected Framework review: reads your code and IaC, checks it against live AWS docs, and returns a prioritized report. CX Codex +1 1,400installs amazon-neptune Guides setup and operations for Amazon Neptune Database and Neptune Analytics across GraphRAG, fraud detection, and graph queries. Requires explicit confirmation before any resource changes. CX Codex +1 1,400installs aws-fault-injection-service Designs, runs, and analyzes chaos experiments in AWS Fault Injection Service. It helps test application resilience against AZ outages, network packet loss, and compute failures. CX Codex +1 1,000installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor