View a markdown version of this page

IDE からコードセキュリティスキャンを実行する - AWS セキュリティエージェント

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IDE からコードセキュリティスキャンを実行する

Kiro または Claude コードを使用して、IDE から直接 AWS セキュリティエージェントのコードセキュリティスキャンを実行します。IDE 統合により、開発環境を離れることなく、ローカルソースコードをスキャンしてセキュリティの脆弱性を確認し、変更されたコードでのみ差分スキャンを実行し、設計ドキュメントで脅威モデルレビューを実行できます。検出結果は修復ガイダンスとともにコードとともに表示され、IDE から直接自動修正を適用できます。

IDE 統合の仕組み

IDE 統合では、AWS セキュリティエージェント MCP (モデルコンテキストプロトコル) サーバーを使用して IDE を AWS セキュリティエージェントサービスに接続します。

  1. MCP サーバーは、ソースコードを ZIP アーカイブにパッケージ化します。

  2. アーカイブは、サーバーが AWS アカウントで自動プロビジョニングする S3 バケットにアップロードされます。

  3. サーバーは AWS セキュリティエージェント API を呼び出してスキャンを開始します。

  4. AWS セキュリティエージェントは、セキュリティの脆弱性と組織のセキュリティ要件への準拠についてコードを分析します。

  5. 検出結果は、コードの場所、説明、重要度評価、修復提案とともに IDE に返されます。

MCP サーバーは、エージェントスペースのプロビジョニング、S3 バケットの作成、IAM ロールのセットアップ、コードパッケージング、スキャンポーリングなど、すべてのオーケストレーションを処理するため、ローカルで設定される AWS 認証情報のみが必要です。

注記

唯一の前提条件は、ローカル環境 (、AWS SSO、環境変数など) aws configureで設定された AWS 認証情報です。MCP サーバーは、初回使用時にエージェントスペース、IAM サービスロール、および S3 バケットを自動プロビジョニングします。

前提条件

開始する前に、以下があることを確認してください。

  • AWS 認証情報は、次のアクセス許可でローカルに設定されます。

    • iam:CreateRoleiam:PutRolePolicy (サービスロールの 1 回限りのセットアップ用)

    • s3:CreateBucket, s3:PutObject, s3:PutPublicAccessBlock, s3:PutLifecycleConfiguration

    • securityagent:CreateAgentSpace, securityagent:UpdateAgentSpace, securityagent:ListAgentSpaces, securityagent:BatchGetAgentSpaces

    • securityagent:CreateCodeReview, securityagent:StartCodeReviewJob, securityagent:BatchGetCodeReviewJobs

    • securityagent:ListFindings, securityagent:BatchGetFindings

    • securityagent:StartCodeRemediation (自動修正の場合)

    • sts:GetCallerIdentity

  • uv がインストールされました (Python パッケージランナー)

  • Python 3.10 以降

  • 次のいずれかの IDEs

    • Kiro (AWS Security Agent Power をインストール)

    • Claude Code (AWS セキュリティエージェントプラグインをインストールする)

MCP サーバーをインストールする

Kiro

Kiro マーケットプレイスから AWS Security Agent Power をインストールします。Power は、自動セキュリティスキャンの提案のために MCP サーバー設定、ステアリング手順、ライフサイクルフックをバンドルします。

または、プロジェクトの で MCP サーバーを手動で設定します.kiro/mcp.json

