zw008/VMware-Policy

Journalisation d'audit unifiée, application de politiques et assainissement pour les compétences MCP VMware

Qu'est-ce que VMware-Policy ?

Cette compétence constitue la couche d'infrastructure fondamentale pour l'ensemble de la famille de compétences MCP VMware. Elle fournit un moteur d'audit centralisé utilisant SQLite WAL, un moteur de politique pour les règles de refus et les fenêtres de maintenance, une fonction de désinfection `sanitize()` pour se protéger contre les injections de prompts, et le décorateur `@vmware_tool` qui enveloppe automatiquement plus de 156 outils MCP dans huit compétences différentes. La compétence est chargée automatiquement en tant que dépendance, ce qui signifie qu'elle s'active dès qu'un outil VMware est appelé, sans intervention directe de l'utilisateur. Elle expose également une interface en ligne de commande `vmware-audit` pour interroger la piste d'audit, exporter des journaux au format JSON et consulter des statistiques agrégées, ce qui la rend essentielle pour la conformité, le débogage et la gouvernance dans les environnements de production.

Compatible avec✓Claude Code✓Codex CLI~Cursor
npx skills add zw008/VMware-Policy

Installed? Explore more Recherche et analyse de données skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

VMware Policy

Avertissement : Ceci est un projet open source maintenu par la communauté et n'est pas affilié, approuvé ou sponsorisé par VMware, Inc. ou Broadcom Inc. « VMware » et « vSphere » sont des marques de commerce de Broadcom. Le code source est publiquement vérifiable sur github.com/zw008/VMware-Policy sous licence MIT.

Journalisation d'audit unifiée, application de politiques et assainissement des entrées — la couche d'infrastructure pour toute la famille de compétences MCP VMware.

Dépendance d'infrastructure : Les 8 compétences VMware dépendent de vmware-policy. Il est automatiquement installé et fournit le décorateur @vmware_tool, sanitize(), et la base de données d'audit partagée. Famille : vmware-aiops (cycle de vie des VM), vmware-monitor (supervision en lecture seule), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-nsx (réseau NSX), vmware-nsx-security (DFW/pare-feu), vmware-aria (métriques/alertes/capacité), vmware-avi (AVI/ALB/AKO). | vmware-pilot (orchestration de workflows)

Ce que fait cette compétence

CatégorieComposantsNombre
Journalisation d'auditAuditEngine (SQLite WAL), rotation des journaux, détection d'agent3
Moteur de politiquerègles de refus, fenêtres de maintenance, rechargement à chaud3
Assainissementsanitize() — défense contre les injections de prompts, suppression des caractères de contrôle1
Décorateur@vmware_tool — pré-vérification + exécution + post-journalisation + métadonnées1
CLIvmware-audit log, vmware-audit export, vmware-audit stats3

Installation rapide

uv tool install vmware-policy
vmware-audit stats          # vérifier l'installation

vmware-policy est automatiquement installé en tant que dépendance de toutes les compétences VMware. L'installation manuelle n'est nécessaire que pour les requêtes d'audit autonomes.

Quand utiliser cette compétence

  • Interroger la piste d'audit unifiée de toutes les compétences VMware
  • Consulter les opérations refusées et les violations de politique
  • Vérifier les statistiques d'audit (par compétence, par statut, par plage temporelle)
  • Exporter les journaux d'audit au format JSON pour une analyse externe
  • Configurer des règles de refus ou des fenêtres de maintenance
  • Intégrer le décorateur @vmware_tool dans une nouvelle compétence VMware

Cette compétence est automatiquement chargée comme dépendance — vous n'avez pas besoin de l'invoquer directement. Elle s'active lorsque :

  • Une fonction d'outil d'une compétence VMware est appelée (via le décorateur @vmware_tool)
  • L'utilisateur pose des questions sur les journaux d'audit, les opérations refusées ou les règles de politique
  • L'utilisateur exécute des commandes CLI vmware-audit

Compétences associées — Aiguillage des compétences

