VMware Policy
Aviso: Este é um projeto open-source mantido pela comunidade e não é afiliado, endossado ou patrocinado pela VMware, Inc. ou Broadcom Inc. "VMware" e "vSphere" são marcas registradas da Broadcom. O código-fonte é publicamente auditável em github.com/zw008/VMware-Policy sob licença MIT.
Auditoria unificada, aplicação de políticas e sanitização de entrada — a camada de infraestrutura para toda a família de skills MCP da VMware.
Dependência de infraestrutura: Todos os 8 skills VMware dependem do vmware-policy. Ele é instalado automaticamente e fornece o decorador
@vmware_tool, a funçãosanitize()e o banco de auditoria compartilhado. Família: vmware-aiops (ciclo de vida de VMs), vmware-monitor (monitoramento somente leitura), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-nsx (redes NSX), vmware-nsx-security (DFW/firewall), vmware-aria (métricas/alarmes/capacidade), vmware-avi (AVI/ALB/AKO). | vmware-pilot (orquestração de workflows)
O Que Este Skill Faz
| Categoria | Componentes | Contagem |
|---|---|---|
| Auditoria | AuditEngine (SQLite WAL), rotação de logs, detecção de agente | 3 |
| Mecanismo de Políticas | regras de negação, janelas de manutenção, recarga automática | 3 |
| Sanitização | sanitize() — defesa contra injeção de prompt, remoção de caracteres de controle | 1 |
| Decorador | @vmware_tool — pré-verificação + execução + pós-log + metadados | 1 |
| CLI | vmware-audit log, vmware-audit export, vmware-audit stats | 3 |
Instalação Rápida
uv tool install vmware-policy
vmware-audit stats # verificar instalação
O vmware-policy é instalado automaticamente como dependência de todos os skills VMware. A instalação manual é necessária apenas para consultas de auditoria independentes.
Quando Usar Este Skill
- Consultar a trilha de auditoria unificada em todos os skills VMware
- Visualizar operações negadas e violações de política
- Verificar estatísticas de auditoria (por skill, por status, por intervalo de tempo)
- Exportar logs de auditoria como JSON para análise externa
- Configurar regras de negação ou janelas de manutenção
- Integrar o decorador
@vmware_toolem um novo skill VMware
Este skill é carregado automaticamente como dependência — você não precisa invocá-lo diretamente. Ele é ativado quando:
- Qualquer função de ferramenta de skill VMware é chamada (via decorador
@vmware_tool) - O usuário pergunta sobre logs de auditoria, operações negadas ou regras de política
- O usuário executa comandos CLI
vmware-audit
Skills Relacionados — Roteamento de Skills
| Intenção do Usuário | Skill Recomendado |
|---|---|
| Ciclo de vida de VMs, implantação, operações convidadas | vmware-aiops (uv tool install vmware-aiops) |
| Monitoramento somente leitura, risco zero | vmware-monitor (uv tool install vmware-monitor) |
| Armazenamento: iSCSI, vSAN, datastores | vmware-storage (uv tool install vmware-storage) |
| Tanzu Kubernetes (vSphere 8.x+) | vmware-vks (uv tool install vmware-vks) |
| Redes NSX: segmentos, gateways, NAT | vmware-nsx (uv tool install vmware-nsx-mgmt) |
| Segurança NSX: regras DFW, grupos de segurança | vmware-nsx-security (uv tool install vmware-nsx-security) |
| Aria Ops: métricas, alarmes, capacidade | vmware-aria (uv tool install vmware-aria) |
| Balanceador de carga, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) |
| Workflows multi-etapas com aprovação | vmware-pilot |
| Consulta de log de auditoria, regras de política | vmware-policy — este skill |
Workflows Comuns
Consultar Atividade Recente de Auditoria
- Visualizar últimas 20 entradas de auditoria:
vmware-audit log --last 20 - Filtrar por skill:
vmware-audit log --skill vmware-nsx --last 50 - Verificar operações negadas:
vmware-audit log --status denied --since 2026-03-28 - Visualizar estatísticas agregadas:
vmware-audit stats --days 7
Configurar Regras de Política para Produção
- Copiar regras padrão:
cp $(python -c "import vmware_policy; print(vmware_policy.__file__.replace('__init__.py','rules_default.yaml'))") ~/.vmware/rules.yaml - Editar
~/.vmware/rules.yaml— adicionar regras de negação para produção:deny: - name: no-delete-in-prod operations: ["delete_*", "cluster_delete"] environments: ["production"] reason: "Operações destrutivas bloqueadas em produção" maintenance_window: start: "22:00" end: "06:00" - Regras recarregam automaticamente — sem necessidade de reinicialização
- Verificar:
vmware-audit log --status deniedpara ver operações bloqueadas
Exportar Logs de Auditoria para Conformidade
- Exportar todos os logs como JSON:
vmware-audit export --format json > audit-export.json - Filtrar por skill:
vmware-audit export --skill vmware-aiops --since 2026-01-01 - Importar para seu SIEM ou ferramenta de conformidade
Modo de Uso
| Cenário | Recomendado | Por quê |
|---|---|---|
| Consultar logs de auditoria | CLI | vmware-audit fornece saída rica em tabelas |
| Integrar em um skill | API Python | from vmware_policy import vmware_tool, sanitize |
| Exportação automatizada de conformidade | CLI | vmware-audit export --format json canaliza para qualquer ferramenta |
Referência Rápida do CLI
# Visualizar entradas recentes de auditoria
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 conformidade
vmware-audit export --format json > audit.json
vmware-audit export --skill vmware-aiops --since 2026-01-01
# Estatísticas agregadas
vmware-audit stats --days 7
vmware-audit stats --days 30
Referência completa do CLI: consulte
references/cli-reference.md
API Python
from vmware_policy import vmware_tool, sanitize
# Encapsular toda função de ferramenta MCP
@vmware_tool(risk_level="high", sensitive_params=["password"])
def delete_segment(name: str, env: str = "") -> dict:
...
# Sanitizar respostas de API não confiáveis antes de retornar ao LLM
clean_text = sanitize(api_response_text, max_len=500)
Ferramentas MCP (0)
O vmware-policy não expõe ferramentas MCP. É uma biblioteca Python e CLI consumida por outros skills VMware.
| Componente | Tipo | Descrição |
|---|---|---|
@vmware_tool | Decorador | Encapsula todas as 156+ ferramentas MCP em 8 skills |
sanitize() | Função | Defesa contra injeção de prompt para respostas de API |
AuditEngine | Classe | Registrador de auditoria SQLite WAL com rotação |
PolicyEngine | Classe | Avaliação de regras YAML com recarga automática |
vmware-audit | CLI | CLI Typer para consultar trilha de auditoria |
detect_agent() | Função | Infere o agente de IA chamador a partir de variáveis de ambiente (veja abaixo) |
Detecção de Agente (Nota de Transparência)
A função detect_agent() em audit.py verifica as seguintes variáveis de ambiente para identificar qual agente de IA está chamando as ferramentas. Esta é uma inspeção somente leitura para fins de registro de auditoria — nenhuma credencial é extraída ou armazenada:
| Variável de Ambiente | Agente Detectado | Propósito |
|---|---|---|
CLAUDE_SESSION_ID ou CLAUDE_CODE | claude | Sessão do Claude Code |
OPENAI_API_KEY ou CODEX_SESSION | codex | Sessão do OpenAI Codex |
OLLAMA_HOST | local | Modelo local Ollama |
DEERFLOW_SESSION | deerflow | Sessão do DeerFlow |
| (nenhuma correspondência) | unknown | Agente não reconhecido |
O nome do agente detectado é armazenado na coluna agent do banco ~/.vmware/audit.db apenas para fins de trilha de auditoria. Nenhuma chave de API ou token é registrado.
Solução de Problemas
Aviso "Cannot initialize audit DB"
O diretório do banco de auditoria ~/.vmware/ deve ser gravável. Crie-o manualmente: mkdir -p ~/.vmware && chmod 700 ~/.vmware.
Regras de política não estão sendo aplicadas
As regras são carregadas de ~/.vmware/rules.yaml. Verifique se o arquivo existe e contém YAML válido. O PolicyEngine recarrega automaticamente na mudança do arquivo — sem necessidade de reinicialização.
Log de auditoria crescendo demais
O AuditEngine faz rotação automática a 100 MB, mantendo os 5 arquivos mais recentes. Para limpeza manual: ls ~/.vmware/audit.*.db para ver os arquivos.
Exceção "PolicyDenied" no skill
Isso significa que uma regra de negação em ~/.vmware/rules.yaml correspondeu à operação. Verifique vmware-audit log --status denied para ver o nome da regra e o motivo. Para ignorar temporariamente: VMWARE_POLICY_DISABLED=1 (ainda registrado como ignorado).
Decorador não detectando nome do skill
O decorador @vmware_tool infere o nome do skill a partir do caminho do módulo (ex.: vmware_aiops.ops.vm_lifecycle -> aiops). Se o módulo não seguir a convenção vmware_<skill>, o skill é registrado como "unknown".
Erro SQLite "database is locked"
Vários processos de skill simultâneos podem escrever no mesmo audit.db via modo WAL. Se os bloqueios persistirem por mais de 5 segundos, verifique se há processos zumbis segurando o arquivo do banco.
Configuração
uv tool install vmware-policy
mkdir -p ~/.vmware
O vmware-policy é instalado automaticamente como dependência de todos os skills VMware. O diretório
~/.vmware/é criado automaticamente na primeira gravação de auditoria.
Guia completo de configuração, detalhes de segurança e instruções de integração: consulte
references/setup-guide.md
Segurança
- Código-fonte: github.com/zw008/VMware-Policy
- Conteúdo do Arquivo de Configuração:
~/.vmware/rules.yamlcontém apenas definições de regras, nenhuma credencial - Escopo de Dados do Webhook: N/A — vmware-policy não envia dados externamente
- Verificação TLS: N/A — vmware-policy não faz conexões de rede
- Proteção contra Injeção de Prompt:
sanitize()trunca para 500 caracteres e remove caracteres de controle C0/C1 - Privilégio Mínimo: Banco de auditoria é local apenas (
~/.vmware/audit.db), sem exposição de rede