Community연구 & 데이터 분석github.com

zw008/VMware-Policy

VMware MCP 스킬들을 위한 통합 감사 로깅, 정책 적용 및 입력 정화 라이브러리입니다.

VMware-Policy란 무엇인가요?

이 스킬은 VMware MCP 스킬 제품군 전체의 인프라 계층 역할을 하는 Python 라이브러리이자 CLI 도구입니다. `@vmware_tool` 데코레이터, `sanitize()` 함수, 공유 감사 데이터베이스를 제공하여 8개의 VMware 스킬(aiops, monitor, storage, vks, nsx, nsx-security, aria, avi)이 일관된 감사 및 정책 기능을 사용할 수 있도록 합니다. 주요 기능은 SQLite WAL 기반 감사 엔진(AuditEngine), YAML 기반 정책 엔진(PolicyEngine, 핫 리로드 지원), 프롬프트 인젝션 방어를 위한 입력 정화, 그리고 `vmware-audit` CLI를 통한 감사 로그 쿼리 및 내보내기입니다. 이 스킬은 종속성으로 자동 설치되며, 사용자가 직접 호출할 필요 없이 VMware 스킬의 도구가 호출될 때 자동으로 활성화되어 모든 작업을 기록하고 정책을 적용합니다.

지원 대상✓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에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

VMware Policy

면책 조항: 이는 커뮤니티 유지 관리 오픈 소스 프로젝트이며 VMware, Inc. 또는 Broadcom Inc.와 제휴, 보증 또는 후원되지 않습니다. "VMware" 및 "vSphere"는 Broadcom의 상표입니다. 소스 코드는 MIT 라이선스 하에 github.com/zw008/VMware-Policy에서 공개 감사 가능합니다.

모든 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
정책 엔진거부 규칙, 유지 관리 기간, 핫 리로드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 형식으로 감사 로그 내보내기
  • 거부 규칙 또는 유지 관리 기간 구성
  • 새 VMware 스킬에 @vmware_tool 데코레이터 통합

이 스킬은 종속성으로 자동 로드됩니다 -- 직접 호출할 필요가 없습니다. 다음 경우에 활성화됩니다:

  • 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:
      - 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 도구를 노출하지 않습니다. 다른 VMware 스킬이 사용하는 Python 라이브러리 및 CLI입니다.

구성 요소유형설명
@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 키나 토큰은 기록되지 않습니다.

문제 해결

"Cannot initialize audit DB" 경고

감사 데이터베이스 디렉토리 ~/.vmware/는 쓰기 가능해야 합니다. 수동으로 생성하십시오: mkdir -p ~/.vmware && chmod 700 ~/.vmware.

정책 규칙이 적용되지 않음

규칙은 ~/.vmware/rules.yaml에서 로드됩니다. 파일이 존재하고 유효한 YAML인지 확인하십시오. PolicyEngine은 파일 변경 시 핫 리로드되며 -- 재시작이 필요하지 않습니다.

감사 로그가 너무 커짐

AuditEngine은 자동으로 100MB에서 순환하며 가장 최근 5개의 아카이브를 유지합니다. 수동 정리: ls ~/.vmware/audit.*.db로 아카이브 확인.

스킬에서 "PolicyDenied" 예외 발생

이는 ~/.vmware/rules.yaml의 거부 규칙이 작업과 일치했음을 의미합니다. vmware-audit log --status denied로 규칙 이름과 이유를 확인하십시오. 임시 우회: VMWARE_POLICY_DISABLED=1 (여전히 우회된 것으로 기록됨).

데코레이터가 스킬 이름을 감지하지 못함

@vmware_tool 데코레이터는 모듈 경로에서 스킬 이름을 추론합니다 (예: vmware_aiops.ops.vm_lifecycle -> aiops). 모듈이 vmware_<skill> 규칙을 따르지 않으면 스킬이 "unknown"으로 기록됩니다.

SQLite "database is locked" 오류

여러 동시 스킬 프로세스가 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에는 규칙 정의만 포함되며 자격 증명은 포함되지 않습니다.
  • 웹훅 데이터 범위: 해당 없음 -- vmware-policy는 데이터를 외부로 전송하지 않습니다.
  • TLS 검증: 해당 없음 -- vmware-policy는 네트워크 연결을 만들지 않습니다.
  • 프롬프트 인젝션 보호: sanitize()는 500자로 자르고 C0/C1 제어 문자를 제거합니다.
  • 최소 권한: 감사 데이터베이스는 로컬 전용(~/.vmware/audit.db)이며 네트워크에 노출되지 않습니다.

라이선스

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

관련 스킬