Intention de l'utilisateurCompétence recommandée
Cycle de vie des VM, déploiement, opérations invitéesvmware-aiops (uv tool install vmware-aiops)
Supervision en lecture seule, risque zérovmware-monitor (uv tool install vmware-monitor)
Stockage : iSCSI, vSAN, datastoresvmware-storage (uv tool install vmware-storage)
Tanzu Kubernetes (vSphere 8.x+)vmware-vks (uv tool install vmware-vks)
Réseau NSX : segments, passerelles, NATvmware-nsx (uv tool install vmware-nsx-mgmt)
Sécurité NSX : règles DFW, groupes de sécuritévmware-nsx-security (uv tool install vmware-nsx-security)
Aria Ops : métriques, alertes, capacitévmware-aria (uv tool install vmware-aria)
Répartiteur de charge, AVI, ALB, AKO, Ingressvmware-avi (uv tool install vmware-avi)
Workflows multi-étapes avec approbationvmware-pilot
Requête de journal d'audit, règles de politiquevmware-policy — cette compétence

Workflows courants

Interroger l'activité d'audit récente

  1. Afficher les 20 dernières entrées d'audit : vmware-audit log --last 20
  2. Filtrer par compétence : vmware-audit log --skill vmware-nsx --last 50
  3. Vérifier les opérations refusées : vmware-audit log --status denied --since 2026-03-28
  4. Afficher les statistiques agrégées : vmware-audit stats --days 7

Configurer des règles de politique pour la production

  1. Copier les règles par défaut : cp $(python -c "import vmware_policy; print(vmware_policy.__file__.replace('__init__.py','rules_default.yaml'))") ~/.vmware/rules.yaml
  2. Modifier ~/.vmware/rules.yaml — ajouter des règles de refus pour la production :
    deny:
      - name: no-delete-in-prod
        operations: ["delete_*", "cluster_delete"]
        environments: ["production"]
        reason: "Opérations destructrices bloquées en production"
    maintenance_window:
      start: "22:00"
      end: "06:00"
    
  3. Les règles se rechargent automatiquement à chaud — aucun redémarrage nécessaire
  4. Vérifier : vmware-audit log --status denied pour voir les opérations bloquées

Exporter les journaux d'audit pour la conformité

  1. Exporter tous les journaux au format JSON : vmware-audit export --format json > audit-export.json
  2. Filtrer par compétence : vmware-audit export --skill vmware-aiops --since 2026-01-01
  3. Importer dans votre SIEM ou outil de conformité

Mode d'utilisation

ScénarioRecommandéPourquoi
Interroger les journaux d'auditCLIvmware-audit fournit une sortie tabulaire riche
Intégrer dans une compétenceAPI Pythonfrom vmware_policy import vmware_tool, sanitize
Export automatisé de conformitéCLIvmware-audit export --format json se dirige vers n'importe quel outil

Référence rapide de la CLI

# Afficher les entrées d'audit récentes
vmware-audit log --last 20
vmware-audit log --skill vmware-nsx --status denied
vmware-audit log --since 2026-03-28 --tool delete_segment

# Exporter pour la conformité
vmware-audit export --format json > audit.json
vmware-audit export --skill vmware-aiops --since 2026-01-01

# Statistiques agrégées
vmware-audit stats --days 7
vmware-audit stats --days 30

Référence complète de la CLI : voir references/cli-reference.md

API Python

from vmware_policy import vmware_tool, sanitize

# Envelopper chaque fonction d'outil MCP
@vmware_tool(risk_level="high", sensitive_params=["password"])
def delete_segment(name: str, env: str = "") -> dict:
    ...

# Assainir les réponses API non fiables avant de les renvoyer au LLM
clean_text = sanitize(api_response_text, max_len=500)

Outils MCP (0)

vmware-policy n'expose pas d'outils MCP. C'est une bibliothèque Python et une CLI consommées par les autres compétences VMware.

