Community研究與資料分析github.com

zw008/VMware-Policy

統一的稽核日誌記錄、政策執行和輸入消毒——為 VMware MCP 技能系列提供基礎設施層。

VMware-Policy 是什麼?

VMware-Policy 是整個 VMware MCP 技能系列的核心基礎設施,提供統一的稽核日誌記錄、政策執行和輸入消毒功能。它透過 `@vmware_tool` 裝飾器、`sanitize()` 函數和共享的 SQLite 稽核資料庫,為所有八個 VMware 技能(如 vmware-aiops、vmware-monitor 等)提供自動化的依賴支援。此技能可記錄所有工具呼叫、偵測呼叫的 AI 代理(如 Claude Code 或 OpenAI Codex)、執行 deny 規則和維護視窗政策,以及防範提示注入攻擊。使用者可透過 `vmware-audit` CLI 查詢稽核軌跡、匯出 JSON 日誌以符合法規,以及監控被拒絕的操作。該專案是社群維護的開源專案,使用 MIT 授權條款,且與 VMware, Inc. 或 Broadcom Inc. 無關。

相容平台✓Claude Code✓Codex CLI~Cursor
npx skills add zw008/VMware-Policy

Installed? Explore more 研究與資料分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

VMware Policy

免責聲明:這是一個社群維護的開源專案,與 VMware, Inc. 或 Broadcom Inc. 無關聯、未經其認可,也未受其贊助。「VMware」和「vSphere」是 Broadcom 的商標。原始碼在 github.com/zw008/VMware-Policy 以 MIT 授權條款公開稽核。

統一的稽核日誌記錄、政策執行和輸入消毒——為整個 VMware MCP 技能系列提供基礎設施層。

基礎設施依賴:所有 8 個 VMware 技能都依賴於 vmware-policy。它會自動安裝,並提供 @vmware_tool 裝飾器、sanitize() 函數和共享的稽核資料庫。 技術家族:vmware-aiops(VM 生命週期)、vmware-monitor(唯讀監控)、vmware-storage(iSCSI/vSAN)、vmware-vks(Tanzu Kubernetes)、vmware-nsx(NSX 網路)、vmware-nsx-security(DFW/防火牆)、vmware-aria(指標/警報/容量)、vmware-avi(AVI/ALB/AKO)。 | vmware-pilot(工作流程編排)

此技能的用途

類別元件數量
稽核日誌記錄AuditEngine(SQLite WAL)、日誌輪替、代理偵測3
政策引擎deny 規則、維護視窗、熱重載3
輸入消毒sanitize()——提示注入防禦、控制字元清除1
裝飾器@vmware_tool——預檢查 + 執行 + 後日誌 + 元資料1
CLIvmware-audit log、vmware-audit export、vmware-audit stats3

快速安裝

uv tool install vmware-policy
vmware-audit stats          # 驗證安裝

vmware-policy 會自動安裝為所有 VMware 技能的依賴項。僅在需要獨立查詢稽核記錄時才需要手動安裝。

何時使用此技能

  • 查詢跨所有 VMware 技能的統一稽核軌跡
  • 檢視被拒絕的操作和政策違規
  • 檢查稽核統計資訊(按技能、按狀態、按時間範圍)
  • 匯出稽核日誌為 JSON 以供外部分析
  • 設定 deny 規則或維護視窗
  • 將 @vmware_tool 裝飾器整合到新的 VMware 技能中

此技能會自動載入為依賴項——您無需直接呼叫。它會在以下情況啟用:

  • 任何 VMware 技能工具函數被呼叫時(透過 @vmware_tool 裝飾器)
  • 使用者詢問稽核日誌、被拒絕的操作或政策規則時
  • 使用者執行 vmware-audit CLI 命令時

相關技能——技能路由

使用者意圖推薦技能
VM 生命週期、部署、客體操作vmware-aiops(uv tool install vmware-aiops)
唯讀監控、零風險vmware-monitor(uv tool install vmware-monitor)
儲存:iSCSI、vSAN、資料儲存vmware-storage(uv tool install vmware-storage)
Tanzu Kubernetes(vSphere 8.x+)vmware-vks(uv tool install vmware-vks)
NSX 網路:區段、閘道、NATvmware-nsx(uv tool install vmware-nsx-mgmt)
NSX 安全:DFW 規則、安全群組vmware-nsx-security(uv tool install vmware-nsx-security)
Aria Ops:指標、警報、容量vmware-aria(uv tool install vmware-aria)
負載平衡器、AVI、ALB、AKO、Ingressvmware-avi(uv tool install vmware-avi)
需要核准的多步驟工作流程vmware-pilot
稽核日誌查詢、政策規則vmware-policy——此技能

常見工作流程

查詢近期稽核活動

  1. 檢視最後 20 筆稽核記錄:vmware-audit log --last 20
  2. 按技能篩選:vmware-audit log --skill vmware-nsx --last 50
  3. 檢查被拒絕的操作:vmware-audit log --status denied --since 2026-03-28
  4. 檢視彙整統計:vmware-audit stats --days 7

為生產環境設定政策規則

  1. 複製預設規則:cp $(python -c "import vmware_policy; print(vmware_policy.__file__.replace('__init__.py','rules_default.yaml'))") ~/.vmware/rules.yaml
  2. 編輯 ~/.vmware/rules.yaml——為生產環境新增 deny 規則:
    deny:
      - name: no-delete-in-prod
        operations: ["delete_*", "cluster_delete"]
        environments: ["production"]
        reason: "在生產環境中禁止破壞性操作"
    maintenance_window:
      start: "22:00"
      end: "06:00"
    
  3. 規則會自動熱重載——無需重啟
  4. 驗證:vmware-audit log --status denied 檢視被封鎖的操作

匯出稽核日誌以符合法規

  1. 匯出所有日誌為 JSON:vmware-audit export --format json > audit-export.json
  2. 按技能篩選:vmware-audit export --skill vmware-aiops --since 2026-01-01
  3. 匯入您的 SIEM 或法規遵循工具

使用模式

情境推薦方式原因
查詢稽核日誌CLIvmware-audit 提供豐富的表格輸出
整合到技能中Python APIfrom vmware_policy import vmware_tool, sanitize
自動化法規遵循匯出CLIvmware-audit export --format json 可透過管道傳送至任何工具

CLI 快速參考

# 檢視近期稽核記錄
vmware-audit log --last 20
vmware-audit log --skill vmware-nsx --status denied
vmware-audit log --since 2026-03-28 --tool delete_segment

# 匯出以符合法規
vmware-audit export --format json > audit.json
vmware-audit export --skill vmware-aiops --since 2026-01-01

# 彙整統計資訊
vmware-audit stats --days 7
vmware-audit stats --days 30

完整 CLI 參考:請參閱 references/cli-reference.md

Python API

from vmware_policy import vmware_tool, sanitize

# 包裝每個 MCP 工具函數
@vmware_tool(risk_level="high", sensitive_params=["password"])
def delete_segment(name: str, env: str = "") -> dict:
    ...

# 在將不受信任的 API 回應傳回給 LLM 之前進行消毒
clean_text = sanitize(api_response_text, max_len=500)

MCP 工具 (0)

vmware-policy 不公開 MCP 工具。它是一個 Python 函式庫和 CLI,由其他 VMware 技能使用。

元件類型描述
@vmware_tool裝飾器包裝跨 8 個技能的 156+ 個 MCP 工具
sanitize()函數用於 API 回應的提示注入防禦
AuditEngine類別具有輪替功能的 SQLite WAL 稽核記錄器
PolicyEngine類別具有熱重載功能的 YAML 規則評估器
vmware-auditCLI用於查詢稽核軌跡的 Typer CLI
detect_agent()函數從環境變數推斷呼叫的 AI 代理(見下文)

代理偵測(透明度說明)

audit.py 中的 detect_agent() 函數會檢查以下環境變數,以識別呼叫工具的 AI 代理。這僅供稽核記錄用途的唯讀檢查——不會提取或儲存任何憑證:

環境變數偵測到的代理用途
CLAUDE_SESSION_ID 或 CLAUDE_CODEclaudeClaude Code 工作階段
OPENAI_API_KEY 或 CODEX_SESSIONcodexOpenAI Codex 工作階段
OLLAMA_HOSTlocal本地 Ollama 模型
DEERFLOW_SESSIONdeerflowDeerFlow 工作階段
(無符合項目)unknown無法辨識的代理

偵測到的代理名稱僅為稽核軌跡目的儲存在 ~/.vmware/audit.db 的 agent 欄位中。不會記錄任何 API 金鑰或令牌。

疑難排解

「無法初始化稽核資料庫」警告

稽核資料庫目錄 ~/.vmware/ 必須可寫入。請手動建立:mkdir -p ~/.vmware && chmod 700 ~/.vmware。

政策規則未生效

規則從 ~/.vmware/rules.yaml 載入。請確認檔案存在且包含有效的 YAML。PolicyEngine 會在檔案變更時熱重載——無需重啟。

稽核日誌變得過大

AuditEngine 會在 100MB 時自動輪替,並保留最近的 5 個封存。如需手動清理:ls ~/.vmware/audit.*.db 以檢視封存。

技能中出現「PolicyDenied」例外

這表示 ~/.vmware/rules.yaml 中的 deny 規則符合該操作。請執行 vmware-audit log --status denied 檢視規則名稱和原因。若要暫時繞過:VMWARE_POLICY_DISABLED=1(仍會記錄為已繞過)。

裝飾器未偵測到技能名稱

@vmware_tool 裝飾器從模組路徑推斷技能名稱(例如:vmware_aiops.ops.vm_lifecycle -> aiops)。如果模組未遵循 vmware_<skill> 慣例,技能將記錄為「unknown」。

SQLite「資料庫已鎖定」錯誤

多個並發的技能程序可以透過 WAL 模式寫入相同的 audit.db。如果鎖定持續超過 5 秒,請檢查是否有持有資料庫檔案的殭屍程序。

設定

uv tool install vmware-policy
mkdir -p ~/.vmware

vmware-policy 會自動安裝為所有 VMware 技能的依賴項。~/.vmware/ 目錄會在首次寫入稽核資料時自動建立。

完整設定指南、安全詳細資訊和整合說明:請參閱 references/setup-guide.md

安全性

  • 原始碼:github.com/zw008/VMware-Policy
  • 設定檔內容:~/.vmware/rules.yaml 僅包含規則定義,不含任何憑證
  • Webhook 資料範圍:不適用——vmware-policy 不會將資料傳送到外部
  • TLS 驗證:不適用——vmware-policy 不會建立網路連線
  • 提示注入防護:sanitize() 會將內容截斷至 500 個字元,並清除 C0/C1 控制字元
  • 最小權限原則:稽核資料庫僅限本機使用(~/.vmware/audit.db),無網路暴露

授權條款

MIT——github.com/zw008/VMware-Policy

相關技能