Skip to main content
Your progress
0 of 8 complete0%
T2 / M2.3 / L2 OF 7 / Engineer LEVEL / 9 min

The auto-remediation allowlist: auto, guided, advisory

Outcome

By the end of this lesson, you will be able to identify which rules can be one-click auto-remediated, explain the two independent checks a recommendation passes before an Apply button appears, and plan adoption by deciding who in your org may start a remediation.


PrerequisitesM2.1 · M2.2 · M2.3.L1
Time9 minutes

1. Concept

Before a rule is allowed to act on its own, somebody has to be confident the action is safe on a real cloud account. Some actions, like a delete, cannot be undone.

That confidence is recorded in a list, written into the code. It is a list, not a certification programme, and this lesson says “certified” only as shorthand for “on the list”.

113 rules are on it. 26 can be applied with one click. The other 87 are guided, meaning you type a confirmation before anything happens. Every rule not on the list is advisory: you see the recommendation and there is no Apply button to press.

Terminal window
THE AUTO-REMEDIATION ALLOWLIST:
ON THE ALLOWLIST, AUTO (26, one-click Apply):
Listed by rule id in the allowlist table
Still subject to the per-resource safety gate
ON THE ALLOWLIST, GUIDED (87, type-to-confirm):
Same table, plus a human confirmation step
NOT ON THE ALLOWLIST (advisory, manual execution):
Remediation steps shown
Apply button NOT shown
Customer executes manually

The allowlist changes over time: rules are added as their levers are proven, and removed when an audit shows a lever is unsafe.

What the allowlist actually is

The allowlist is a table in ZopNight’s code, keyed by rule id. For each rule it records which kind of action the workflow runs (delete, resize, resize with a stop, or pause a service) and whether the rule is guided.

Terminal window
THE ALLOWLIST IN CODE:
ONE TABLE, TWO COPIES
The recommender reads it to decide whether
a rule gets an Apply button
The provisioner reads it to know which action
step to run
The two copies must be byte-for-byte identical
ENFORCED BY A TEST
A test compares the two copies and fails the
build if they drift
Other tests check the auto and guided counts
and catch duplicate rule ids
ADDING OR REMOVING A RULE
One edit to the table, made identically in
both copies

One more requirement is easy to miss: every allowlisted rule ships a paired dispatch test that drives the literal JSON the recommender emits through the real dispatcher with real handlers registered. Producer and consumer live in separate modules, so capturing the wire bytes on one side and replaying them on the other is the only durable way to stop the two drifting apart. A rule without that paired test does not go on the list.

The allowlist is only the first of two checks

This is the part that surprises people. Being on the allowlist means the rule supports automation. It does not mean the Apply button appears on a given card. A second gate re-decides per recommendation, against that specific resource:

Terminal window
TWO TIERS:
TIER 1 allowlist "does this RULE support auto?"
keyed on rule id, nothing else
TIER 2 safety gate "is it safe on THIS resource?"
reads authoritative control-plane
fields on the recommendation, never
tags and never name tokens
Tier 2 disagrees -> the recommendation is DEMOTED to advisory.
It is still shown. Nothing is suppressed.

What the gate demotes, every time:

Terminal window
one-shot stop of compute always demoted. The workload inside a
generic instance is opaque to every
cloud API, so "this is not a bastion"
can never be proven. The finding
shows How to Fix steps instead.
delete of a stateful resource demoted. Managed database types, a
non-empty engine field, or a data tier.
delete without proof demoted unless an authoritative field
proves the thing is unused:
an elastic IP explicitly not
associated
a volume flagged unattached with a
real detach time at least 7 days old
a snapshot whose source is provably
gone
a backup vault with zero protected
items
resize needing a stop demoted on a stateful resource.

Absent evidence is not evidence. The gate fails closed, so a new rule inherits this protection without anyone remembering to add it. It is also why the summary pill on a rule group and the pill on an individual recommendation can disagree: the first reflects capability, the second reflects this decision.

What’s on the allowlist

The authoritative auto and guided sets live in the allowlist in ZopNight’s code (26 auto + 87 guided). Treat that list as the source of truth; the entries below are illustrative of the categories, not a fixed list.

