VMware NSX Security について
VMware NSX Securityは、NSXのセキュリティ管理とネットワークトラフィックの調査に使うMCPサーバーです。分散ファイアウォールのポリシーやルール、グループ、タグ、Traceflow、IDPSを扱うチーム向けで、書き込み操作の監査と削除プレビューも備えています。
主な機能
- 01DFWポリシーとルールの管理
- 02セキュリティグループの作成と照会
- 03VMタグの適用と削除
- 04Traceflowによるパケット追跡
- 05IDPS設定の確認
- 06書き込みの監査と削除プレビュー
活用シーン
- 01アプリケーションのマイクロセグメンテーション設定
- 02VMの整理とタグ付け
- 03パケット経路と破棄理由の調査
- 04DFW除外リストと対象メンバーの確認
MCP 対応
MCPサーバーはNSX DFW、セキュリティグループ、VMタグ、Traceflow、IDPS、除外リスト向けの22個のツールを公開します。クライアントはstdioまたはHTTPSで接続でき、公開するツールを制限できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
22掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | ページサイズ。1..1000(デフォルトは 50)。すべての結果を要求する方法ではありません — 0 以下は拒否されます。 |
| offset | integer | いいえ | スキップする一致ポリシー数。0 以上である必要があります。直前のレスポンスの `next_offset` を渡してください。 |
| target | any | いいえ | 設定内の NSX Manager ターゲット名。省略した場合はデフォルトを使用します。 |
| name_filter | any | いいえ | ポリシーの display_name に対する部分文字列/グロブ一致。 |
詳細
VMware NSX Security
Author: Wei Zhou, VMware by Broadcom — [email protected] VMware のエンジニアによるコミュニティ主導のプロジェクトであり、公式の VMware 製品ではありません。 VMware の公式開発者向けツールについては、developer.broadcom.com をご覧ください。
VMware NSX DFW のマイクロセグメンテーションとセキュリティ向け MCP スキルです。分散ファイアウォールのポリシー/ルール、セキュリティグループ、VM タグ、DFW 除外リスト、Traceflow パケットトレース、IDPS に関する 22 個のツールを提供します。
関連スキル: vmware-nsx(ネットワーク)、vmware-aiops(VM ライフサイクル)、vmware-monitor(監視)
クイックスタート
uv tool install vmware-nsx-security
mkdir -p ~/.vmware-nsx-security
cp config.example.yaml ~/.vmware-nsx-security/config.yaml
# Edit config.yaml with your NSX Manager host
echo "VMWARE_NSX_SECURITY_NSX_PROD_PASSWORD=your_password" > ~/.vmware-nsx-security/.env
chmod 600 ~/.vmware-nsx-security/.env
vmware-nsx-security doctor
オフライン/エアギャップ環境へのインストール(ソースから)
このプロジェクトでは最新の PEP 517 ビルドシステム(hatchling)を使用しているため、設計上 setup.py はありません。これは想定どおりであり、ファイルの欠落ではありません。ソースをクローンして、ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build というエラーが出た場合、お使いの pip は 21.3 より古く、setuptools 以外のバックエンドでは 編集可能(-e)インストールを実行できません。編集可能モードは開発者向けの利便機能であり、ツールの実行には不要です。次のいずれかを行ってください。
# From the source tree — a normal (non-editable) install builds a wheel:
pip install . # NOT pip install -e .
# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .
完全なエアギャップ環境のホストでは、ネットワークに接続されたマシンで wheel をビルドしてコピーしてください。これにより、対象ホストでネットワークは不要になります。
# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist # → dist/*.whl (or: uv build, for just this package)
# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-nsx-security
機能
| カテゴリ | ツール |
|---|---|
| DFW ポリシー | 一覧表示、取得、作成、更新、削除、ルール一覧表示 |
| DFW ルール | 作成、更新、削除、統計 |
| セキュリティグループ | 一覧表示、取得、作成、削除 |
| VM タグ | タグ一覧表示、タグ適用、タグ削除 |
| Traceflow | トレース実行、結果取得 |
| IDPS | プロファイル一覧表示、シグネチャの状態と設定 |
| DFW 除外 | 除外メンバーの一覧表示 |
合計:22 個の MCP ツール(読み取り専用 11 個+書き込み 11 個)
DFW 除外リスト
NSX 分散ファイアウォールの除外リストに登録された VM には、データパス上で DFW が適用されません。その VM を指定するルールが存在していても、どのルールも適用されません。VCF 環境では、管理 VM(vCenter、VCF Operations、NSX マネージャー)が一般的にこのリストに登録されます。実際の NSX 9.1 ファブリックでは、12 台中 10 台の VM が除外されていました。list_dfw_exclusions でリストを確認できます。また、list_vm_tags/get_group/list_dfw_policies はメンバーが除外対象であることを示すため、DFW が認識しない VM に対して「DFW ポリシーで保護されている」と報告することはありません。dfw_excluded: null はリストを読み取れなかったことを意味し、false ではありません。
MCP サーバーのセットアップ
uv tool install vmware-nsx-security の実行後、1 つのコマンドで MCP サーバーを起動できます(v1.5.15 以降)。
# Recommended — single command, no network re-resolve
vmware-nsx-security mcp
# With a custom config path
VMWARE_NSX_SECURITY_CONFIG=/path/to/config.yaml vmware-nsx-security mcp
~/.claude.json に追加します。
{
"mcpServers": {
"vmware-nsx-security": {
"command": "vmware-nsx-security",
"args": ["mcp"],
"env": {
"VMWARE_NSX_SECURITY_CONFIG": "~/.vmware-nsx-security/config.yaml"
}
}
}
}
別の方法:uvx(インストール不要)または従来のエントリーポイント
# Run without installing (requires PyPI access each launch)
uvx --from vmware-nsx-security vmware-nsx-security mcp
# Legacy entry point (still works, kept for backward compatibility)
vmware-nsx-security-mcp
企業の TLS プロキシ経由で接続していますか? uvx で
invalid peer certificate: UnknownIssuerエラーが発生することがあります。 推奨される上記のvmware-nsx-security mcp形式を使用してください(ネットワークは不要です)。または、UV_NATIVE_TLS=trueを設定してください。
よくあるワークフロー
アプリケーションをマイクロセグメント化する
# 1. Create groups by tag — via the create_group MCP tool
# (tag_scope=tier, tag_value=web → matched as Condition value "tier|web";
# multiple criteria types — tag/IP/segment — are ORed)
# 2. Create DFW policy
vmware-nsx-security policy create web-app-policy --name "Web to App" --category Application
VM にタグを付ける
# Find VM and its external ID
vmware-nsx-security tag list my-vm-01
# Apply tag using the external ID
vmware-nsx-security tag apply <external-id> --scope tier --value web
パケットをトレースする
vmware-nsx-security traceflow run <src-lport-id> \
--src-ip 10.0.1.5 --dst-ip 10.0.2.10 --proto TCP --dst-port 443
出力には、operation_state(IN_PROGRESS/FINISHED/FAILED)、resource_type で判別されるホップごとの observations(Dropped* エントリには reason と acl_rule_id が含まれます)、および dfw_hits の概要が示されます。
安全性
- 依存関係の確認:有効なルールがあるポリシーや、DFW またはゲートウェイファイアウォールのルール/スコープ、あるいは親グループから参照されているグループは削除できません。参照のスキャンに失敗した場合、グループの削除は中止されます。
- 監査ログ:すべての書き込み操作は
~/.vmware-nsx-security/audit.logに記録されます。 - 入力の検証:ID を検証し、プロンプトインジェクションに対してすべての API テキストをサニタイズします。
- ドライランモード:すべての CLI 書き込みコマンドで
--dry-runを使用できます。 - MCP 削除のプレビュー:
delete_dfw_policy、delete_dfw_rule、delete_groupはデフォルトでプレビューを表示します。confirm=Trueを指定しない場合は、blast_radius(削除される内容、blockers、unmeasured)を返し、何も削除しません。ブロッカーが残っている場合、または読み取りに失敗した場合、confirm=Trueは拒否されます。 - 認証情報の安全性:パスワードは環境変数からのみ取得し、設定ファイルには保存しません。
関連スキル
| スキル | 対象範囲 | ツール | インストール |
|---|---|---|---|
| vmware-aiops ⭐ エントリーポイント | VM ライフサイクル、デプロイ、ゲスト操作、クラスター | 49 | uv tool install vmware-aiops |
| vmware-monitor | 読み取り専用の監視、アラーム、イベント、VM 情報 | 27 | uv tool install vmware-monitor |
| vmware-nsx | NSX ネットワーク:セグメント、ゲートウェイ、NAT、IPAM | 33 | uv tool install vmware-nsx-mgmt |
| vmware-storage | データストア、iSCSI、vSAN | 11 | uv tool install vmware-storage |
| vmware-vks | Tanzu 名前空間、TKC クラスターのライフサイクル | 20 | uv tool install vmware-vks |
| vmware-aria | Aria Ops のメトリクス、アラート、キャパシティプランニング | 28 | uv tool install vmware-aria |
バージョンの互換性
| NSX バージョン | サポート | 備考 |
|---|---|---|
| NSX 9.1 / VCF 9.1 | ✅ 完全対応 | Policy API 経由の DFW + セキュリティグループ + Traceflow + IDS/IPS。VDS 7.0 以降が必要です(NSX 9 では N-VDS が削除されています)。 |
| NSX 9.0 / VCF 9.0 | ✅ 完全対応 | 9.1 と同じです。ベアメタル NSX エージェントは削除されています。 |
| NSX 4.x / VCF 5.x | ✅ 完全対応 | すべての機能に対応しています。 |
| NSX-T 3.2 / VCF 4.5 | ✅ 完全対応 | Policy API は安定しています。 |
Broadcom 公式リファレンス
- SDK:https://developer.broadcom.com/sdks — VMware NSX for Python SDK(将来的な移行先)
- REST API:https://developer.broadcom.com/xapis — NSX-T Data Center REST API
- CLI ツール:https://developer.broadcom.com/tools — VCF PowerCLI 9.1
リモートアクセス(HTTPS)とツールの制限
デフォルトでは、vmware-nsx-security mcp は stdio で 1 つのローカルクライアントと通信し、すべてのツールを提供します。次の 2 つのオプションで変更できます
(vmware-policy ≥ 1.21.0)。
HTTPS 経由で提供すると、ほかのマシン上のクライアントが接続できます。すべての呼び出し元にベアラートークンが必要です:
vmware-audit token create alice # prints the token once; give it to alice
vmware-audit token list # names only
vmware-audit token revoke alice # refused from its next request, no restart
vmware-nsx-security mcp --transport https --host 0.0.0.0 --port 8443 \
--cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \
--public-name mcp.example.com
クライアントを接続します(Claude Code の例です。ストリーミング可能な HTTP とカスタムヘッダーに対応する MCP クライアントであれば、どれでも使用できます):
claude mcp add --transport http vmware-nsx-security https://mcp.example.com:8443/mcp \
--header "Authorization: Bearer $VMWARE_MCP_TOKEN"
{
"mcpServers": {
"vmware-nsx-security": {
"type": "http",
"url": "https://mcp.example.com:8443/mcp",
"headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }
}
}
}
- トークンがないとサーバーは起動せず、
--public-name以外の Host/Origin 値を拒否し、未認証のリクエストが 401 を返すことをバインド前に確認します。これらの名前について、クライアントが信頼する証明書を使用してください。 - 同じマシン上の TLS 終端リバースプロキシの背後では、
--transport http --host 127.0.0.1 --public-name mcp.example.comを使用し、Authorizationヘッダーを転送してください。 - 別のマシン上のロードバランサーまたはゲートウェイの背後では、
--transport httpsを維持します(自己署名証明書でもかまいません)。ロードバランサーがHostとして送信するホスト名を--public-nameに指定し、Authorizationを転送するように設定してください。 ヘルスプローブにはGET /healthzを使用できます。トークンは不要で、{"status": "ok"}のみを返します (vmware-policy ≥ 1.23.0)。 - 各リクエストに
traceparentまたはX-Request-IDを指定すると、監査ログの行に保存されます。vmware-audit log --correlation-id IDを使うと、1 つのプラットフォームリクエストに関連する呼び出しを見つけられます。 - 監査ログでは、呼び出し元はそれぞれ
token:<name>として記録されます。呼び出しは、ターゲットの有無にかかわらず並行して実行されます。各ターゲットは最大VMWARE_MCP_POOL_SIZE個のセッション(デフォルトは 2)を保持し、各セッションはターゲットへのログインです。すべてのセッションが使用中の場合、呼び出しは空きができるまで最大 300 秒待機します。 - エンドポイントに接続できる人は誰でも、このサーバーのアカウントで操作できます。 トークンは呼び出し元を識別しますが、プラットフォーム上の権限を付与するものではありません。権限レベルごとにエンドポイントを 1 つ実行してください。
- 1 つのエンドポイントで複数のユーザーやロールを使う場合:
vmware-audit roles enableを 1 回実行し、各トークンにロールを割り当てます(vmware-audit token create NAME --role reader、またはツールとターゲットを指定するroles.yaml内のロールを使用します。vmware-policy ≥ 1.24.0)。ロールは、このエンドポイントでトークンが呼び出せる内容を制限します。アカウントが持つ権限を超える権限は付与できません。vmware-policy の README の「Roles for network callers」を参照してください。
読み取りツールと、選択した書き込みツールのみを提供します:
vmware-nsx-security mcp --expose read --allow-write apply_vm_tag
# or: VMWARE_NSX_SECURITY_MCP_EXPOSE=read VMWARE_NSX_SECURITY_MCP_ALLOW_WRITE=apply_vm_tag vmware-nsx-security mcp
提供対象に含まれないツールは、クライアントのツール一覧に表示されません。不正な値、または不明な書き込みツールが指定されると、サーバーは停止します (終了コード 2)。これはクライアントに提供するツールを制限するものであり、認可ではありません。そのため、アカウント自体には最小権限を適用してください。
詳細:skills/vmware-nsx-security/references/setup-guide.md(「Serving MCP over HTTPS」、「Limiting which tools are offered」)。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。