Skip to main content Skip to content

Recommendation rules

The full catalogue of audit rules, grouped by category. 490 rules across AWS, GCP, and Azure.

8 min read Last updated: 

ZopNight ships with 490 audit rules covering every major resource type on AWS, GCP, and Azure. This page groups them by category so you can see what each category catches. The full per-rule detail (evidence shape, math, remediation steps) is visible inside each recommendation card in the app.

Coverage at a glance

490 rules in total, split across the three providers:

ProviderTotal rulesNotes
AWS216Includes EC2, RDS, EKS, S3, Lambda, IAM, networking, and the AWS Bedrock, SageMaker, and Databricks rule families
GCP127Includes Compute Engine, GKE, Cloud SQL, GCS, Cloud Run, and Databricks
Azure147Includes VMs, AKS, Azure SQL, Blob Storage, Functions, and Databricks

The per-provider totals include the Kubernetes workload rules (41 per provider; 123 in total across EKS, GKE, and AKS) and the autoscaler rule family (6 rules covering ASG / VMSS / MIG / ECS scaling configuration). The composition is: 367 static cloud-native rules + 123 K8s workload rules = 490. The Databricks rule family (~15 per cloud) and the autoscaler family (6 rules) are counted inside the 367 static cloud-native rules, not added on top of them.

Idle

Resources running but doing no useful work. Largest savings category for most accounts.

Sample rules:

Resource typeWhat it catches
EC2Instance with CPU < 5% and no network IO for 14 days
LambdaFunction with zero invocations for 7 days
NAT GatewayNAT gateway with no traffic
Load BalancerLoad balancer with zero requests
ECS serviceService with zero running tasks for 7 days
EFSFile system with no IO operations
RedshiftCluster with no queries for 14 days
OpenSearchDomain with no search/indexing
MemoryDBCluster with no commands processed
ElastiCacheCluster with no commands processed
RDSInstance with no connections for 14 days

Plus equivalents on GCP and Azure: idle Compute Engine, idle GKE node, idle Cloud SQL, idle Azure VM, idle AKS node, idle Azure SQL, idle Blob Storage account, and so on.

Rightsizing

Resources sized larger than the workload needs. Drop one or two instance sizes, keep the same SLO, lower the bill.

Sample rules:

Resource typeWhat it catches
EC2Underutilised. CPU < 20% sustained
EC2Rightsizing opportunity; recommend specific smaller instance type
EC2Oversized; recommend dropping a tier
EBSgp2 to gp3 migration (cheaper, often faster)
RDSInstance rightsizing
LambdaOver-provisioned memory
EBSProvisioned IOPS over-allocation
ECS FargateOversized task definition
GlueJob DPU rightsizing
GKENode-pool rightsize (guided)
AKSAgent-pool rightsize (guided)

K8s workload rightsizing rules also catch missing or over-set CPU/memory requests via HPA ScalingLimited signals.

Schedule

Resources running 24×7 that have a clear off-hours usage pattern. Strong candidates for ZopNight’s start/stop scheduling.

Sample rules:

Resource typeWhat it catches
EC2Non-production scheduling opportunity (tag-based + naming heuristics)
EC2Heatmap-based schedule opportunity (usage hours analysis)
RDSDev/test database with weekend idle pattern
GKENon-prod node pool with off-hours idle pattern
Azure VMDev/test VM running 24×7
Azure Function AppPremium tier with predictable off-hours

Schedule recommendations integrate with ZopNight’s scheduling feature; one click attaches the resource to a recommended schedule.

Discount

Reserved Instance, Savings Plan, and Committed Use opportunities; places where steady, predictable usage justifies a commitment.

Sample rules:

Resource typeWhat it catches
EC2Reserved Instance opportunity; stable instance running > 70% of last 30 days
RDSReserved Instance opportunity
EC2Compute Savings Plan opportunity
EC2Spot adoption candidate
ElastiCacheReserved node opportunity

Plus GCP Committed Use Discount and Azure Reservation equivalents.

Orphan

Resources no longer attached to anything that needs them. Often the easiest wins because there’s nothing to break.