Terminal window
AUTO (one-click), illustrative:
RC-016 Unassociated Elastic IP release (evidence: not associated)
RC-112 / RC-212 Unattached GCP / Azure disk delete (evidence: detach time)
RC-003 EC2 rightsizing (resize with a stop; demoted on stateful resources)
RC-002 Orphan EBS volume delete: on the list, but the safety gate demotes
it to advisory today because AWS gives no real detach time
GUIDED (type-to-confirm), illustrative:
RC-021 Orphan EBS snapshot delete (irreversible, so human-confirmed)
Single-replica K8s bump 1->2 (RC-1706 / 1806 / 1906)
RC-214 Azure Hybrid Benefit (a reversible licensing setting)
Pause services: Synapse SQL Pool, Data Factory, ML Compute, Cognitive
Services, Databricks cluster, GCP Dataproc
NOT auto-remediable (advisory only):
RC-001 Idle EC2: advisory. It fires on already-stopped instances and
recommends termination; it is explicitly OFF the allowlist.
Compliance, network, and IAM changes

The allowlisted rules cluster around the simplest, safest categories: orphan deletes backed by evidence, resizes, and pause/resume. Compliance, network and IAM changes are deliberately advisory.

Why advisory rules don’t have Apply

For advisory rules, the recommendation card hides the Apply Remediate button. The remediation steps are still shown: but as instructions for manual execution.

