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 |
| ポリシーエンジン | 拒否ルール, メンテナンスウィンドウ, ホットリロード | 3 |
| サニタイズ | sanitize() — プロンプトインジェクション防御, 制御文字除去 | 1 |
| デコレータ | @vmware_tool — プリチェック + 実行 + ポストログ + メタデータ | 1 |
| CLI | vmware-audit log, vmware-audit export, vmware-audit stats | 3 |
クイックインストール
uv tool install vmware-policy
vmware-audit stats # インストールの確認
vmware-policyはすべてのVMwareスキルの依存関係として自動インストールされます。手動インストールはスタンドアロンでの監査クエリにのみ必要です。
このスキルを使用するタイミング
- 全VMwareスキルにわたる統合監査証跡をクエリする
- 拒否された操作とポリシー違反を表示する
- 監査統計を確認する(スキル別、ステータス別、時間範囲別)
- 監査ログをJSONとしてエクスポートし、外部分析を行う
- 拒否ルールまたはメンテナンスウィンドウを設定する
@vmware_toolデコレータを新しいVMwareスキルに統合する
このスキルは依存関係として自動ロードされます — 直接呼び出す必要はありません。以下の場合にアクティブになります:
- 任意のVMwareスキルツール関数が呼び出された場合(
@vmware_toolデコレータ経由) - ユーザーが監査ログ、拒否された操作、またはポリシールールについて質問した場合
- ユーザーが
vmware-auditCLIコマンドを実行した場合
関連スキル — スキルルーティング
| ユーザーの意図 | 推奨スキル |
|---|---|
| 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ネットワーキング: セグメント、ゲートウェイ、NAT | vmware-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、Ingress | vmware-avi (uv tool install vmware-avi) |
| 承認付きマルチステップワークフロー | vmware-pilot |
| 監査ログクエリ、ポリシールール | vmware-policy — このスキル |
一般的なワークフロー
最近の監査アクティビティをクエリする
- 最新20件の監査エントリを表示:
vmware-audit log --last 20 - スキルでフィルタ:
vmware-audit log --skill vmware-nsx --last 50 - 拒否された操作を確認:
vmware-audit log --status denied --since 2026-03-28 - 集計統計を表示:
vmware-audit stats --days 7
本番環境用のポリシールールを設定する
- デフォルトルールをコピー:
cp $(python -c "import vmware_policy; print(vmware_policy.__file__.replace('__init__.py','rules_default.yaml'))") ~/.vmware/rules.yaml ~/.vmware/rules.yamlを編集 — 本番環境用の拒否ルールを追加:deny: - name: no-delete-in-prod operations: ["delete_*", "cluster_delete"] environments: ["production"] reason: "破壊的操作は本番環境でブロックされています" maintenance_window: start: "22:00" end: "06:00"- ルールは自動的にホットリロード — 再起動不要
- 確認:
vmware-audit log --status deniedでブロックされた操作を表示
コンプライアンス用に監査ログをエクスポートする
- すべてのログをJSONとしてエクスポート:
vmware-audit export --format json > audit-export.json - スキルでフィルタ:
vmware-audit export --skill vmware-aiops --since 2026-01-01 - SIEMまたはコンプライアンスツールにインポート
使用モード
| シナリオ | 推奨 | 理由 |
|---|---|---|
| 監査ログのクエリ | CLI | vmware-audit はリッチなテーブル出力を提供 |
| スキルへの統合 | Python API | from vmware_policy import vmware_tool, sanitize |
| 自動コンプライアンスエクスポート | CLI | vmware-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-audit | CLI | 監査証跡をクエリするためのTyper CLI |
detect_agent() | 関数 | 環境変数から呼び出し元のAIエージェントを推測(以下参照) |
エージェント検出(透明性に関する注意)
audit.pyのdetect_agent()関数は、以下の環境変数をチェックして、どのAIエージェントがツールを呼び出しているかを識別します。これは監査ログ記録のための読み取り専用の検査であり、認証情報は抽出も保存もされません:
| 環境変数 | 検出されるエージェント | 目的 |
|---|---|---|
CLAUDE_SESSION_ID または CLAUDE_CODE | claude | Claude Codeセッション |
OPENAI_API_KEY または CODEX_SESSION | codex | OpenAI Codexセッション |
OLLAMA_HOST | local | ローカルOllamaモデル |
DEERFLOW_SESSION | deerflow | DeerFlowセッション |
| (一致なし) | 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にはルール定義のみが含まれ、認証情報は含まれません - Webhookデータの範囲: N/A — vmware-policyはデータを外部に送信しません
- TLS検証: N/A — vmware-policyはネットワーク接続を行いません
- プロンプトインジェクション保護:
sanitize()は500文字に切り詰め、C0/C1制御文字を除去します - 最小権限: 監査データベースはローカルのみ(
~/.vmware/audit.db)、ネットワーク公開はありません