Sample rules:

Resource typeWhat it catches
EBSUnattached EBS volume
Elastic IPUnassociated Elastic IP
EBSOrphaned EBS snapshot (no source volume)
ECRRepository missing lifecycle policy
EKSAbandoned node group
VPC Interface EndpointEndpoint with no traffic
GCPOrphan persistent disk
VPCUnused Internet Gateway
TGWTransit Gateway with no attachments

K8s orphan rules also catch unbound PVCs, released PVs, and empty Service endpoints.

Compliance

Configuration drift from best practice. These are not always about cost directly; they’re about operational hygiene that compounds into cost and risk over time.

Sample rules:

Resource typeWhat it catches
RDSProduction instance missing Multi-AZ
RDSExcessive backup retention
VPCFlow Logs writing to CloudWatch instead of S3
CloudWatchLog group with no retention policy
S3Bucket missing lifecycle policy
EC2EBS optimisation not enabled
EC2Detailed monitoring not enabled
LambdaUsing deprecated runtime

Security

Risky configurations with cost or operational implications. ZopNight surfaces them alongside cost recommendations so the same audit pass catches both.

Sample rules:

Resource typeWhat it catches
IAMRole with wildcard principal
IAMRole with AdministratorAccess
IAMAccess key older than 90 days
IAMUser without MFA enabled
Security GroupUnrestricted inbound access
RDSInstance publicly accessible
S3Bucket with public access
VariousResource not encrypted at rest
EC2IMDSv2 not required

K8s security rules catch privileged containers, root users, host network, and missing TLS.

Reliability

Production-shape issues that cause incidents and re-work. Mostly Kubernetes workload rules.

Sample patterns:

  • Deployment with single replica in production
  • HPA at max replicas (scaling-limited)
  • Missing readiness/liveness probes
  • Missing requests/limits
  • Degraded workloads (pod restarts, crash loops)
  • Stopped deployments
  • Suspended cronjobs
  • Failed jobs

Autoscaler

Six rules specific to scaling configuration on ASG, VMSS, MIG, and ECS services.

What it catchesProviders
Scaling group has no scaling policiesAWS (ASG)
Autoscale setting missingAzure (VMSS)
Autoscaler missingGCP (MIG)
Scaling target too high (> 90%)All providers
Scaling target too low (< 30%)All providers
Cooldown too short (< 120s)All providers

All six are actionable via one-click apply through the autoscaler, provided the account is in Recommend or Autopilot mode; Monitor mode is read-only and can’t apply. See Autoscaling.

Databricks

A provider-parameterised rule family fires across all three clouds (15 rules per cloud) for Databricks compute: clusters, SQL warehouses, instance pools, jobs, and model-serving endpoints. See Databricks for the connection model.

The family covers, among others:

What it catchesApplies to
Cluster missing auto-terminationAll-purpose clusters
SQL warehouse without auto-stopSQL warehouses
Model-serving endpoint left always-onServing endpoints
Instance pool holding too many idle VMs (min-idle too high)Instance pools
Cluster oversized for its workloadClusters
Autoscaling disabled on an eligible clusterClusters
Photon disabled where it would cut runtime costClusters
Job running on an expensive all-purpose clusterJobs
On-demand workers that could be spotClusters
No cluster policy attachedClusters
Missing cost-allocation tagsClusters, warehouses, jobs
Orphaned job (no recent runs)Jobs
Orphaned SQL warehouseSQL warehouses

Azure adds a metric-driven idle-cluster rule on top of the shared family.

Severity

Severity is assigned per finding, not per rule. The same rule can fire as Critical on one resource and Medium on another, depending on the savings size and the resource’s context.

SeverityRough meaning
CriticalLarge savings on a production resource, or a security finding with cost/risk implications
HighSubstantial savings, or a clear best-practice violation
MediumDefault for most cost recommendations
LowSmall absolute savings, or a low-confidence signal

Filter the Recommendations page by severity to prioritise; start with Critical, work down.

Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001 · zero-trust· 30% average cloud cost cut· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001 · zero-trust· 30% average cloud cost cut· 4 platforms · 1 console·