Terminal window
ADVISORY RULE CARD example: RC-001 Idle EC2 (stopped 30+ days)
─────────────────────────────────────────────────────────
RC-001 · Idle EC2
[no Apply button]
REMEDIATION (manual)
1. Confirm nobody needs the stopped instance
2. Snapshot any attached EBS volumes you want to keep
3. Terminate the instance and release its Elastic IP
4. Delete the volumes you no longer need
[Console URL: https://us-east-1.console.aws.amazon.com/ec2/...]
[Dismiss] [Mark Resolved]

The “Mark Resolved” button lets the customer note they’ve completed the action manually, so savings tracking works correctly.

Asking for a rule to be added

Terminal window
IF YOUR TEAM WANTS A RULE ALLOWLISTED:
Raise it with ZopDev support
An addition is a code change to the allowlist
table, so there is no self-serve request
WHAT AN ADDITION DOES NOT CHANGE:
The per-recommendation safety gate still
re-decides on every resource
No snapshot is taken before a delete; the
action is the plain cloud API call (see L1)

When uncertified ≠ unsafe

Terminal window
UNCERTIFIED rule isn't "unsafe to apply"
Just hasn't passed ZopNight's bar for one-click execution
The remediation is still shown
Customer executes manually with full context
COMMON UNCERTIFIED CATEGORIES:
Rightsizing outside the allowlisted resize rules
Risk: workload-specific; needs validation
Reason: tested only in narrow workloads
Compliance configuration changes
Risk: policy interpretation varies
Reason: customer policy varies
Network changes
Risk: high blast radius
Reason: cross-team dependencies
IAM changes
Risk: lockout potential
Reason: hard to test without breaking

Customer judgment fills in. Manual execution is still safe.

Default state: on, with a kill-switch

Terminal window
DEFAULT for ALL ALLOWLISTED rules:
Enabled for every org from day one
No setup, no opt-in, no per-rule toggle page
THE PER-RULE, PER-ORG FLAG:
A kill-switch, not an opt-in
No flag set means the rule is enabled
Set only by ZopNight through an internal
endpoint; there is no customer settings page
WHY A KILL-SWITCH:
A brand-new org needs no setup
A rule can be switched off for one org
if it misbehaves there
If you need that, raise it with ZopNight support

Default on; the flag exists to switch a rule off, and only ZopNight sets it.

What you actually plan: who clicks Remediate

Because every allowlisted rule is already on, adoption is not a question of which rules to enable. It is a question of who in your org may press Remediate, and what happens when they do:

Terminal window
INITIATOR ROLE WHAT HAPPENS ON REMEDIATE
──────────────────────────────────────────────────────────
Admin Runs straight through. No approval step:
the admin's click is the approval.
Editor Waits for an admin. Deletes, resizes,
pauses and K8s manifest edits add an
"Awaiting admin approval" step.
Viewer Cannot start a remediation at all.
Sees the recommendation and its steps.

So the lever you control is role assignment. Giving a person the admin role means their clicks act on your cloud without a second pair of eyes. Keeping people as editors routes every destructive click past an admin. L3 covers the approval step in detail.


2. Demo

A 40-engineer team planning its first quarter with auto-remediation:

Terminal window
STARTING POINT:
Every allowlisted rule already enabled (default)
Recommendations page shows Remediate on the
cards the safety gate has not demoted
Advisory ones show "How to Fix" steps in the
drawer instead
DECISION 1: WHO IS ADMIN
2 platform leads hold the admin role
Their Remediate clicks run with no approval step
Reason: they already own production change approval
DECISION 2: WHO IS EDITOR
12 service owners hold the editor role
They can start remediations on their resources
Each destructive click waits for one of the 2 admins
Two admins means an approval never waits on
one person's calendar
DECISION 3: EVERYONE ELSE
Viewer role: reads recommendations and evidence,
cannot start a remediation
DECISION 4: ADVISORY WORK
RC-001 idle stopped EC2 is advisory (off the list)
Service owners follow the "How to Fix" steps by hand
and mark the recommendation resolved
AFTER A MONTH:
One allowlisted rule misbehaved on an unusual
resource shape in their account
They asked ZopNight support to switch that one rule
off for their org while it was investigated
Every other rule stayed on

The plan is about people, not toggles. Roles decide who acts; the allowlist and the safety gate decide what can be acted on.


3. Hands-on (5 min)

Audit who can act on your cloud through remediation:

Terminal window
□ STEP 1: List your org's admins
Count: _____
Each admin's Remediate click runs without approval.
Is that right for every one of them? □ Yes □ No
□ STEP 2: List your editors
Count: _____
Their destructive clicks wait for an admin.
Is there more than one admin to approve them? □ Yes □ No
□ STEP 3: Open the Recommendations page
Pick 3 cards: which show Remediate, which are advisory?
RC-_____: □ Remediate □ advisory
RC-_____: □ Remediate □ advisory
RC-_____: □ Remediate □ advisory
□ STEP 4: Note any rule you want switched off
Rule: RC-_____ Reason: __________
(Raise with ZopNight support; there is no self-serve toggle)
□ STEP 5: Set a quarterly role review
Date: __________
Owner: __________

A 15-minute audit tells you who can change your cloud and whether every destructive click gets a second look.


4. Knowledge check

Q1

A recommendation card doesn’t show Apply Remediate. Most likely cause:

A. Either the rule is advisory, or it is allowlisted but the per-recommendation safety gate demoted it on this resource
B. The user lacks permission
C. The cloud is down
D. The recommendation has already been applied by somebody else on the same team earlier in the working day

Show answer

Correct: A. Either way the remediation steps and console link are shown for manual execution, and the card still offers “Mark Resolved” for tracking. Manual does not mean unsafe. Two different causes produce the same missing button, and the distinction matters when a customer asks why one instance has Apply and another does not.

Q2

113 rules are on the auto-remediation allowlist (26 auto + 87 guided). The rest of the 684 rules:

A. Don’t exist
B. Are advisory: shown with remediation steps but no one-click apply
C. Are buggy
D. Will never be remediated automatically under any configuration

Show answer

Correct: B. The allowlist grows over time; to ask for a specific rule to be added, raise it with ZopDev support. The list grows as levers are proven, and it shrinks too: rules have been removed from it when an audit showed the lever was unsafe or the saving was not concrete.

Q3

Each org has a per-rule flag for allowlisted rules. With no flag set, the default state:

A. All rules off until you opt in
B. Rules with savings above $1,000 on
C. All allowlisted rules on
D. Critical rules on by default

Show answer

Correct: C. The flag is a kill-switch: a missing flag means the rule is enabled, so a new org needs no setup. The flag exists to switch a misbehaving rule off for one org.


5. Apply

Every allowlisted rule is on by default; there is no per-rule settings page. Plan adoption through roles: admins act without approval, editors wait for an admin, viewers cannot start a remediation.

For your team: review who holds admin and editor once a quarter, and ask ZopNight support if a single rule needs switching off for your org.


Glossary terms touched

Certified rule · Apply / dismiss / snooze


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Free curriculum. No paywall. 290 lessons across 7 courses, plus an optional 24-lesson beginner course. Browse every course without an account; a free account opens the lessons, saves your progress and opens the exams for three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
free account, every course, no paywall
3 certifications, each with a public verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·