Zms Review Tag Classification

by zscaler809f68d6c921No licenseListed Oct 8, 2026Updated Oct 8, 2026

Review Zscaler Microsegmentation (ZMS) tag classification, application discovery, and tag-to-resource-group mapping. Investigates tag namespaces (CUSTOM, EXTERNAL, ML), tag keys and values, application catalog entries, and how tags drive managed resource group membership. Use when an administrator asks: 'Show me our tag structure', 'What cloud tags are imported?', 'How are resource groups using tags?', 'What applications were discovered?', 'Review tag classification', or 'Are ML tags being used?'

Instructions onlySecurity
AI-generated overview

Reviews Zscaler Microsegmentation tag classification, application discovery, and tag-driven resource group membership.

What it does
Guides an administrator through a five-step read-only review of ZMS tag namespaces, keys and values, the discovered application catalog, and how tags determine managed resource group membership. It produces a structured tag classification and application discovery report with tables, findings, and prioritized recommendations. It also covers edge cases such as empty tag namespaces or an empty application catalog.
When to use it
Use when an administrator wants to inspect tag structure, verify imported cloud tags, assess ML tag adoption, audit tag naming conventions, review discovered applications, or troubleshoot tag-driven resource group membership.
Requirements
Requires the ZSCALER_CUSTOMER_ID environment variable and access to the ZMS MCP query tools (tag, application catalog, and resource group queries). All current MCP tools are read-only; ML tag recommendation management is not exposed through MCP. Ships no scripts.

ZMS: Review Tag Classification & Application Discovery

Keywords

tags, tag namespaces, tag keys, tag values, application catalog, app catalog, resource groups, managed groups, workload classification, cloud tags, ML tags, custom tags, EXTERNAL, CUSTOM, ML, application discovery, tag hierarchy, resource grouping

Overview

Review the tag classification hierarchy, application catalog discoveries, and how tags drive dynamic resource group membership in Zscaler Microsegmentation. Tags are the foundation of automated workload classification — they determine which workloads belong to which managed resource groups, which in turn are referenced by segmentation policy rules.

The tag system has three levels: namespace → key → value. Tag namespaces indicate the origin of the tags:

  • EXTERNAL: Imported from cloud providers (AWS, Azure, GCP) — e.g., instance tags, labels, resource metadata
  • CUSTOM: Created by administrators in the ZMS console for organization-specific classification
  • ML: Machine-learning discovered tags based on observed traffic patterns and workload behavior
  • UNKNOWN: Tags that don't fit the other categories

The Application Catalog tracks applications discovered by microsegmentation agents on workloads — identified by process name, protocol, port, and category. These discoveries inform tag recommendations and help administrators understand what's running in their environment.

Use this skill when: An administrator needs to review how workloads are classified, verify cloud tag imports, assess ML tag adoption, audit tag naming conventions, understand application discovery state, or troubleshoot resource group membership driven by tags.

Important:

  • All ZMS tools require ZSCALER_CUSTOMER_ID to be set as an environment variable.
  • All current MCP tools are read-only (Query operations).
  • The ZMS API supports ML Tag Recommendations (accept/ignore/delete ML-suggested tags) but this is not yet exposed through MCP tools.

Workflow

Follow this 5-step process for a complete tag classification review.

Step 1: Map the Tag Namespace Landscape

List all tag namespaces:

