• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

threat-modeling-with-aws-security-agent

プラグイン
aws-agents-for-devsecops
ソース
GitHub で見る ↗
説明

AWS セキュリティエージェント(クラウドセキュリティを分析するAWSの専門ツール)で、仕様書や設計書に対して脅威モデルレビュー(想定される攻撃パターンの検証)を実施します。 次のような場合に使用: ユーザーが仕様書のセキュリティレビューを求めている、脅威モデル分析を実行したい、設計が新たなセキュリティリスクをもたらしていないか確認したい、要件書や設計書のセキュリティ状況の変化を確認したい、STRIDE分析(6種類の攻撃パターンを体系的に検討する手法)を希望している場合。

原文を表示

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.

ユースケース
  • 仕様書のセキュリティレビューを求めているとき
  • 脅威モデル分析を実行したいとき
  • 設計のセキュリティリスク確認
  • STRIDE分析を希望しているとき
本文(日本語訳)

AWS Security Agent — 脅威モデル・レビュー

仕様書(requirements.md、design.md)をソースコードと照らし合わせて、STRIDE方式(セキュリティの脅威を体系的に分類する手法)を使い、セキュリティの状態がどう変わったかを特定します。事前のスキャンは不要です。

ローカルの設定情報

.security-agent/config.json から agent_space_id と region を読み込みます。ファイルがない場合は、先に setup-security-agent ワークフローを実行してください。

必要な情報の調べ方

プレースホルダ 調べ方
<id>(エージェント スペース) config.agent_space_id
<region> config.region(デフォルト: 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>

処理の流れ

  1. 事前確認。設定ファイルを読み込み、エージェント スペースを確認し、各値を調べます。

  2. 仕様書ファイルの収集。ユーザーが作業中の requirements.md と design.md(またはどちらか)を特定します。絶対パスを使用してください。ファイルが不明な場合は確認してください。

  3. ワークスペースをzip化(コードスキャンと同じ除外設定):

    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. ソース 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 --expected-bucket-owner <account>
    
  5. 仕様書をアップロード:

    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. 脅威モデルを作成:

    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"}]'
    

    threatModelId を記録してください。

  7. 脅威モデルの分析をスタート:

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

    threatJobId を記録してください。

  8. scans.json に結果を保存します(scan_type: "THREAT_MODEL" を指定)。

  9. ユーザーに通知: 「脅威モデルのレビューを開始しました。ワークスペースの大きさによって処理時間は異なります。2分ごとに確認を続けます。中止したい場合は『ポーリングを停止』と言ってください。」

  10. 2分ごとにポーリング(確認):

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

    ステータスが変わったときだけ、結果を報告します。

  11. 完了後、脅威情報を取得:

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

    nextToken がある場合は、--next-token で続きを取得してください。

結果の表示方法

各脅威には以下の情報が含まれます: statement(説明)、severity(深刻度)、stride(脅威の種類)、threatImpact(影響)、recommendation(対策)、impactedAssets(影響を受ける対象)。

🟣 CRITICAL(最高リスク): {statement}
   STRIDE: {stride}
   Impact: {threatImpact}
   Assets: {impactedAssets}
   Recommendation: {recommendation}

🔴 HIGH(高リスク): {statement}
   ...

詳細な結果を .security-agent/findings-{scan_id}.md に書き込みます。以前の設計と比べて悪くなった脅威(後退)があれば、特に目立つようにしてください。


ルール

  • 脅威モデル・レビューは独立した分析です(事前スキャン不要)
  • 2分ごとのポーリング(より短い間隔は禁止)
  • 仕様書ファイルは最低1つ必須
  • ワークスペースと仕様書は絶対パスで指定
  • タイトル: threat-model-<機能名>(スペース不可)
原文(English)を表示

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

    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 --expected-bucket-owner <account>
    
  5. Upload spec files:

    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:

    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)

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。