Skip to content
KafkaGuard
Get started
FeaturesDocsEnterprisePricingBlogToolsGet started

Policy Tiers and Tier Selection Guide

This guide helps you choose the right KafkaGuard policy tier for your environment and understand the differences between available policy options.

Table of Contents


Policy Tier Overview

KafkaGuard provides three policy tiers designed for different environments and compliance requirements:

TierControlsFocusBest ForFile
baseline-dev21Reliability + OperationsDevelopment, testingpolicies/baseline-dev.yaml
enterprise-default45Security + Reliability + OperationsProduction, enterprisepolicies/enterprise-default.yaml
finance-iso55Advanced ComplianceRegulated industriespolicies/finance-iso.yaml

Key Differentiators:

  • Security controls: baseline-dev has none; enterprise-default adds 15; finance-iso adds 10 more
  • Compliance mapping: Enterprise and Finance tiers include PCI-DSS, SOC 2, ISO 27001 IDs in every report
  • KRaft support: All tiers detect KRaft automatically; KG-052–056 activate on KRaft clusters

Tier Decision Framework

Which tier should I use?

My situationRecommended tier
Local dev, sandbox, CI test clusterbaseline-dev
Production cluster, no regulatory requiremententerprise-default
Production + PCI-DSS / HIPAA / ISO 27001 certificationfinance-iso
Staging / pre-prodenterprise-default
Air-gapped, internal data onlybaseline-dev or enterprise-default

Step-by-step selection

Step 1 — Is this a production cluster?

  • No → use baseline-dev
  • Yes → go to Step 2

Step 2 — Does it handle customer, financial, or health data?

  • No → use enterprise-default
  • Yes → go to Step 3

Step 3 — Is your industry regulated (finance, healthcare, government)?

  • No → use enterprise-default
  • Yes → use finance-iso

Tier Comparison Matrix

Criteriabaseline-deventerprise-defaultfinance-iso
Total controls214555
Security controls01525
Reliability controls81616
Operational controls131313
Security protocolPLAINTEXT, SSLSASL_SSL (required)SASL_SSL + mTLS
Compliance mappingsPCI-DSS · SOC 2 · ISO 27001PCI-DSS · SOC 2 · ISO 27001
KRaft controlsauto-activateauto-activateauto-activate
Typical scan time~8 s~10 s~12 s

Policy Tier Details

baseline-dev (21 Controls)

Focus: Reliability and operational checks for development environments Best For: Dev clusters, sandboxes, CI/CD test clusters Security: No security controls — PLAINTEXT clusters are fine here

Control breakdown

CategoryCountWhat it checks
Reliability8Replication factor ≥ 3, min ISR ≥ 2, ZK quorum, partition health, log retention
Operational13Auto-create topics, delete topic flag, log dirs, GC logging, network threads, JMX

Sample controls

ControlTitleSeverity
KG-016Replication factor ≥ 3MEDIUM
KG-017Min in-sync replicas ≥ 2MEDIUM
KG-019ZooKeeper quorum healthy (≥3 nodes)MEDIUM
KG-022ZK quorum odd node countMEDIUM
KG-028Auto-create topics disabledMEDIUM
KG-030Delete topic disabledMEDIUM
KG-040GC logging enabledLOW

Scan commands

# Basic dev scan (PLAINTEXT)
kafkaguard scan \
  --bootstrap localhost:9092 \
  --policy policies/baseline-dev.yaml \
  -f html,json \
  --out ./reports

# Dev with SSL encryption
kafkaguard scan \
  --bootstrap kafka-dev.example.com:9093 \
  --security-protocol SSL \
  --tls-ca-cert /path/to/ca-cert.pem \
  --policy policies/baseline-dev.yaml \
  -f html \
  --out ./reports

Expected results on a well-configured dev cluster:

  • 17–19 / 21 controls passing
  • Score: 80–95%

enterprise-default (45 Controls)

Focus: Security, reliability, and operational validation for production environments Best For: Production clusters, standard PCI-DSS / SOC 2 / ISO 27001 compliance Security: SASL_SSL required — PLAINTEXT clusters will fail multiple controls