{
  "mcpServers": {
    "security-agent": {
      "command": "uvx",
      "args": ["awslabs.security-agent-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}

Claude Code

AWS Security Agent プラグインをインストールします。これにより、セットアップ、フルスキャン、差分スキャン、脅威モデルレビュー、修復のスキルが得られます。

プロジェクトの で MCP サーバーを設定します.mcp.json

{
  "mcpServers": {
    "awslabs.security-agent-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.security-agent-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1",
        "FASTMCP_LOG_LEVEL": "ERROR"
      }
    }
  }
}
ヒント

Python をローカルにインストールしない場合は、Docker 経由で MCP サーバーを実行することもできます。Docker 設定については、MCP サーバードキュメントを参照してください

初回の設定

初回使用時に、MCP サーバーは必要な AWS リソースを自動的にプロビジョニングします。

[リソース] 名前の規則 目的

エージェントスペース

ユーザー選択または自動作成

スキャン、レビュー、およびペンテスト用のコンテナ

IAM サービスロール

SecurityAgentScanRole

アップロードされたコードを読み取るsecurityagent.amazonaws.comために が引き受ける

S3 バケット

security-agent-scans-{account}-{region}

zip 形式のソースコードを保存 (30 日間の自動有効期限ライフサイクル)

セットアップを明示的にトリガーするには、IDE にお問い合わせください。

Set up the security agent

セットアップでは、AWS 認証情報の検証、エージェントスペースの作成または再利用、IAM ロールと S3 バケットのプロビジョニング、準備状況の確認を行います。AWS マネジメントコンソールのエージェントスペースがすでにある場合、セットアップでそれらが表示され、使用するエージェントスペースが尋ねられます。

注記

まだ設定されていない場合、セットアップは最初のスキャンで自動的に実行されます。個別に実行する必要はありません。

フルセキュリティスキャンを実行する

プロジェクト全体でセキュリティの脆弱性をスキャンします。

Scan this project for security issues

IDE:

  1. ソースコードをアーカイブします (.gitnode_modules、ビルドアーティファクト、その他の必須ではないディレクトリを除く)

  2. アーカイブを S3 にアップロードします

  3. 完全なコードレビュージョブを開始します

  4. 完了のポーリング (通常は約 1 時間)

  5. 重要度別にグループ化された結果を表示します

スキャンの進行状況

フルスキャンは通常、コードベースのサイズに応じて約 1 時間かかります。IDE は 5 分ごとに進行状況を確認し、結果の準備ができたら通知します。ステータスはいつでもリクエストできます。

How's the scan going?

差分スキャンを実行する

開発中のフィードバックを高速化するには、git ref 以降に変更されたコードのみをスキャンします。

Scan my changes against main for security issues

デフォルトでは、ベース ref を指定しない場合、スキャンはコミットされていない変更を と比較しますHEAD。別のベースを明示的に指定できます。

Diff scan my uncommitted changes

差分スキャンは、完全なリポジトリコンテキストと git diff パッチの両方をアップロードし、変更された行のみに焦点を当てた分析を実行します。結果は通常 5~15 分で届きます。

S3 差分スキャン API の詳細については、「」を参照してくださいS3 で差分コードスキャンを実行する

脅威モデルレビューを実行する

STRIDE 手法を使用して、セキュリティ体制の変更について設計ドキュメントを分析します。

Run a threat model review on my spec

IDE は requirements.mdおよび design.md ファイル (通常は の下.kiro/specs/) を識別し、ソースコードと一緒にアップロードして、脅威モデル分析を実行します。結果は以下を識別します。

  • STRIDE で分類されたセキュリティ脅威 (なりすまし、改ざん、否認、情報開示、サービス拒否、特権の昇格)

  • 各脅威の重要度評価

  • コードベースの特定のアセットへの影響

  • 緩和に関する推奨事項

ヒント

仕様から実装タスクを生成する前に、脅威モデルレビューを実行します。これにより、コードが書き込まれる前にセキュリティ設計の問題がキャッチされます。

検出結果を確認する

スキャンが完了すると、結果は重要度別にグループ化された IDE に表示されます。

🟣 CRITICAL: SQL Injection in user-service.ts
   File: src/api/user-service.ts:45
   User input flows directly into SQL query without parameterization

🔴 HIGH: Hardcoded credentials in config.ts
   File: src/config/database.ts:12
   Database password stored in source code

また、詳細なレポートは、リスクタイプ、信頼スコア、コードの場所、修復コードなど、各検出結果の完全な情報.security-agent/findings-{scan_id}.mdとともに に書き込まれます。

前回のスキャンの結果を表示するには:

Show my security findings

自動修正を適用する

検出結果を確認したら、自動修復を適用します。

Fix the security findings

IDE は、重要度 (重大 → 高 → 中 → 低) 別に検出結果のトップダウンを実行し、各検出結果の修正ガイダンスを使用してコード修正を適用します。すべての修正が適用されると、検証差分スキャンが自動的に実行され、問題が解決されたことを確認します。

個々の検出結果を修正することもできます。

Fix the SQL injection in user-service.ts
重要

コミットする前に、必ず自動修正を確認してください。修正によって既存の機能が損なわれたり、リグレッションが発生したりしないことを確認します。

自動スキャン提案 (Kiro)

Kiro Power を使用する場合、AWS セキュリティエージェントは、セキュリティに敏感なコード変更を行った後に、差分スキャンを自動的に提案できます。Power は、完了した各コーディングターンを評価するフックをインストールし、変更が以下に影響する場合にスキャンを提案します。

  • 認証または認可ロジック

  • 暗号化またはシークレット処理

  • 入力の検証またはデータのサニタイズ

  • ネットワークリクエストまたは外部統合

  • セキュリティ設定 (CORS、ヘッダー、セッション処理)

を削除することで、いつでも自動提案をオプトアウトできます.kiro/hooks/security-diff-scan-suggester.kiro.hook

使用可能なスキャンタイプ

[スキャンタイプ] 時間 ユースケース コマンド

フルスキャン

約 1 時間

コードベース全体の包括的なレビュー

「プロジェクトをスキャンしてセキュリティ上の問題がないか調べる」

Diff スキャン

5~15 分

コードのみ変更 (コミット前、PR 前)

「変更をスキャンする」または「メインとの差スキャン」

脅威モデル

5~30 分

設計ドキュメント (requirements.md、design.md)

「自分の仕様で脅威モデルレビューを実行する」

環境変数

可変 説明 デフォルト

AWS_REGION

SecurityAgent API コールの AWS リージョン

us-east-1

AWS_PROFILE

AWS 認証情報プロファイル名

デフォルトプロファイル

FASTMCP_LOG_LEVEL

MCP サーバーログレベル (DEBUG、INFO、WARNING、ERROR)

WARNING

トラブルシューティング

「設定されていません。最初にセットアップを実行します。」

.security-agent/config.json が見つからないか、エージェントスペースが存在しなくなりました。IDE にセットアップの実行を依頼します。

Set up the security agent

AccessDenied でスキャンが失敗する

AWS 認証情報に、「前提条件」セクションに記載されている必要な IAM アクセス許可があることを確認します。最も一般的な欠落しているアクセス許可は です iam:CreateRole (初回セットアップでのみ必要)。

スキャンがタイムアウトするか、時間がかかりすぎる

  • 大規模なコードベースのフルスキャンには 1 時間以上かかる場合があります

  • 反復開発に差分スキャンを使用する — 数分で完了します

  • ソースアーカイブに不要なディレクトリが含まれていないことを確認します (MCP サーバーは一般的なパターンを自動的に除外します)。

空の差分 — スキャンの変更なし

コミットされていない変更なしで差分スキャンを実行すると、MCP サーバーは「HEAD に対する変更なし」を報告し、スキャンを開始しません。最初に変更をコミットまたはステージングするか、別のベース ref を指定します。

クォータと制限

  • ソースアーカイブの最大サイズ: 2 GB

  • S3 バケットライフサイクル: 30 日後にアップロードされたコードが自動削除

次の手順

最初の IDE セキュリティスキャンを実行した後: