VMware Policy
Aviso: Este es un proyecto de código abierto mantenido por la comunidad y no está afiliado, respaldado ni patrocinado por VMware, Inc. o Broadcom Inc. "VMware" y "vSphere" son marcas comerciales de Broadcom. El código fuente es auditado públicamente en github.com/zw008/VMware-Policy bajo la licencia MIT.
Registro de auditoría unificado, aplicación de políticas y sanitización de entrada: la capa de infraestructura para toda la familia de habilidades MCP de VMware.
Dependencia de infraestructura: Las 8 habilidades de VMware dependen de vmware-policy. Se instala automáticamente y proporciona el decorador
@vmware_tool,sanitize()y la base de datos de auditoría compartida. Familia: vmware-aiops (ciclo de vida de VM), vmware-monitor (monitoreo de solo lectura), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-nsx (redes NSX), vmware-nsx-security (DFW/cortafuegos), vmware-aria (métricas/alertas/capacidad), vmware-avi (AVI/ALB/AKO). | vmware-pilot (orquestación de flujos de trabajo)
¿Qué hace esta habilidad
| Categoría | Componentes | Cantidad |
|---|---|---|
| Registro de auditoría | AuditEngine (SQLite WAL), rotación de logs, detección de agente | 3 |
| Motor de políticas | Reglas de denegación, ventanas de mantenimiento, recarga en caliente | 3 |
| Sanitización | sanitize() — defensa contra inyección de prompts, eliminación de caracteres de control | 1 |
| Decorador | @vmware_tool — pre-verificación + ejecución + post-registro + metadatos | 1 |
| CLI | vmware-audit log, vmware-audit export, vmware-audit stats | 3 |
Instalación rápida
uv tool install vmware-policy
vmware-audit stats # verificar instalación
vmware-policy se instala automáticamente como dependencia de todas las habilidades de VMware. La instalación manual solo es necesaria para consultas de auditoría independientes.
Cuándo usar esta habilidad
- Consultar el registro de auditoría unificado entre todas las habilidades de VMware
- Ver operaciones denegadas y violaciones de políticas
- Revisar estadísticas de auditoría (por habilidad, por estado, por rango de tiempo)
- Exportar registros de auditoría como JSON para análisis externo
- Configurar reglas de denegación o ventanas de mantenimiento
- Integrar el decorador
@vmware_toolen una nueva habilidad de VMware
Esta habilidad se carga automáticamente como dependencia — no es necesario invocarla directamente. Se activa cuando:
- Se llama a cualquier función de herramienta de una habilidad de VMware (a través del decorador
@vmware_tool) - El usuario pregunta sobre registros de auditoría, operaciones denegadas o reglas de políticas
- El usuario ejecuta comandos de la CLI
vmware-audit
Habilidades relacionadas — Enrutamiento de habilidades
| Intención del usuario | Habilidad recomendada |
|---|---|
| Ciclo de vida de VM, despliegue, operaciones invitadas | vmware-aiops (uv tool install vmware-aiops) |
| Monitoreo de solo lectura, riesgo cero | vmware-monitor (uv tool install vmware-monitor) |
| Almacenamiento: iSCSI, vSAN, almacenes de datos | vmware-storage (uv tool install vmware-storage) |
| Tanzu Kubernetes (vSphere 8.x+) | vmware-vks (uv tool install vmware-vks) |
| Redes NSX: segmentos, pasarelas, NAT | vmware-nsx (uv tool install vmware-nsx-mgmt) |
| Seguridad NSX: reglas DFW, grupos de seguridad | vmware-nsx-security (uv tool install vmware-nsx-security) |
| Aria Ops: métricas, alertas, capacidad | vmware-aria (uv tool install vmware-aria) |
| Balanceador de carga, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Flujos de trabajo de múltiples pasos con aprobación | vmware-pilot |
| Consulta de registros de auditoría, reglas de políticas | vmware-policy — esta habilidad |
Flujos de trabajo comunes
Consultar actividad de auditoría reciente
- Ver las últimas 20 entradas de auditoría:
vmware-audit log --last 20 - Filtrar por habilidad:
vmware-audit log --skill vmware-nsx --last 50 - Revisar operaciones denegadas:
vmware-audit log --status denied --since 2026-03-28 - Ver estadísticas agregadas:
vmware-audit stats --days 7
Configurar reglas de políticas para producción
- Copiar reglas predeterminadas:
cp $(python -c "import vmware_policy; print(vmware_policy.__file__.replace('__init__.py','rules_default.yaml'))") ~/.vmware/rules.yaml - Editar
~/.vmware/rules.yaml— agregar reglas de denegación para producción:deny: - name: no-delete-in-prod operations: ["delete_*", "cluster_delete"] environments: ["production"] reason: "Operaciones destructivas bloqueadas en producción" maintenance_window: start: "22:00" end: "06:00" - Las reglas se recargan automáticamente — no es necesario reiniciar
- Verificar:
vmware-audit log --status deniedpara ver operaciones bloqueadas
Exportar registros de auditoría para cumplimiento
- Exportar todos los registros como JSON:
vmware-audit export --format json > audit-export.json - Filtrar por habilidad:
vmware-audit export --skill vmware-aiops --since 2026-01-01 - Importar en su SIEM o herramienta de cumplimiento
Modo de uso
| Escenario | Recomendado | Por qué |
|---|---|---|
| Consultar registros de auditoría | CLI | vmware-audit proporciona una salida tabular enriquecida |
| Integrar en una habilidad | API de Python | from vmware_policy import vmware_tool, sanitize |
| Exportación automatizada de cumplimiento | CLI | vmware-audit export --format json se canaliza a cualquier herramienta |
Referencia rápida de CLI
# Ver entradas de auditoría recientes
vmware-audit log --last 20
vmware-audit log --skill vmware-nsx --status denied
vmware-audit log --since 2026-03-28 --tool delete_segment
# Exportar para cumplimiento
vmware-audit export --format json > audit.json
vmware-audit export --skill vmware-aiops --since 2026-01-01
# Estadísticas agregadas
vmware-audit stats --days 7
vmware-audit stats --days 30
Referencia completa de CLI: consulte
references/cli-reference.md
API de Python
from vmware_policy import vmware_tool, sanitize
# Envolver cada función de herramienta MCP
@vmware_tool(risk_level="high", sensitive_params=["password"])
def delete_segment(name: str, env: str = "") -> dict:
...
# Sanitizar respuestas de API no confiables antes de devolverlas al LLM
clean_text = sanitize(api_response_text, max_len=500)
Herramientas MCP (0)
vmware-policy no expone herramientas MCP. Es una biblioteca Python y CLI consumida por otras habilidades de VMware.
| Componente | Tipo | Descripción |
|---|---|---|
@vmware_tool | Decorador | Envuelve más de 156 herramientas MCP en 8 habilidades |
sanitize() | Función | Defensa contra inyección de prompts para respuestas de API |
AuditEngine | Clase | Registrador de auditoría SQLite WAL con rotación |
PolicyEngine | Clase | Evaluación de reglas YAML con recarga en caliente |
vmware-audit | CLI | CLI Typer para consultar el registro de auditoría |
detect_agent() | Función | Infiere el agente de IA que llama desde variables de entorno (ver más abajo) |
Detección de agente (Nota de transparencia)
La función detect_agent() en audit.py revisa las siguientes variables de entorno para identificar qué agente de IA está llamando a las herramientas. Esto es inspección de solo lectura con fines de registro de auditoría — no se extraen ni almacenan credenciales:
| Variable de entorno | Agente detectado | Propósito |
|---|---|---|
CLAUDE_SESSION_ID o CLAUDE_CODE | claude | Sesión de Claude Code |
OPENAI_API_KEY o CODEX_SESSION | codex | Sesión de OpenAI Codex |
OLLAMA_HOST | local | Modelo local de Ollama |
DEERFLOW_SESSION | deerflow | Sesión de DeerFlow |
| (ninguna coincide) | unknown | Agente no reconocido |
El nombre del agente detectado se almacena en la columna agent de ~/.vmware/audit.db solo con fines de registro de auditoría. No se registran claves API ni tokens.
Solución de problemas
Advertencia "Cannot initialize audit DB"
El directorio de la base de datos de auditoría ~/.vmware/ debe ser escribible. Créelo manualmente: mkdir -p ~/.vmware && chmod 700 ~/.vmware.
Las reglas de políticas no surten efecto
Las reglas se cargan desde ~/.vmware/rules.yaml. Verifique que el archivo exista y contenga YAML válido. PolicyEngine se recarga en caliente al cambiar el archivo — no es necesario reiniciar.
El registro de auditoría crece demasiado
AuditEngine rota automáticamente a 100 MB, manteniendo los 5 archivos más recientes. Para limpieza manual: ls ~/.vmware/audit.*.db para ver los archivos de archivo.
Excepción "PolicyDenied" en la habilidad
Esto significa que una regla de denegación en ~/.vmware/rules.yaml coincidió con la operación. Verifique vmware-audit log --status denied para ver el nombre de la regla y el motivo. Para omitir temporalmente: VMWARE_POLICY_DISABLED=1 (aún se registra como omitido).
El decorador no detecta el nombre de la habilidad
El decorador @vmware_tool infiere el nombre de la habilidad de la ruta del módulo (ej., vmware_aiops.ops.vm_lifecycle -> aiops). Si el módulo no sigue la convención vmware_<skill>, la habilidad se registra como "unknown".
Error "database is locked" de SQLite
Varios procesos de habilidades concurrentes pueden escribir en el mismo audit.db mediante el modo WAL. Si los bloqueos persisten más de 5 segundos, verifique procesos zombies que mantengan el archivo de base de datos.
Configuración
uv tool install vmware-policy
mkdir -p ~/.vmware
vmware-policy se instala automáticamente como dependencia de todas las habilidades de VMware. El directorio
~/.vmware/se crea automáticamente en la primera escritura de auditoría.
Guía de configuración completa, detalles de seguridad e instrucciones de integración: consulte
references/setup-guide.md
Seguridad
- Código fuente: github.com/zw008/VMware-Policy
- Contenido del archivo de configuración:
~/.vmware/rules.yamlcontiene solo definiciones de reglas, sin credenciales - Alcance de datos de webhook: N/A — vmware-policy no envía datos externamente
- Verificación TLS: N/A — vmware-policy no realiza conexiones de red
- Protección contra inyección de prompts:
sanitize()trunca a 500 caracteres y elimina caracteres de control C0/C1 - Mínimo privilegio: La base de datos de auditoría es solo local (
~/.vmware/audit.db), sin exposición a la red