Control breakdown

CategoryCountWhat it checks
Security15SASL auth, SSL/TLS, ACLs, inter-broker encryption, monitoring endpoint security
Reliability16All baseline-dev + leader election, quota enforcement, unclean leader election
Operational13Same as baseline-dev

Security controls added over baseline-dev

ControlTitleSeverity
KG-001SASL authentication enabledHIGH
KG-002SSL/TLS encryption enabledHIGH
KG-003ACL authorization enabledHIGH
KG-007Inter-broker encryption enabledHIGH
KG-008ZooKeeper authentication enabledMEDIUM
KG-009ZooKeeper ACLs enabledMEDIUM
KG-012Client authentication requiredHIGH
KG-014Security protocol validHIGH
KG-015Monitoring endpoint securityMEDIUM

Scan commands

# Production scan with SASL_SSL + SCRAM-SHA-512
export KAFKAGUARD_SASL_USERNAME="kafkaguard"
export KAFKAGUARD_SASL_PASSWORD="your-password"

kafkaguard scan \
  --bootstrap kafka1.prod:9095,kafka2.prod:9095,kafka3.prod:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/kafkaguard/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  -f json,html,pdf \
  --out /var/reports/kafkaguard \
  --fail-on high

# Upload to on-prem dashboard
kafkaguard scan \
  --bootstrap kafka-prod:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  -f json \
  --upload http://dashboard:3001

Expected results on a compliant production cluster:

  • 37–41 / 45 controls passing
  • Score: 80–95%

finance-iso (55 Controls)

Focus: Advanced compliance for regulated industries — finance, healthcare, government Best For: PCI-DSS Level 1, HIPAA, ISO 27001 certified environments Security: Highest — SASL_SSL + mTLS, strict retention, audit logging Plan: Available on all tiers including Community (free CLI)

This policy includes all 45 controls from enterprise-default plus 10 additional controls covering audit logging, data retention, mutual TLS, cipher suites, and access restriction.

10 additional controls over enterprise-default

ControlTitleSeverityCompliance
KG-041Audit logging enabledHIGHPCI-DSS 10.1, ISO 27001 A.12.4
KG-042Log retention ≥ 90 daysMEDIUMPCI-DSS 10.7, SOC 2 CC7.3
KG-043Encryption at rest configuredHIGHPCI-DSS 3.4, ISO 27001 A.10.1
KG-044Broker-to-broker mutual TLSHIGHPCI-DSS 4.1, ISO 27001 A.13.1
KG-045No deprecated TLS protocols (≥1.2)HIGHPCI-DSS 4.1, HIPAA
KG-046Strong cipher suites onlyHIGHPCI-DSS 4.1, ISO 27001 A.10.1
KG-047ACL deny rules configuredMEDIUMISO 27001 A.9.4.1, SOC 2 CC6.1
KG-048Admin access restricted (≤3 principals)HIGHSOC 2 CC6.2, ISO 27001 A.9.2.3
KG-049Data retention policies enforcedMEDIUMPCI-DSS 3.1, GDPR Art. 5
KG-050Compliance metadata configuredLOWSOC 2 CC7.1, GDPR Art. 30

Scan command

export KAFKAGUARD_SASL_USERNAME="kafkaguard-finance"
export KAFKAGUARD_SASL_PASSWORD="your-password"

kafkaguard scan \
  --bootstrap kafka-finance.prod:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/kafkaguard/certs/ca.pem \
  --policy policies/finance-iso.yaml \
  -f json,html,pdf \
  --out /var/reports/kafkaguard/finance \
  --fail-on medium

Expected results on a compliant regulated cluster:

  • 49–53 / 55 controls passing
  • Score: 88–96%

KRaft & Confluent Platform Controls (v2.1.0+)

These controls activate automatically — no configuration needed. They are included in all three tiers but only evaluated when the cluster type matches.

ControlTitleSeverityActivates on
KG-052KRaft controller quorum size ≥ 3MEDIUMKafka 3.9.x / 4.x (KRaft)
KG-053All KRaft controller voters healthyHIGHKafka 3.9.x / 4.x (KRaft)
KG-054Metadata log replication not laggingHIGHKafka 3.9.x / 4.x (KRaft)
KG-055Confluent version matches Kafka versionLOWConfluent Platform 7.x–8.x