ComposantTypeDescription
@vmware_toolDécorateurEnveloppe les 156+ outils MCP dans 8 compétences
sanitize()FonctionDéfense contre les injections de prompts pour les réponses API
AuditEngineClasseJournal d'audit SQLite WAL avec rotation
PolicyEngineClasseÉvaluation de règles YAML avec rechargement à chaud
vmware-auditCLICLI Typer pour interroger la piste d'audit
detect_agent()FonctionDéduit l'agent AI appelant à partir des variables d'environnement (voir ci-dessous)

Détection d'agent (Note de transparence)

La fonction detect_agent() dans audit.py vérifie les variables d'environnement suivantes pour identifier quel agent AI appelle les outils. Il s'agit d'une inspection en lecture seule à des fins de journalisation d'audit — aucune information d'identification n'est extraite ou stockée :

Variable d'environnementAgent détectéObjectif
CLAUDE_SESSION_ID ou CLAUDE_CODEclaudeSession Claude Code
OPENAI_API_KEY ou CODEX_SESSIONcodexSession OpenAI Codex
OLLAMA_HOSTlocalModèle Ollama local
DEERFLOW_SESSIONdeerflowSession DeerFlow
(aucune correspondance)unknownAgent non reconnu

Le nom de l'agent détecté est stocké dans la colonne agent de ~/.vmware/audit.db à des fins de piste d'audit uniquement. Aucune clé API ou jeton n'est journalisé.

Dépannage

Avertissement « Cannot initialize audit DB »

Le répertoire de la base de données d'audit ~/.vmware/ doit être accessible en écriture. Créez-le manuellement : mkdir -p ~/.vmware && chmod 700 ~/.vmware.

Les règles de politique ne s'appliquent pas

Les règles sont chargées depuis ~/.vmware/rules.yaml. Vérifiez que le fichier existe et contient du YAML valide. Le PolicyEngine se recharge à chaud en cas de modification du fichier — aucun redémarrage nécessaire.

Le journal d'audit devient trop volumineux

Le AuditEngine effectue automatiquement une rotation à 100 Mo, en conservant les 5 archives les plus récentes. Pour un nettoyage manuel : ls ~/.vmware/audit.*.db pour voir les archives.

Exception « PolicyDenied » dans la compétence

Cela signifie qu'une règle de refus dans ~/.vmware/rules.yaml a correspondu à l'opération. Vérifiez vmware-audit log --status denied pour voir le nom de la règle et la raison. Pour contourner temporairement : VMWARE_POLICY_DISABLED=1 (toujours journalisé comme contourné).

Le décorateur ne détecte pas le nom de la compétence

Le décorateur @vmware_tool déduit le nom de la compétence à partir du chemin du module (par exemple, vmware_aiops.ops.vm_lifecycle -> aiops). Si le module ne suit pas la convention vmware_<skill>, la compétence est journalisée comme « unknown ».

Erreur SQLite « database is locked »

Plusieurs processus de compétence simultanés peuvent écrire dans le même audit.db via le mode WAL. Si les verrous persistent au-delà de 5 secondes, vérifiez la présence de processus zombies qui maintiennent le fichier de base de données.

Configuration

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

vmware-policy est automatiquement installé en tant que dépendance de toutes les compétences VMware. Le répertoire ~/.vmware/ est créé automatiquement lors de la première écriture d'audit.

Guide de configuration complet, détails de sécurité et instructions d'intégration : voir references/setup-guide.md

Sécurité

  • Code source : github.com/zw008/VMware-Policy
  • Contenu du fichier de configuration : ~/.vmware/rules.yaml contient uniquement des définitions de règles, pas d'informations d'identification
  • Portée des données webhook : N/A — vmware-policy n'envoie pas de données en externe
  • Vérification TLS : N/A — vmware-policy n'établit pas de connexions réseau
  • Protection contre les injections de prompts : sanitize() tronque à 500 caractères et supprime les caractères de contrôle C0/C1
  • Privilège minimum : La base de données d'audit est locale uniquement (~/.vmware/audit.db), aucune exposition réseau

Licence

MIT — github.com/zw008/VMware-Policy

Skills associés