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.
npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a claude-codeWhat 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-code2Manually: put the files in place
~/.claude/skills/threat-modeling-with-aws-security-agent/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/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 codex2Manually: put the files in place
.agents/skills/threat-modeling-with-aws-security-agent/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a cursor2Manually: put the files in place
.cursor/skills/threat-modeling-with-aws-security-agent/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aws/agent-toolkit-for-aws threat-modeling-with-aws-security-agent2Manually: put the files in place
.github/skills/threat-modeling-with-aws-security-agent/SKILL.md1Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a gemini-cli2Platform CLI
gemini skills install https://github.com/aws/agent-toolkit-for-aws --path plugins/aws-agents-for-devsecops/skills/threat-modeling-with-aws-security-agentManually: put the files in place
.devin/skills/threat-modeling-with-aws-security-agent/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aws/agent-toolkit-for-aws --skill threat-modeling-with-aws-security-agent -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
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