cis_extensions.cloud_sql_iam_and_deletion_protection_dry_run — version 1.3

Source: presets/cis/cloud-sql-iam-and-deletion-protection-dry-run.satz

Purpose

GENERATED by scripts/build_dry_run_fragments.py from cloud-sql-iam-and-deletion-protection.satz — do not edit.

The dry-run twin of cloud-sql-iam-and-deletion-protection.satz. Google evaluates every rule below, writes a violation to the audit log for each action it WOULD have blocked, and blocks nothing — so the organisation's own numbers answer "will this break us?" before the control is enforced. Read them in Cloud Logging:

protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.OrgPolicyViolationInfo"

Promote by switching cis_cloud_sql_iam_and_deletion_protection_dry_run off and cis_cloud_sql_iam_and_deletion_protection on. Both on at once is refused: the estate would declare the same policy twice, once measuring and once blocking.

This fragment carries NO claim. A dry run discharges no control while it runs, and require reports the control as unmet, which is the truth.

Use it

params {
  cis_cloud_sql_iam_and_deletion_protection_dry_run = true
}

use "presets/cis/cloud-sql-iam-and-deletion-protection-dry-run.satz" when cis_cloud_sql_iam_and_deletion_protection_dry_run

cis_cloud_sql_iam_and_deletion_protection_dry_run is the gate: while it is falsy the pack contributes nothing — no resources, no params, no claims. It is declared by CIS_GCP_Foundation_4_0, and the estate's own binding wins.

Needs from outside the pack:

Params

None — the pack takes everything from the estate's params.

Notices

What to run once this pack is switched on. satz shows each notice when the pack goes on and until the estate binds its param true; every command that writes to the organisation refuses while one whose severity is error is open.

param run severity what and why
cis_cloud_sql_iam_and_deletion_protection_dry_run_adopted satz adopt <estate> --execute --import error Google may already hold a policy this pack declares on the organisation, set by an administrator or by default, and an apply that creates a policy that exists stops on 409 POLICY_ALREADY_EXISTS. Run satz adopt once the pack is on, so every live policy is in the state before the apply; with --import it binds this param itself when it has run.

Contributes

resource type labels
google_org_policy_custom_constraint cis_sql_iam_authentication, cis_sql_deletion_protection
google_org_policy_policy custom-cisCloudSqlIamAuthentication, custom-cisCloudSqlDeletionProtection

Claims

None — this pack proves no control by itself.

History

version date change
1.3 2026-09-30 GENERATED from cloud-sql-iam-and-deletion-protection.satz 1.3: the version follows the source pack, whose claims gained their measure without satz; a twin carries no claim, so nothing here changes but the version
1.2 2026-09-20 GENERATED from cloud-sql-iam-and-deletion-protection.satz 1.2: the same notice, now severity = error, on its own param
1.1 2026-09-19 GENERATED from cloud-sql-iam-and-deletion-protection.satz 1.1: the same notice, on its own param cis_cloud_sql_iam_and_deletion_protection_dry_run_adopted, because the twin is switched on on its own
1.0 2026-09-13 first version, GENERATED by scripts/build_dry_run_fragments.py from cloud-sql-iam-and-deletion-protection.satz — do not edit. The same constraint with dry_run_spec instead of spec and every claim dropped: Google evaluates each rule, logs every action it would have blocked, and blocks none, so the violation count sizes the control against a live organisation before it bites. It discharges nothing while it runs and carries no claim, so require reports the control unmet, which is the truth. Its version tracks the fragment it is derived from

The whole library's history: the changelog in presets/CHANGELOG.md.

Notes

No notes yet.