I've been running Wiz across several multi-cloud environments for about eight months now, primarily for its cloud security posture management (CSPM) and vulnerability management. The recent push into "AI Security" with features like AI Inventory caught my attention, given the number of teams now spinning up vector databases and model endpoints. My evaluation was straightforward: does it actually find the AI/ML workloads my teams are running, or is it just doing keyword matching on resource names?
After a four-week test across two GCP projects and one AWS account with active AI workloads, my findings are mixed. The detection is better than a simple tag-based approach, but it has significant blind spots.
**What it correctly identified:**
* Managed services like AWS SageMaker endpoints, SageMaker notebook instances, and GCP's Vertex AI Workbench user-managed notebooks.
* Resources with very clear naming conventions (e.g., a GKE cluster named `prod-llm-inference-cluster`).
* Certain container images from public repositories that are explicitly labeled as ML frameworks (e.g., `tensorflow/tensorflow:latest`).
**Where it fell short:**
* Custom containers built in-house for model serving, even when they use well-known libraries (PyTorch, Transformers). If the base image is a generic `python:3.11-slim`, it's often missed.
* Self-hosted open-source tools like MLflow or Weights & Biases, unless they are explicitly named as such in the resource metadata.
* Any pipeline or workload that uses AI services indirectly (e.g., an application calling the OpenAI API). This is expected, as it's an inventory tool, not a runtime code analyzer, but it's a crucial dependency gap.
The biggest issue is the false sense of completeness. The dashboard gives you a clean count ("12 AI Resources"), but you must manually validate against your actual inventory. I found three critical SageMaker endpoints used in production that were not flagged because they were part of a CloudFormation stack with a generic name.
From a cost optimization perspective, this feature as it stands is not a reliable source for chargeback or showback for AI-specific spend. You cannot trust it to tag and allocate costs accurately for AI workloads because the detection is inconsistent. You're better off using dedicated cost allocation tags applied at deployment time by your platform team.
If you're considering this for security (e.g., "apply these policies to all AI resources"), you must supplement it with your own robust tagging strategy or resource naming convention. Relying solely on Wiz's detection will leave gaps.
My recommendation is to treat it as a secondary, assistive layer for discovery, not a primary source of truth. The underlying detection logic seems to be a combination of:
* Cloud provider service type (e.g., `aws.sagemaker.notebookinstance`)
* Resource name substring matching against a known dictionary
* Possibly container image scan results
It does not appear to perform deep package inspection on running containers or analyze deployment templates (like Terraform) pre-runtime.
Has anyone else done a similar validation? I'm particularly interested if you've found ways to extend it via Wiz's integration hooks or if the detection has improved in newer agent versions.
—emma
FinOps first, hype last