text
zms_list_tag_namespaces(page_num=1, page_size=50)```text
This returns the top-level organizational categories for all tags. For each namespace, note:
- **Name**: The namespace identifier- **Origin**: CUSTOM, EXTERNAL, ML, or UNKNOWN- **Key count**: How many tag keys exist under this namespace- **ID**: Required for drilling into keys (Step 2)
**Key questions to answer:**
- Are cloud provider tags (EXTERNAL) being imported? If not, cloud tag integration may not be configured.- Are there CUSTOM namespaces? These indicate intentional organizational tagging.- Are ML namespaces present? These indicate the ML recommendation engine is active.- How many namespaces exist? Too many may indicate inconsistent tagging strategy.
**Expected healthy state:**
- At least one EXTERNAL namespace per cloud provider in use (AWS, Azure, GCP)- One or more CUSTOM namespaces for organizational tags- ML namespace(s) present if ML recommendations are enabled
---
### Step 2: Explore Tag Keys Within Each Namespace
**For each namespace identified in Step 1, list the tag keys:**
```textzms_list_tag_keys(    namespace_id="<namespace_id>",    page_num=1,    page_size=50)```text
Tag keys are the categories within a namespace. For example:
- EXTERNAL namespace might have keys like: `aws:environment`, `aws:team`, `aws:application`, `azure:resourceGroup`- CUSTOM namespace might have keys like: `tier`, `compliance-level`, `data-classification`- ML namespace might have keys like: `ml-app-group`, `ml-traffic-pattern`
**For each key, evaluate:**
- **Naming convention**: Are keys consistently named? (kebab-case, camelCase, etc.)- **Relevance**: Do keys map to meaningful workload attributes?- **Coverage**: Are the expected organizational dimensions represented (environment, team, application, tier)?- **Staleness**: Are there keys that no longer apply?
**Document the key hierarchy:**
```textNamespace: aws-tags (EXTERNAL)├── environment → [prod, staging, dev, test]├── team → [platform, backend, data, security]├── application → [api-gateway, user-service, payment-service, ...]└── cost-center → [eng-001, eng-002, ops-001, ...]
Namespace: org-classification (CUSTOM)├── data-sensitivity → [public, internal, confidential, restricted]├── compliance → [pci, hipaa, sox, none]└── tier → [web, app, database, shared-services]```text
---
### Step 3: Inspect Tag Values for Critical Keys
**For each important tag key, list the values:**
```textzms_list_tag_values(    tag_id="<tag_id>",    namespace_origin="EXTERNAL",    page_num=1,    page_size=50)```text
The `namespace_origin` parameter must be one of: `CUSTOM`, `EXTERNAL`, `ML`, `UNKNOWN`.
**Evaluate values for:**
- **Consistency**: Are values standardized? (e.g., "prod" vs "production" vs "Production")- **Completeness**: Are all expected values present?- **Cardinality**: High cardinality (many unique values) may make tag-based grouping impractical- **Meaningful grouping**: Do values map to logical resource group boundaries?
**Flag issues:**
- Duplicate values with different casing or spelling- Values that are too specific (e.g., individual instance IDs) for grouping- Missing expected values (e.g., "production" environment exists but "staging" doesn't)
---
### Step 4: Review Application Catalog Discoveries
**List discovered applications:**
```textzms_list_app_catalog(page_num=1, page_size=50)```text
The application catalog shows what the microsegmentation agents have discovered running on workloads:
- **Application name**: Identified application- **Application category**: Classification of the application- **Process name**: The process executing the application- **Protocol**: Network protocol (TCP, UDP, etc.)- **Port range**: Port start and end
**Analysis points:**
- **Expected applications**: Verify that known business applications appear in the catalog- **Unknown applications**: Identify unrecognized applications that may need investigation- **Port usage**: Understand what ports are actively in use for policy creation- **Category coverage**: Ensure applications are properly categorized- **Discovery gaps**: If expected applications are missing, agents may not be deployed on those workloads
**Correlate with tags:**
- Applications in the catalog should have corresponding tags for classification- ML tag recommendations are generated based on application catalog discoveries- If an application appears in the catalog but has no corresponding tags, tagging coverage needs improvement
---
### Step 5: Correlate Tags with Resource Group Membership
**List resource groups to understand tag-driven membership:**
```textzms_list_resource_groups(page_num=1, page_size=50)```text
Resource groups come in two types:
- **Managed groups**: Membership determined dynamically by tag-based rules. When workload tags change, group membership updates automatically.- **Unmanaged groups**: Membership defined statically by CIDR blocks and/or FQDNs.
**For managed groups, evaluate:**
- What tag keys/values determine membership?- Are the tag rules using the keys identified in Steps 2-3?- Is the member count expected for the tag criteria?- Are there managed groups with 0 members? (tag criteria may be wrong)
**Inspect members of key groups:**
```textzms_get_resource_group_members(    group_id="<group_id>",    page_num=1,    page_size=50)```text
Verify:
- Members match the expected workloads for the tag criteria- Cloud provider and region distribution is correct- No unexpected workloads have been included- No expected workloads are missing
**Check protection status by group:**
```textzms_get_resource_group_protection_status()```text
Identify groups that have members but no policy coverage — these represent classification without enforcement.
---
### Present Tag Classification Report
```textTag Classification & Application Discovery Report====================================================Date: <current_date>Auditor: AI Assistant
## Executive Summary
- **Tag Namespaces:** 5 (2 EXTERNAL, 2 CUSTOM, 1 ML)- **Total Tag Keys:** 23- **Total Tag Values:** 187- **Discovered Applications:** 34- **Managed Resource Groups:** 12 (tag-driven)- **Classification Health:** GOOD with improvements needed
---
## Tag Namespace Overview
| Namespace | Origin | Keys | Values | Status ||-----------|--------|------|--------|--------|| aws-tags | EXTERNAL | 8 | 67 | Active || azure-labels | EXTERNAL | 6 | 45 | Active || org-classification | CUSTOM | 5 | 32 | Active || security-zones | CUSTOM | 2 | 8 | Active || ml-discovery | ML | 2 | 35 | Review |
---
## Tag Key Analysis
| Key | Namespace | Values | Used by Groups | Issues ||-----|-----------|--------|----------------|--------|| environment | aws-tags | 4 | 4 groups | None || team | aws-tags | 8 | 6 groups | 2 unused values || application | aws-tags | 24 | 12 groups | None || tier | org-classification | 4 | 4 groups | None || data-sensitivity | org-classification | 4 | 0 groups | NOT USED |
---
## Application Catalog Summary
| Category | Count | Top Applications ||----------|-------|-----------------|| Database | 8 | PostgreSQL, MySQL, Redis, MongoDB || Web Server | 6 | nginx, Apache, Tomcat, IIS || Messaging | 4 | RabbitMQ, Kafka, SQS || Custom | 16 | Various business applications |
---
## Recommendations
### Critical1. Tag key "data-sensitivity" exists but is not used by any resource groups   → Create managed groups based on data sensitivity for compliance
### High2. 3 inconsistent tag values found (prod vs production vs Production)   → Standardize to a single value3. ML namespace has 35 unreviewed tag suggestions   → Review and accept/ignore via the ZMS console
### Medium4. 2 managed resource groups have 0 members   → Verify tag criteria match actual workload tags5. 5 discovered applications have no corresponding tags   → Add custom tags or verify cloud provider tagging
### Low6. Document tag naming conventions7. Schedule quarterly tag hygiene reviews```text
---
## Edge Cases
### No Tag Namespaces Found
```textNo tag namespaces found in the ZMS deployment.
This means:- Cloud tag integration is not configured (no EXTERNAL tags)- No custom tags have been created- ML tag discovery is not enabled
Action: Configure cloud provider tag integration in the ZMS consoleand create custom namespaces for organizational classification.```text
### No Applications in Catalog
```textThe application catalog is empty.
Possible causes:- No agents are deployed or connected- Agents have not been running long enough to discover applications- Application discovery may be disabled in agent group settings
Action: Verify agent deployment status usingzms_get_agent_connection_status_statistics() and ensure agentsare connected and running.```text
### ML Tags Present but No Recommendations Reviewed
```textML tag namespace exists with unreviewed tag suggestions.
The ML recommendation engine has identified patterns but norecommendations have been accepted, edited, or ignored.
Action: Review ML tag recommendations in the ZMS console underMicrosegmentation > Tag Management > ML Tag Recommendations.(ML recommendation management is not available via MCP tools.)```text
---
## Quick Reference
**Primary workflow:** Namespaces → Keys → Values → App Catalog → Resource Groups → Report
**Tag tools:**
- `zms_list_tag_namespaces()` — top-level tag organization- `zms_list_tag_keys(namespace_id)` — keys within a namespace- `zms_list_tag_values(tag_id, namespace_origin)` — values for a key
**Application catalog tools:**
- `zms_list_app_catalog()` — discovered applications
**Resource group tools (for correlation):**
- `zms_list_resource_groups()` — managed and unmanaged groups- `zms_get_resource_group_members(group_id)` — members of a group- `zms_get_resource_group_protection_status()` — group protection coverage
**Not yet available via MCP tools:**
- ML Tag Recommendations (accept/ignore/delete suggestions)- Tag create/update/delete operations- Application catalog management

Source and attribution

Source:zscaler/zscaler-mcp-serverinskills/zms/review-tag-classificationat commit809f68d

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal