AI inventory and spend
See the AI resources every cloud holds, how they're configured, and what AI costs you, model by model.
AssetHermit collects the AI resources of your AWS, Google Cloud and Azure accounts with the asset sources you already connect: no new source, no new permission. They're ordinary assets, so you search them, see their changes and get findings on them like any other, and the AI page brings them together with what AI costs.
AI resource types
Each cloud's AI resources map to seven types, so one filter finds them on every cloud.
| Type | AWS | Azure | GCP |
|---|---|---|---|
AI modelai.model | Bedrock custom and imported models, SageMaker models | Not collected | Vertex AI models |
AI endpointai.endpoint | SageMaker endpoints, Bedrock provisioned throughput and application inference profiles | Azure OpenAI and Azure AI services accounts | Vertex AI endpoints and index endpoints |
AI agentai.agent | Bedrock agents | Not collected | Vertex AI Agent Engine |
AI guardrailai.guardrail | Bedrock guardrails | Not collected | Not collected |
Knowledge baseai.knowledge-base | Bedrock knowledge bases | Not collected | Vertex AI Vector Search indexes |
Notebookai.notebook | SageMaker notebook instances and apps | Not collected | Vertex AI Workbench instances, Colab Enterprise runtimes |
AI studioai.studio | SageMaker domains | Azure Machine Learning workspaces, Foundry hubs and projects | Not collected |
- Bedrock's model invocation logging configuration is collected for each region as a trail, so the rules can check that logging is on. It's read only in regions where the account holds a Bedrock resource.
- SageMaker HyperPod clusters are collected as a container cluster.
- Foundation models, such as the ones Bedrock and Vertex AI offer, are the providers' catalogs, not your resources. What uses one names it in its own properties.
- Other Vertex AI resources, such as jobs, datasets and pipelines, are kept with their cloud's own type.
Searching AI resources
$type:ai.* finds every AI resource, and $type:ai.notebook $provider:aws only SageMaker's notebooks. See the query language.
What isn't read
AssetHermit reads how your AI resources are configured, never what goes through them: no prompts, model answers, invocation logs or token counts. A Bedrock agent's instructions are dropped when it's collected, so they're never stored.
AI rules
21 of the audit rules check AI resources: logging off, an agent without a guardrail, notebooks with internet or root access, endpoints and accounts open to the internet or signing in with keys, and no customer managed key. Each has a guide to what it means and how to fix it.
Amazon Web Services (13)
| Rule | Severity | Category |
|---|---|---|
Bedrock agent has no guardrailaws.bedrock.agent.no-guardrail | High | Security |
SageMaker notebook instance has direct internet accessaws.sagemaker.notebook-instance.direct-internet-access | High | Security |
Bedrock guardrail doesn't filter prompt attacksaws.bedrock.guardrail.no-prompt-attack-filter | Medium | Security |
Bedrock model invocation logging is offaws.bedrock.model-invocation-logging-configuration.disabled | Medium | Security |
SageMaker domain's apps reach the internet directlyaws.sagemaker.domain.public-internet | Medium | Security |
SageMaker notebook instance gives its users rootaws.sagemaker.notebook-instance.root-access | Medium | Security |
SageMaker notebook instance isn't in a VPCaws.sagemaker.notebook-instance.not-in-vpc | Medium | Security |
Bedrock agent isn't encrypted with a customer managed keyaws.bedrock.agent.no-customer-key | Low | Security |
Bedrock custom model isn't encrypted with a customer managed keyaws.bedrock.custom-model.no-customer-key | Low | Security |
Bedrock knowledge base failedaws.bedrock.knowledge-base.failed | Low | Configuration |
Bedrock provisioned throughput failedaws.bedrock.provisioned-model-throughput.failed | Low | Configuration |
SageMaker endpoint isn't encrypted with a customer managed keyaws.sagemaker.endpoint.no-customer-key | Low | Security |
SageMaker notebook instance isn't encrypted with a customer managed keyaws.sagemaker.notebook-instance.no-customer-key | Low | Security |
Google Cloud (3)
| Rule | Severity | Category |
|---|---|---|
Vertex AI endpoint is reachable from the internetgcp.aiplatform.endpoint.public | Medium | Security |
Workbench instance has a public IP addressgcp.notebooks.instance.public-ip | Medium | Security |
Vertex AI endpoint isn't encrypted with a customer-managed keygcp.aiplatform.endpoint.no-customer-key | Low | Security |
Microsoft Azure (5)
| Rule | Severity | Category |
|---|---|---|
AI services account accepts API keysazure.cognitiveservices.account.local-auth-enabled | High | Security |
AI services account is open to the internetazure.cognitiveservices.account.public-network-access | High | Security |
Machine Learning workspace is reachable from the internetazure.machinelearningservices.workspace.public-network-access | Medium | Security |
AI services account isn't encrypted with a customer-managed keyazure.cognitiveservices.account.no-customer-key | Low | Security |
Machine Learning workspace isn't encrypted with a customer-managed keyazure.machinelearningservices.workspace.no-customer-key | Low | Security |
AI spend
AI spend comes from the cost sources you connect, from what your bills already say: nothing more is read from your clouds. In cost reports, the Service category filter's AI and Machine Learning keeps only AI services:
- AWS: Bedrock and the models it bills, SageMaker, Amazon Q, and AWS's AI services such as Comprehend, Rekognition, Textract, Transcribe, Polly, Translate, Kendra, Lex, Personalize, Forecast and Fraud Detector.
- Google Cloud: Vertex AI, the Gemini API, the Vision, Natural Language, Translation, Speech and Video Intelligence APIs, Document AI, Dialogflow and Contact Center AI.
- Azure: Azure OpenAI, Azure AI services and Foundry, Azure Machine Learning, Cognitive Services and Azure Bot Service.
Group a report by Model to see what each model costs, from models by Anthropic, Amazon, Google, OpenAI, Meta, Mistral AI, Cohere and DeepSeek. Each bill row is named by the model its service or usage type names. A row that names no model groups under its service as "Model not named". Only cost is reported, not tokens.
AI spend by model is in beta.
Budgets, cost allocation rules and the assistant take the service category and the model group like any other filter and grouping.
The AI page
Each workspace has an AI page with:
- Its AI resources by type and cloud, each opening in the inventory.
- The AI rules' open findings, most severe first.
- For members who see costs, the last 30 days of AI spend by model, opening in cost reports, and the accounts with AI spend but no AI resource in the inventory. Those are usually on-demand model calls, which leave no resource behind, or services AssetHermit doesn't collect.
Asking the assistant
The assistant knows which AI resources are collected, what the AI rules check and how AI spend is worked out. Ask the assistant on the AI page starts a conversation about your AI inventory, such as "What AI do we run, and what needs attention?", and it reports AI spend by model with the same filter and grouping as cost reports. AI clients connected through MCP can ask the same.