ZooKeeper-specific controls auto-skip on KRaft clusters. KRaft controls auto-skip on ZooKeeper clusters.


Tier Selection Checklist

  • Dev / sandbox / CI?baseline-dev
  • Production, no regulatory requirement?enterprise-default
  • Regulated industry (finance/healthcare/gov)?finance-iso
  • SASL auth required?enterprise-default or higher
  • PCI-DSS / SOC 2 / ISO 27001 compliance needed?enterprise-default or higher
  • HIPAA / mTLS / audit logging required?finance-iso
  • CI/CD pipeline scanning?enterprise-default (production-like)

Quick Tier Selection Commands

Development

kafkaguard scan --bootstrap localhost:9092
# Uses enterprise-default by default; pass --policy for baseline-dev
kafkaguard scan --bootstrap localhost:9092 --policy policies/baseline-dev.yaml

Production

export KAFKAGUARD_SASL_USERNAME="kafkaguard"
export KAFKAGUARD_SASL_PASSWORD="your-password"

kafkaguard scan \
  --bootstrap kafka-prod:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/kafkaguard/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  -f json,html,pdf \
  --out /var/reports/kafkaguard

CI/CD Pipeline

if [ "$ENVIRONMENT" = "production" ]; then
  POLICY="policies/enterprise-default.yaml"
  FAIL_ON="high"
else
  POLICY="policies/baseline-dev.yaml"
  FAIL_ON="medium"
fi

kafkaguard scan \
  --bootstrap "$KAFKA_BROKER" \
  --policy "$POLICY" \
  -f json \
  --fail-on "$FAIL_ON"

Multi-Environment

declare -A ENV_POLICIES=(
  ["dev"]="policies/baseline-dev.yaml"
  ["staging"]="policies/enterprise-default.yaml"
  ["prod"]="policies/enterprise-default.yaml"
)

for env in "${!ENV_POLICIES[@]}"; do
  echo "Scanning $env..."
  kafkaguard scan \
    --bootstrap "kafka-$env:9092" \
    --policy "${ENV_POLICIES[$env]}" \
    -f json \
    --out "./reports/$env"
done

Tier Transition Strategies

baseline-dev → enterprise-default

# 1. Test in staging
kafkaguard scan \
  --bootstrap kafka-staging:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-256 \
  --tls-ca-cert /path/to/ca-cert.pem \
  --policy policies/enterprise-default.yaml \
  -f html \
  --out ./transition-test

# 2. Fix gaps: enable SASL, configure TLS certs, set up ACLs

# 3. Enforce in production
kafkaguard scan \
  --bootstrap kafka-prod:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/kafkaguard/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  -f json,html,pdf \
  --out /var/reports/kafkaguard \
  --fail-on high

Custom Policy

# Start from the tier closest to your needs
cp policies/enterprise-default.yaml policies/custom-org.yaml

# Validate before use
kafkaguard validate-policy --policy policies/custom-org.yaml

# Test
kafkaguard scan \
  --bootstrap kafka-test:9092 \
  --policy policies/custom-org.yaml \
  -f json

Gradual Rollout (warn before enforce)

# Phase 1: observe (no exit code failure)
kafkaguard scan \
  --bootstrap kafka:9092 \
  --policy policies/baseline-dev.yaml \
  -f json,html

# Phase 2: warn only (fails on medium+ but team reviews)
kafkaguard scan \
  --bootstrap kafka:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  --fail-on medium \
  -f json,html

# Phase 3: enforce
kafkaguard scan \
  --bootstrap kafka:9095 \
  --security-protocol SASL_SSL \
  --sasl-mechanism SCRAM-SHA-512 \
  --tls-ca-cert /etc/certs/ca.pem \
  --policy policies/enterprise-default.yaml \
  --fail-on high \
  -f json,html,pdf

Next Steps


Document Information

  • Last Updated: 2026-04-25
  • Applies to Version: KafkaGuard 2.3.0+