Quick Definition (30–60 words)
Security Acceptance Criteria are explicit, testable conditions that a feature, service, or deployment must meet before being accepted as secure. Analogy: a checklist a pilot uses before takeoff to ensure safety. Formal: machine-checkable assertions mapped to policies, SLIs, and controls for deployment gating.
What is Security Acceptance Criteria?
Security Acceptance Criteria (SAC) are concrete, measurable conditions that determine whether code, configuration, or infrastructure changes meet agreed security standards before they are merged, deployed, or promoted. They are NOT vague policies, pure checklists without automation, or legal compliance documents on their own.
Key properties and constraints:
- Testable: expressed as pass/fail checks or SLIs.
- Traceable: linked to requirements, tickets, and CI/CD runs.
- Automated where possible: enforced in pipelines or gates.
- Versioned and reviewable: evolves with architecture and threats.
- Contextual: differs by environment, sensitivity, and risk tolerance.
Where it fits in modern cloud/SRE workflows:
- Shift-left: embedded in development pipelines and pre-merge checks.
- CI/CD gates: security tests run as part of build or deployment.
- Runtime monitoring: SLOs and SLIs for ongoing acceptance.
- Incident response: criteria guide post-incident acceptance of fixes.
- Governance: feeds into audits and compliance evidence.
Text-only “diagram description” readers can visualize:
- Developer creates feature -> CI runs unit tests & static analysis -> Security acceptance checks run (SAST, secrets scan, policy-as-code) -> If pass, artifact promoted to staging -> Staging runs integration and runtime security SLIs -> If staging SLOs pass, deployment to production allowed -> Observability continuously measures security SLIs and triggers alerts -> Postmortem updates SAC if needed.
Security Acceptance Criteria in one sentence
Security Acceptance Criteria are explicit, automated, and measurable conditions that code and infrastructure must satisfy to be considered secure for deployment and operation.
Security Acceptance Criteria vs related terms (TABLE REQUIRED)
| ID | Term | How it differs from Security Acceptance Criteria | Common confusion |
|---|---|---|---|
| T1 | Security Policy | High-level rules; SAC are concrete tests | People use them interchangeably |
| T2 | Compliance Standard | Compliance is legal/regulatory; SAC operationalize controls | Confusing compliance with operational tests |
| T3 | Security Requirement | Requirements can be non-testable; SAC are testable | Requirements seen as SAC without automation |
| T4 | SLO | SLOs measure runtime reliability and can be security-focused; SAC include pre-deploy checks too | Thinking SLOs replace pre-deploy gates |
| T5 | Test Case | Test cases are technical steps; SAC are acceptance criteria linking tests to risk | Teams write tests but not acceptance criteria |
| T6 | Threat Model | Threat models identify risks; SAC mitigate and validate controls | Skipping SAC after threat modeling |
| T7 | Policy-as-Code | One implementation method for SAC, not identical | Assume SAC equals policy-as-code automatically |
| T8 | Runbook | Runbooks are operational playbooks; SAC define acceptance before operations | Mixing runbook steps into SAC |
Row Details
- T3: Security Requirement See details below: T3
-
T6: Threat Model See details below: T6
-
T3: bullets
- Security requirements specify desired properties without specifying tests.
- Example: “Authentication must be strong” vs SAC: “All endpoints require 2FA for admin role.”
-
Teams often skip converting requirements into testable SAC.
-
T6: bullets
- Threat models list threats and mitigations.
- SAC are derived from mitigations and turn them into verifiable checks.
- A threat model without SAC leaves mitigations unvalidated.
Why does Security Acceptance Criteria matter?
Business impact:
- Revenue protection: reduces customer-impacting breaches and revenue loss.
- Trust: preserves brand reputation and customer confidence.
- Risk reduction: quantifies controls that reduce likelihood and impact of incidents.
Engineering impact:
- Incident reduction: validated gates reduce regressions that lead to breaches.
- Velocity improvement: automated SAC prevent last-minute security rework and blocking reviews.
- Developer feedback: fast, actionable failures guide fixes early.
SRE framing:
- SLIs/SLOs: SAC produce SLIs for security (e.g., authentication failure rates).
- Error budgets: security incidents consume error budget; crossing thresholds triggers mitigation.
- Toil reduction: automating acceptance checks reduces manual verification toil.
- On-call: SAC inform playbooks and on-call escalation criteria.
3–5 realistic “what breaks in production” examples:
- A new microservice exposes a debug endpoint and leaks tokens.
- Misconfigured IAM role allows broad cross-account access.
- Image with vulnerable dependency is deployed to production.
- Network policy change inadvertently allows lateral movement.
- Rate-limiting removal causes authentication service overload and degraded telemetry.
Where is Security Acceptance Criteria used? (TABLE REQUIRED)
| ID | Layer/Area | How Security Acceptance Criteria appears | Typical telemetry | Common tools |
|---|---|---|---|---|
| L1 | Edge and CDN | ACLs, WAF rules, TLS versions enforced pre-deploy | TLS handshake errors, WAF blocks, latencies | See details below: L1 |
| L2 | Network | Network policy tests and segmentation checks | Flow logs, deny counts, dropped packets | See details below: L2 |
| L3 | Service/Application | Authz/authn checks, input validation tests | Auth failures, 4xx rates, exploit attempts | See details below: L3 |
| L4 | Data & Storage | Encryption at rest/in transit checks, RBAC | Access logs, encryption flags, data exfil metrics | See details below: L4 |
| L5 | Platform (K8s) | Pod security policies, admission webhook checks | Pod eviction, policy denials | See details below: L5 |
| L6 | Serverless/PaaS | Function IAM, env secrets checks, timeout limits | Invocation errors, cold starts, secret access logs | See details below: L6 |
| L7 | CI/CD | Pipeline policy gates, secrets detection | Pipeline failure rates, gate pass rates | See details below: L7 |
| L8 | Observability & IR | SLI evaluation, alert triggers, postmortem acceptance | Alert counts, MTTR, SLO burn | See details below: L8 |
Row Details
- L1: bullets
- Edge checks include TLS maturity, HSTS, WAF rule baselines.
- Telemetry: handshake failures, blocked threats, rate-limited clients.
-
Tools: CDN/WAF logs, TLS scanners, policy-as-code.
-
L2: bullets
- Network-level SAC define allowed CIDR ranges, zero-trust enforcement.
- Telemetry: VPC flow logs, firewall deny metrics.
-
Tools: cloud firewall logs, network policy controllers.
-
L3: bullets
- Application SAC require parameterized queries, OWASP controls, proper error handling.
- Telemetry: increased 4xx/5xx, suspicious payload patterns.
-
Tools: SAST, DAST, RASP, application logs.
-
L4: bullets
- Data SAC ensure encryption, retention, and access policies enforced.
- Telemetry: anomalous data transfers, access spikes.
-
Tools: DLP, database audit logs, KMS logs.
-
L5: bullets
- Kubernetes SAC include admission controller policies, image provenance checks.
- Telemetry: admission webhook denials, pod creation failures.
-
Tools: OPA/Gatekeeper, Kyverno, image scanners.
-
L6: bullets
- Serverless SAC verify minimum runtime IAM, limit environment variables, and package integrity.
- Telemetry: unauthorized invocation attempts, function error rates.
-
Tools: function platform logs, secrets managers, IAM analyzers.
-
L7: bullets
- CI/CD SAC enforce build-time checks: secret scanning, dependency scanning, SBOM verification.
- Telemetry: build failure reasons, time to fix failures.
-
Tools: CI systems, scanners, artifact registries.
-
L8: bullets
- Observability SAC focus on measurable SLIs tied to security rules and post-incident criteria.
- Telemetry: SLO burn rate, alert-to-ack times.
- Tools: Monitoring, APM, incident platforms.
When should you use Security Acceptance Criteria?
When necessary:
- High-risk features or systems handling sensitive data.
- Regulatory or contractual requirements demand demonstrable controls.
- New cloud patterns introduced (e.g., multi-cluster networking).
- After an incident to prevent recurrence.
When it’s optional:
- Internal-only prototypes with short lifespans.
- Low-risk telemetry or logging-only experiments.
- Very early spike branches where speed to learn matters more than security.
When NOT to use / overuse it:
- Avoid gating trivial UI copy changes with heavy security checks.
- Don’t enforce rigid SAC for exploratory branches that need rapid iteration.
Decision checklist:
- If change touches sensitive data AND is deploy-to-prod -> enforce SAC.
- If change is minor UI tweak AND no auth/data changes -> lightweight checks.
- If new infra pattern introduced AND cross-team impact -> enforce SAC with cross-team review.
- If emergency patch for live exploit -> temporary bypass with post-deploy SAC validation.
Maturity ladder:
- Beginner: Manual checklist, SAST scans in CI, basic document-driven SAC.
- Intermediate: Automated pipeline gates, runtime SLIs for critical paths, policy-as-code.
- Advanced: End-to-end policy enforcement, chaos-validations, SLO-driven acceptance and continuous validation with ML anomaly detection.
How does Security Acceptance Criteria work?
Step-by-step:
- Define risk and scope: map assets, threat model, and acceptance goals.
- Convert into testable criteria: SLIs, automated checks, and human-review items.
- Implement automation: policy-as-code, CI/CD checks, admission controllers.
- Instrument telemetry: collect logs, metrics, traces tied to criteria.
- Enforce gates: block promotions until criteria pass or approved exceptions logged.
- Monitor runtime: SLIs and alerts validate behavior in production.
- Close loop: postmortems update SAC and automation.
Components and workflow:
- Definition repository: SAC stored in version control alongside code or infra.
- Policy execution engine: runs checks in CI/CD and runtime.
- Telemetry pipeline: gathers metrics and logs for SLIs.
- Gate and approval system: enforces pass/fail or exception flow.
- Observability and alerting: continuously measures SLOs and triggers remediation.
- Feedback loop: postmortem updates SAC, propagates changes.
Data flow and lifecycle:
- Authoring -> CI checks -> Artifact promotion -> Staging runtime SLI evaluation -> Deployment gating -> Production monitoring -> Incident analysis -> SAC update.
Edge cases and failure modes:
- False positives block deployments. Mitigation: tuning and exception workflow.
- Missing telemetry leads to blind spots. Mitigation: checklist and synthetic tests.
- Policy drift when criteria not versioned. Mitigation: tie SAC to repos and PR reviews.
Typical architecture patterns for Security Acceptance Criteria
- Policy-as-Code Gate: OPA/Gatekeeper or custom engine validates manifest and infra against SAC in CI and admission webhooks. Use when strong infra immutability and fast gating are needed.
- CI-Centric Testing: SAST, dependency scanning, and secrets scanning run in CI job with artifact failure on violation. Use for developer-centric workflows.
- Runtime SLO Enforcement: SLIs for security measured in observability and evaluated against SLOs; auto-rollback or throttles on breach. Use for services with tolerable automation actions.
- Canary + Security Probes: Deploy to canary cohort with additional runtime security tests and traffic shaping. Use when new code must be validated against live threat patterns.
- Chaos/Attack Simulation: Periodic game days and automated adversary simulation validate SAC under failure modes. Use for mature orgs with advanced security posture.
Failure modes & mitigation (TABLE REQUIRED)
| ID | Failure mode | Symptom | Likely cause | Mitigation | Observability signal |
|---|---|---|---|---|---|
| F1 | False positive blocking | Builds fail with benign finding | Overly strict rule or signature | Tune rules, add allowlist | High pipeline failure rate |
| F2 | Missing telemetry | No SLI data for critical path | Instrumentation not added | Add instrumentation, synthetic tests | Stale metric series |
| F3 | Exception sprawl | Many exceptions granted | Poor governance for exceptions | Audit exceptions, auto-expiry | Rising exception count |
| F4 | Drift between envs | Prod differs from staging | Incomplete infra-as-code | Enforce IaC, immutable artifacts | Diverging diff reports |
| F5 | Slow gate feedback | Long CI wait times | Heavy runtime tests in CI | Move to canary/runtime checks | Increased lead time |
| F6 | Incomplete threat mapping | Uncovered risk exploited | No updated threat model | Regular threat reviews | New exploit pattern in logs |
| F7 | Policy performance impact | Latency spikes | Synchronous policy validation | Make async or optimize rules | Latency metric spike |
| F8 | Unauthorized bypass | Emergency bypass abused | Poor audit and RBAC | Stronger RBAC and auditing | Unusual bypass frequency |
Row Details
- F1: bullets
- Example: SAST flags benign library pattern.
-
Fix: refine rules, add test cases, temporary exceptions with review.
-
F2: bullets
- Instrumentation missing for auth flow.
-
Fix: add counters, traces, and synthetic transactions.
-
F3: bullets
- Exceptions granted without expiration.
-
Fix: auto-expire exceptions and require re-approval.
-
F4: bullets
- Manual prod change introduces drift.
-
Fix: enforce IaC-only changes, alert on drift.
-
F5: bullets
- Long-running fuzz tests in CI slow devs.
-
Fix: split tests: fast checks in CI, deep tests in canary.
-
F6: bullets
- New threat exploited not covered by SAC.
-
Fix: update threat model and translate to SAC.
-
F7: bullets
- Synchronous admission checks add 200ms per request.
-
Fix: cache decisions and optimize rules.
-
F8: bullets
- Emergency token creation misused.
- Fix: restrict bypass roles, audit logs, and require follow-up.
Key Concepts, Keywords & Terminology for Security Acceptance Criteria
(40+ terms; term — 1–2 line definition — why it matters — common pitfall)
Authentication — Verifying identity of users or services — Central to access control — Pitfall: weak MFA policies. Authorization — Granting access rights based on identity — Determines resource access — Pitfall: over-permissive roles. Policy-as-Code — Policies written in code and enforced automatically — Enables repeatable enforcement — Pitfall: untested policy changes. SAST — Static application security testing at build time — Finds code-level vulnerabilities early — Pitfall: false positives. DAST — Dynamic testing of running applications — Finds runtime vulnerabilities — Pitfall: environment-dependent results. RASP — Runtime application self-protection — Blocks exploitation in runtime — Pitfall: performance overhead. Admission Controller — Kubernetes component to validate requests — Enforces pod-level SAC — Pitfall: single point of failure if synchronous. SBOM — Software bill of materials listing components — Helps vulnerability tracking — Pitfall: incomplete SBOMs. Secrets Scanning — Detecting leaked credentials in code or artifacts — Prevents credential exposure — Pitfall: scanner coverage gaps. Dependency Scanning — Checking third-party libs for known CVEs — Reduces supply-chain risk — Pitfall: transitive dependency blind spots. Image Scanning — Scanning container images for vulnerabilities — Prevents deploying vulnerable images — Pitfall: stale base images. Immutable Infrastructure — Infrastructure replaced rather than modified — Reduces drift — Pitfall: increased resource churn. Zero Trust — Assume no implicit trust, verify every request — Tightens network access — Pitfall: overly complex policies. SLO — Service level objective for measurable targets — Drives operational acceptance — Pitfall: wrong metric choice. SLI — Service level indicator, measurable metric — Directly measured for SLOs — Pitfall: noisy metric selection. Error Budget — Allowable threshold for SLO violation — Balances reliability vs change velocity — Pitfall: misunderstood allocation for security incidents. CI/CD Gate — Automated stop in pipeline based on checks — Prevents unsafe promotions — Pitfall: blocking pipelines due to flaky tests. Canary Deployment — Incremental rollout to subset of users — Limits blast radius — Pitfall: insufficient sampling. Chaos Engineering — Controlled experiments to test resilience — Validates SAC under failure — Pitfall: poor scope and safety controls. Threat Modeling — Systematic threat identification process — Drives SAC definition — Pitfall: not revisited after architecture changes. Attack Surface — Sum of entry points exposed to attackers — Guides SAC prioritization — Pitfall: ignoring non-obvious surfaces. Telemetry — Logs, metrics, traces collected for observability — Required to measure SAC — Pitfall: poor label consistency. KMS — Key management service for encryption keys — Critical for data confidentiality — Pitfall: misconfigured access to KMS keys. RBAC — Role-based access control for resource permissions — Simplifies permission management — Pitfall: role creep. ABAC — Attribute-based access control using attributes — Finer-grained policies — Pitfall: complex policy management. DLP — Data loss prevention to detect exfiltration — Protects sensitive data — Pitfall: high false positive rates. Incident Response — Process for addressing security incidents — SAC feed into acceptance of remediation — Pitfall: poor runbook quality. Postmortem — Retrospective analysis after incidents — Drives SAC improvement — Pitfall: lack of actionable follow-ups. Audit Trail — Immutable record of actions and approvals — Forensics and compliance — Pitfall: incomplete or truncated logs. Immutable Artifacts — Versioned artifacts that are not changed post-build — Ensures reproducibility — Pitfall: large artifact storage. Admission Webhook — External policy check integrated with platform — Applies SAC at runtime request time — Pitfall: availability coupling. RBAC Principle of Least Privilege — Grant minimal permissions required — Reduces misuse risk — Pitfall: over-restrictive blocking productivity. SIEM — Security information and event management tool — Correlates telemetry into alerts — Pitfall: alert fatigue. MTTR — Mean time to repair; how quickly incidents are resolved — Measures response effectiveness — Pitfall: focusing on MTTR over root cause. SBOM Provenance — Metadata tying artifacts to sources — Improves supply-chain trust — Pitfall: absent provenance data. Dependency Pinning — Fixing library versions to avoid unexpected changes — Reduces surprise updates — Pitfall: missed security updates. Vulnerability Management — Process to triage and remediate CVEs — Feeds SAC policy thresholds — Pitfall: backlog accumulation. Threat Intelligence — External feeds about active threats — Informs SAC prioritization — Pitfall: irrelevant or noisy feeds. Policy Drift — Divergence between intended policy and actual state — Breaks SAC reliability — Pitfall: manual prod changes. Exception Management — Process for handling temporary SAC exceptions — Allows practical flexibility — Pitfall: never expiring exceptions. Synthetic Testing — Automated simulated requests to exercise paths — Validates SAC runtime — Pitfall: synthetic mismatch to real traffic. Telemetry Correlation — Linking different signals into one incident view — Essential for root cause — Pitfall: inconsistent identifiers.
How to Measure Security Acceptance Criteria (Metrics, SLIs, SLOs) (TABLE REQUIRED)
| ID | Metric/SLI | What it tells you | How to measure | Starting target | Gotchas |
|---|---|---|---|---|---|
| M1 | Secrets leakage count | Number of leaked secrets detected | Scan repos, artifacts, runtime | 0 per week | False positives |
| M2 | Vulnerable dependency rate | Fraction of services with critical CVEs | Periodic dependency scan / SBOM | 0% critical | Lag in CVE feeds |
| M3 | Auth failure rate | Unexpected auth failures indicating attacks | Auth logs, error codes per minute | <0.1% | Normal auth spikes |
| M4 | Policy violation rate | Number of policy-as-code denials | CI/CD and admission logs | 0 for critical rules | Rule tuning needed |
| M5 | SLO burn for security SLIs | Rate of SLO breaches related to security | Evaluate SLO windows | Error budget 1% | Correlated incidents inflate burn |
| M6 | Exception request count | Number of SAC exceptions granted | Exception registry | Auto-expire exceptions | Accumulation masks risk |
| M7 | Time-to-remediate vulnerabilities | Mean time to patch/mitigate CVEs | Ticket timestamps | <7 days for critical | Prioritization disputes |
| M8 | Unauthorized access attempts | Suspicious access events | Auth logs and SIEM | Downtrend over time | High baseline noise |
| M9 | Admission webhook denial latency | Impact of policies on request latency | Trace and latency metrics | <100ms added | Synchronous checks cost |
| M10 | Deployment failure due to SAC | Fraction of deployments blocked by SAC | CI/CD gating metrics | Low but non-zero | Flaky tests cause noise |
Row Details
- M1: bullets
- Measure across repos, container layers, and uploads to object storage.
-
Add severity labeling for secrets (tokens vs low-sensitivity keys).
-
M2: bullets
- Use SBOM and dependency scanning; count critical/severe CVEs per service.
-
Track trend and time to remediate.
-
M5: bullets
- Security SLOs can include rate of escalated incidents or successful exploit attempts.
- Start with conservative targets and iterate.
Best tools to measure Security Acceptance Criteria
H4: Tool — OPA / Gatekeeper
- What it measures for Security Acceptance Criteria: Infrastructure and manifest policy compliance.
- Best-fit environment: Kubernetes and GitOps-driven infra.
- Setup outline:
- Define Rego policies for SAC.
- Deploy Gatekeeper as admission controller.
- Integrate CI policy checks.
- Strengths:
- Declarative and centralized.
- Strong community policy library.
- Limitations:
- Rego learning curve.
- Synchronous checks can add latency.
H4: Tool — Static Application Security Testing (SAST) tool
- What it measures for Security Acceptance Criteria: Code-level vulnerabilities and insecure patterns.
- Best-fit environment: Application codebases and CI pipelines.
- Setup outline:
- Configure rules for languages.
- Embed scanning in pre-merge CI.
- Tune rules and add suppressions with justification.
- Strengths:
- Early detection.
- Integrates with IDEs and PR flows.
- Limitations:
- False positives.
- Limited runtime context.
H4: Tool — Dependency / SBOM scanner
- What it measures for Security Acceptance Criteria: Known CVEs and component provenance.
- Best-fit environment: Build pipelines and artifact registries.
- Setup outline:
- Generate SBOMs during build.
- Scan SBOM against vulnerability databases.
- Fail builds on critical findings.
- Strengths:
- Supply chain visibility.
- Automatable.
- Limitations:
- CVE data lag.
- Not all components present in SBOM.
H4: Tool — Runtime Application Protection / WAF
- What it measures for Security Acceptance Criteria: Exploit attempts and blocking rate.
- Best-fit environment: Edge, API gateways, and services.
- Setup outline:
- Configure rule sets and monitoring mode.
- Move from detection to prevention with canary.
- Feed detections into SIEM.
- Strengths:
- Real-time protection.
- Visible attack telemetry.
- Limitations:
- Tuning required to avoid false positives.
- May not cover internal traffic.
H4: Tool — SIEM / XDR
- What it measures for Security Acceptance Criteria: Correlated security incidents and anomalies.
- Best-fit environment: Enterprise-scale observability and IR.
- Setup outline:
- Ingest logs and alerts from sources.
- Define correlation rules for SAC-related signals.
- Create incident templates and dashboards.
- Strengths:
- Centralized analysis.
- Supports compliance evidence.
- Limitations:
- Alert fatigue.
- Expensive at scale.
H4: Tool — Chaos/Attack Simulation Platform
- What it measures for Security Acceptance Criteria: Resilience and response to simulated attacks.
- Best-fit environment: Staging and canary environments.
- Setup outline:
- Define simulations (e.g., token theft, IAM permission changes).
- Run scheduled game days.
- Automate validation of SAC during tests.
- Strengths:
- Validates end-to-end behavior.
- Improves runbook quality.
- Limitations:
- Risk of unintended impact.
- Requires careful scoping.
H3: Recommended dashboards & alerts for Security Acceptance Criteria
Executive dashboard:
- Panels:
- Overall SAC pass rate by service: high-level health.
- Number of open critical vulnerabilities.
- SLO burn for security SLIs.
- Exception count and age.
- Why: gives leadership a single security acceptance health snapshot.
On-call dashboard:
- Panels:
- Real-time policy violation stream.
- Auth anomalies and failed MFA attempts.
- Critical CVE remediation status.
- Incident playbook quick links.
- Why: focused on actionable items for responders.
Debug dashboard:
- Panels:
- Detailed admission controller denials with reasons.
- Trace of failing auth requests with headers and user IDs.
- Recent builds blocked by SAC with logs.
- Canary traffic security probes and results.
- Why: used to triage failing acceptance criteria and root cause.
Alerting guidance:
- Page vs ticket:
- Page (pager) for confirmed production security incidents or SLO burn that impacts customer data or availability.
- Ticket for non-urgent failures such as pre-prod SAC failures or non-critical CVEs.
- Burn-rate guidance:
- Define burn rate thresholds for security SLOs; alert at 50% burn and page at 100% within a rolling window.
- Noise reduction tactics:
- Deduplicate alerts by grouping similar signatures.
- Suppress alerts during known maintenance windows.
- Use alert severity tiers and automatic aggregation for repeated events.
Implementation Guide (Step-by-step)
1) Prerequisites – Inventory of assets and data classification. – Threat model and risk register. – Baseline observability: logs, metrics, traces. – CI/CD pipeline capable of running policy checks. – SAC repository and governance process.
2) Instrumentation plan – Map SAC to SLIs and required telemetry. – Define labels and trace context for correlation. – Add counters and structured logs in critical paths.
3) Data collection – Centralize logs to SIEM or logging backend. – Ensure retention and access controls. – Export metrics for SLI evaluation.
4) SLO design – Choose SLIs that reflect acceptance (e.g., auth success rate, policy denial rate). – Set realistic starting targets and error budgets. – Define evaluation windows and burn strategies.
5) Dashboards – Build executive, on-call, and debug dashboards. – Include drill-down links from high-level panels.
6) Alerts & routing – Map alerts to pages vs tickets. – Define escalation policies and on-call roles. – Implement dedupe and suppression logic.
7) Runbooks & automation – Write runbooks for common SAC failures. – Automate remediation where safe (e.g., auto-rotate compromised keys). – Create exception request workflows with expiration.
8) Validation (load/chaos/game days) – Run synthetic tests and negative tests for SAC. – Conduct attack simulation and chaos to validate responses. – Evaluate SAC behavior under load.
9) Continuous improvement – Postmortems for SAC-related incidents. – Quarterly review of criteria and telemetry. – Track metrics and iterate thresholds.
Pre-production checklist
- SAC defined and versioned for feature.
- CI checks for SAC implemented and passing.
- Synthetic tests simulating threat patterns in staging.
- Documentation and runbooks ready.
Production readiness checklist
- Runtime SLIs instrumented and visible.
- Monitoring and alerts configured and tested.
- Exception policy reviewed and authorized.
- Deployment canary configured for new changes.
Incident checklist specific to Security Acceptance Criteria
- Verify SAC logs and CI gating evidence.
- Confirm whether change passed pre-deploy SAC.
- Execute runbook and isolate affected component.
- Capture telemetry and open postmortem.
- Update SAC to prevent recurrence.
Use Cases of Security Acceptance Criteria
Provide 8–12 use cases:
1) New API exposing customer PII – Context: Launching analytics API with PII fields. – Problem: Risk of unauthorized data exposure. – Why SAC helps: Ensures authz, encryption, and logging before release. – What to measure: Auth failures, data access counts, field-level encryption status. – Typical tools: SAST, DAST, SIEM, KMS.
2) Multi-tenant Kubernetes cluster – Context: Shared cluster for multiple tenants. – Problem: Risk of cross-tenant access. – Why SAC helps: Define network and namespace isolation tests. – What to measure: Pod-to-pod unexpected flow logs, admission denials. – Typical tools: Network policy controllers, OPA/Gatekeeper, CNI logs.
3) Third-party dependency upgrade – Context: Upgrade popular library with security fixes. – Problem: Introducing regression or new vulnerability. – Why SAC helps: Require SBOM and regression tests plus policy checks. – What to measure: Vulnerability scan results, test coverage pass rate. – Typical tools: SBOM tools, dependency scanners, CI.
4) Serverless payment webhook – Context: Function handles payment webhooks. – Problem: Secrets leakage or over-privileged function. – Why SAC helps: Ensure least privilege, secret retrieval patterns, invocation limits. – What to measure: Secret access count, invocation anomalies. – Typical tools: Secrets manager, function platform logs, IAM analyzer.
5) CI/CD pipeline for microservices – Context: Many services with frequent releases. – Problem: Inconsistent security checks across services. – Why SAC helps: Centralized policy-as-code in pipeline templates. – What to measure: Gate pass rates, time to fix blocked builds. – Typical tools: CI, OPA, artifact registry.
6) Cloud cross-account role changes – Context: Setting up cross-account automation. – Problem: Risk of lateral privilege escalation. – Why SAC helps: Enforce bounded roles and validate trust policies. – What to measure: Role assumption audit logs, least-privilege violations. – Typical tools: Cloud IAM analyzers, audit logs.
7) Data export feature – Context: Admins can export customer data. – Problem: Potential exfiltration or leaked exports. – Why SAC helps: Ensure DLP rules and approval gating. – What to measure: Export counts, anomalous export destinations. – Typical tools: DLP, SIEM, approval workflows.
8) Rapid production hotfix – Context: Immediate fix for critical bug. – Problem: Emergency bypass risks bypassing security. – Why SAC helps: Controlled exception workflow and post-deploy validation. – What to measure: Exception usage, post-deploy SLI checks. – Typical tools: Ticketing, audit logs, CI.
9) Multi-region replication changes – Context: Add replication for compliance. – Problem: Data residency and encryption gaps. – Why SAC helps: Validate encryption in transit and at rest in target region. – What to measure: Replication success, encryption flags. – Typical tools: Cloud storage logs, KMS.
10) Observability instrumentation rollout – Context: New tracing and logging components. – Problem: Sensitive data in logs. – Why SAC helps: Ensure PII redaction and secure retention. – What to measure: PII occurrences in logs, retention policies compliance. – Typical tools: Logging pipeline, PII scanners.
Scenario Examples (Realistic, End-to-End)
Scenario #1 — Kubernetes: Multi-tenant Namespace Onboarding
Context: New customer namespaces added to shared cluster.
Goal: Prevent cross-tenant access and enforce image provenance.
Why Security Acceptance Criteria matters here: Prevent data leakage and privilege escalation by validating admission controls and image policies before and after onboarding.
Architecture / workflow: GitOps repo with namespace manifests -> CI runs policy checks -> OPA/Gatekeeper admission enforces policies -> Registry scans images for provenance -> Canary deployment with network policy tests -> Monitoring for unexpected flows.
Step-by-step implementation:
- Define SAC: no hostPath, restricted capabilities, signed images only.
- Implement Rego policies and add to CI.
- Add admission controller to cluster.
- Configure image registry scanning and SBOM checks.
- Create synthetic network tests to ensure isolation.
- Monitor pod admission denials and flow logs.
What to measure: Admission denial rate, unexpected pod-to-pod flow incidents, SBOM provenance pass.
Tools to use and why: OPA/Gatekeeper for policies, registry scanner for SBOM, CNI flow logs for telemetry.
Common pitfalls: Overly strict policies block legitimate workloads.
Validation: Run staging onboarding simulation and chaos test network isolation.
Outcome: New namespaces onboarded only when all SAC pass; reduced cross-tenant incidents.
Scenario #2 — Serverless/managed-PaaS: Payment Webhook Function
Context: A managed function handles sensitive payment events.
Goal: Ensure no secret leakage and least privilege.
Why Security Acceptance Criteria matters here: Serverless increases attack surface via over-privileged roles and easy secret exposure.
Architecture / workflow: Code repo -> CI secrets scan and SBOM -> IAM policy linting -> Deploy to staging with function-level policy checks -> Runtime monitoring for secret access and abnormal invocations -> Production canary.
Step-by-step implementation:
- Define SAC: no inline secrets, role limited to decrypt KMS key, rate limit enforcement.
- Add secrets scanning in CI and fail on inline secrets.
- Lint IAM policies with policy-as-code.
- Deploy to staging and run synthetic payment events.
- Monitor function logs for secret access patterns.
What to measure: Secrets scan pass rate, function auth anomalies, invocation error rates.
Tools to use and why: Secrets manager, function platform logs, IAM analyzers.
Common pitfalls: Developer uses environment variables for secrets incorrectly.
Validation: Game day simulating credential compromise and observe auto-rotate remediation.
Outcome: Reduced secret leaks and least-privilege enforcement before production.
Scenario #3 — Incident-response/postmortem: Ransomware Containment
Context: A production service impacted by a ransomware attempt via exposed admin endpoint.
Goal: Ensure remediation meets acceptance criteria before recovery.
Why Security Acceptance Criteria matters here: Post-incident, SAC prevent re-introduction of the vulnerable path.
Architecture / workflow: Triage -> isolate affected hosts -> hotfix -> CI runs SAC checks including new exploit tests -> staging validation -> production re-deploy -> continuous monitoring for indicators.
Step-by-step implementation:
- Document incident and affected assets in postmortem.
- Create SAC requiring removal or secure hardening of endpoint.
- Implement automated regression exploit tests.
- Run CI and staging validation.
- Deploy with canary and monitor indicators.
What to measure: Exploit test results, number of related alerts, time-to-full containment.
Tools to use and why: SIEM for indicators, CI for regression tests, monitoring for suspicious I/O.
Common pitfalls: Skipping full verification due to pressure to restore service.
Validation: Red-team replay and automated checks confirm no regression.
Outcome: Fix validated by SAC and risk of recurrence reduced.
Scenario #4 — Cost/Performance Trade-off: Encryption at Rest for Hot Cache
Context: Adding encryption at rest for a high-performance cache increases latency and cost.
Goal: Balance cost and security by defining acceptable latency and cost SLOs in SAC.
Why Security Acceptance Criteria matters here: Prevent blind security change that degrades user experience.
Architecture / workflow: Change request -> evaluate SAC with performance SLO vs encryption coverage -> CI tests for functionality -> staging with performance benchmarks -> production canary measuring latency and cost metrics -> decision based on SLOs.
Step-by-step implementation:
- Define dual SAC: all data encrypted at rest, and 99th percentile latency increase <10ms.
- Implement encryption with hardware key caching to minimize latency.
- Run synthetic latency benchmarks in staging.
- Canary to portion of traffic and monitor cost delta.
- Roll forward or rollback based on SLOs and budget thresholds.
What to measure: Latency P99, CPU usage, cost per GB-month, SLO burn.
Tools to use and why: APM for latency, cloud billing, KMS logs.
Common pitfalls: Measuring average latency instead of P99.
Validation: Load tests and canary analysis.
Outcome: Encryption deployed with acceptable performance and cost trade-offs.
Scenario #5 — CI/CD pipeline: Organization-wide Policy Rollout
Context: Standardize SAC across many repositories.
Goal: Enforce uniform policy-as-code in CI while minimizing developer friction.
Why Security Acceptance Criteria matters here: Ensures consistency and reduces per-repo security variance.
Architecture / workflow: Central policy repo -> CI shared libraries -> automatic PR checks -> staged rollout -> monitor blocked builds and developer feedback.
Step-by-step implementation:
- Define core SAC and map to policy rules.
- Publish CI plugins and templates to repos.
- Stage rollout to pilot teams.
- Monitor gate pass rates and feedback.
- Adjust rules and complete organization rollout.
What to measure: Gate pass rate, time-to-fix, developer complaints.
Tools to use and why: CI integrations, policy-as-code, telemetry from pipeline.
Common pitfalls: Poor communication and insufficient migration windows.
Validation: Pilot success metrics and iterative rollout.
Outcome: Consistent policy enforcement with acceptable developer experience.
Common Mistakes, Anti-patterns, and Troubleshooting
List of mistakes with Symptom -> Root cause -> Fix (15–25 entries, include 5 observability pitfalls)
1) Symptom: CI builds blocked constantly -> Root cause: flaky SAST rule -> Fix: Triage false positives and tune rules. 2) Symptom: No SLI data for auth -> Root cause: Missing instrumentation -> Fix: Add counters and traces in auth service. 3) Symptom: Many exceptions open -> Root cause: Low governance on exceptions -> Fix: Implement exception expiry and audits. 4) Symptom: Admission controller adds latency -> Root cause: Synchronous heavy rules -> Fix: Cache results or make checks async. 5) Symptom: Policy drift between prod and IaC -> Root cause: Manual prod changes -> Fix: Enforce IaC-only and detect drift. 6) Symptom: High alert volume on security dashboards -> Root cause: Poor alert tuning -> Fix: Consolidate rules, add dedupe, increase thresholds. 7) Symptom: Secrets found in logs -> Root cause: Poor logging sanitation -> Fix: Redact PII/secrets and review log pipeline. 8) Symptom: Postmortem lacks SAC updates -> Root cause: No loop to update criteria -> Fix: Require SAC review in postmortem actions. 9) Symptom: Vulnerabilities accumulate -> Root cause: No prioritization process -> Fix: Create vulnerability triage with SLAs. 10) Symptom: Canary showed no traffic anomalies but prod incident occurs -> Root cause: Canary sample not representative -> Fix: Improve traffic mirroring and sampling. 11) Symptom: SIEM misses correlated events -> Root cause: Missing context and identifiers -> Fix: Standardize identifiers across telemetry. 12) Symptom: Developers bypass gates -> Root cause: Friction and slow feedback -> Fix: Improve speed and developer UX, add temporary exception process. 13) Symptom: False negative on secrets scan -> Root cause: Obfuscated or encoded secrets -> Fix: Expand pattern detection and binary scanning. 14) Symptom: Overly broad RBAC roles -> Root cause: Role design based on convenience -> Fix: Rework roles and adopt least privilege. 15) Symptom: Too strict SAC halting business -> Root cause: Misaligned risk vs business need -> Fix: Introduce exception policy and risk acceptance process. 16) Symptom: Observability cost skyrockets -> Root cause: High cardinality logs and traces -> Fix: Reduce cardinality, sample traces. 17) Symptom: Missing context in alerts -> Root cause: Unstructured logs and missing labels -> Fix: Add standardized labels and structured logging. 18) Symptom: Metrics show sudden drop in telemetry -> Root cause: Logging pipeline outage -> Fix: Alert on telemetry pipeline health and fail open with caution. 19) Symptom: On-call overwhelmed with security alerts -> Root cause: Alerts not categorized by severity -> Fix: Introduce severity tiers and dedicated security on-call. 20) Symptom: Post-deploy tests pass but users experience breaches -> Root cause: Tests not covering attack surface -> Fix: Expand test coverage and conduct red-team exercises. 21) Symptom: Too many exceptions in registry -> Root cause: Exceptions never removed -> Fix: Enforce expiry and periodic review. 22) Symptom: Slow remediation of CVEs -> Root cause: Resource constraints and poor ownership -> Fix: Assign owners and SLAs for critical fixes. 23) Symptom: Lack of end-to-end tracing for security flows -> Root cause: No trace context propagation -> Fix: Add trace propagation and correlation IDs. 24) Symptom: Security SLO constantly burning -> Root cause: Definition misaligned or underlying problem unresolved -> Fix: Reassess SLOs and fix root cause.
Observability-specific pitfalls included above: items 2, 11, 16, 17, 18, 23.
Best Practices & Operating Model
Ownership and on-call:
- Security SAC ownership: Shared between product, security, and platform teams.
- On-call: Include security responder for high-severity SAC breaches.
- Clear escalation path for SAC failures.
Runbooks vs playbooks:
- Runbooks: Step-by-step remediation steps for recurring SAC failures.
- Playbooks: Higher-level decision trees for incidents and policy exceptions.
Safe deployments:
- Canary and progressive rollouts with security probes.
- Automatic rollback on SLO breach or security detection.
- Feature flags to disable risky features quickly.
Toil reduction and automation:
- Automate common fixes where safe, e.g., auto-rotate compromised credentials.
- Automate policy checks in CI and admission controllers.
- Reduce manual exception handling by enforcing expiry.
Security basics:
- Principle of least privilege for all roles and services.
- Encrypt data at rest and in transit where required.
- Keep SBOM and vulnerability scanning up to date.
Weekly/monthly routines:
- Weekly: Review new policy violations and exceptions.
- Monthly: Vulnerability triage, update SAC backlog, rehearse runbooks.
- Quarterly: Threat model refresh and SAC audit.
What to review in postmortems related to Security Acceptance Criteria:
- Whether SAC existed and were followed.
- Whether SAC automation failed or was bypassed.
- What new SAC should be added based on incident.
- How telemetry could be improved to detect earlier.
Tooling & Integration Map for Security Acceptance Criteria (TABLE REQUIRED)
| ID | Category | What it does | Key integrations | Notes |
|---|---|---|---|---|
| I1 | Policy Engine | Enforces policies in CI and runtime | CI, K8s admission controllers | See details below: I1 |
| I2 | SAST | Scans source code for vulnerabilities | CI, IDE integrations | See details below: I2 |
| I3 | Dependency Scanner | Scans SBOMs and libs for CVEs | Artifact registry, CI | See details below: I3 |
| I4 | Image Scanner | Scans container images for issues | Registry, CI, K8s | See details below: I4 |
| I5 | Secrets Manager | Stores and rotates secrets securely | KMS, CI, runtime | See details below: I5 |
| I6 | SIEM | Correlates logs and alerts for IR | Log pipeline, ticketing | See details below: I6 |
| I7 | Admission Controller | Blocks bad manifests at runtime | K8s API server | See details below: I7 |
| I8 | Monitoring/APM | Measures SLIs and SLOs | Traces, metrics, dashboards | See details below: I8 |
| I9 | Chaos Platform | Runs resilience and attack tests | CI, staging, observability | See details below: I9 |
| I10 | Ticketing/IR | Tracks incidents and exceptions | CI, SIEM, dashboards | See details below: I10 |
Row Details
- I1: bullets
- Examples: OPA/Gatekeeper for K8s, policy-as-code in CI.
-
Integrates with GitOps and admission webhooks.
-
I2: bullets
- Examples: Language-specific SAST tools.
-
Integrates with PR checks and IDE linting.
-
I3: bullets
- Generates SBOMs and checks CVEs.
-
Integrates with build and artifact registry.
-
I4: bullets
- Scans images for CVEs and misconfigurations.
-
Integrates with registries and deployment pipelines.
-
I5: bullets
- Secrets management and rotation.
-
Integrates with runtime platforms and CI for secret injection.
-
I6: bullets
- Centralized correlation and alerting for security events.
-
Integrates with log sources, threat feeds.
-
I7: bullets
- Real-time enforcement at API request time.
-
Integrates with policy engines and audit logs.
-
I8: bullets
- Tracks SLI/SLO and provides dashboards.
-
Integrates with metrics ingestion and tracing.
-
I9: bullets
- Simulates attacks and failure modes.
-
Integrates with staging and monitoring to validate SAC.
-
I10: bullets
- Manages exceptions, incidents, and postmortems.
- Integrates with CI for exception approvals and auditing.
Frequently Asked Questions (FAQs)
H3: What is the difference between Security Acceptance Criteria and a security checklist?
Security Acceptance Criteria are testable and often automated; checklists may be manual and high-level. SAC are actionable and enforceable in CI/CD.
H3: Should SAC be mandatory for all deployments?
Not always; apply to high-risk, sensitive, or cross-team-impact changes. Lightweight checks can be used for low-risk changes.
H3: How do you handle emergency deployments that bypass SAC?
Use a controlled exception process with RBAC, short expiry, and mandatory post-deploy SAC validation.
H3: Who owns SAC in an organization?
Shared ownership: product defines risk, security defines policy, platform enforces automation. Clear primary owner reduces drift.
H3: How often should SAC be reviewed?
At least quarterly or whenever significant architecture or threat model changes occur.
H3: Can SAC be machine-enforced?
Yes; policy-as-code, CI gates, and admission controllers are standard methods to enforce SAC.
H3: How do you measure if SAC are effective?
Track SLIs tied to SAC, incident recurrence rates, and the fraction of prevented risky deployments.
H3: Do SAC replace security reviews?
No; SAC complement reviews by automating repeatable checks. Complex design reviews still need human input.
H3: How do you avoid developer friction with SAC?
Prioritize fast feedback, provide clear guidance, sandbox exceptions, and engage developers during rule design.
H3: How granular should SAC be?
As granular as needed to test risk; start coarse and iterate. Avoid micro-managing trivial items that block velocity.
H3: What telemetry is mandatory for SAC?
At minimum, logs and metrics for the critical path being protected and audit trails for gating decisions.
H3: Are security SLOs realistic?
They are when tied to measurable behaviors (e.g., failed auth attempts) and when starting targets are conservative and iterated.
H3: How do SAC interact with compliance requirements?
SAC operationalize compliance controls by making them testable and demonstrable during audits.
H3: How to handle false positives from SAC?
Tune rules, improve test data, add allowlists with expiration, and improve detection fidelity.
H3: Can machine learning help SAC?
Yes, ML can help reduce false positives and detect anomalies but requires careful validation to avoid opaque decisions.
H3: What’s a good starting point for SAC in a small team?
Start with secrets scanning, dependency scanning, and basic admission checks; gradually add runtime SLOs.
H3: How to scale SAC across many teams?
Provide shared policy libraries, CI templates, and a governance model with clear exception workflows.
H3: What happens when SAC conflict with performance goals?
Define trade-off SAC that include performance SLOs and use canaries to measure real impact before full rollout.
Conclusion
Security Acceptance Criteria bridge the gap between policy and practice by making security requirements explicit, testable, and automatable. They reduce incidents, enable predictable deployments, and provide measurable evidence for audits and postmortems.
Next 7 days plan (5 bullets):
- Day 1: Inventory critical services and map one high-risk SAC to each.
- Day 2: Add or validate basic CI checks: secrets scanning and dependency scanning.
- Day 3: Instrument one critical auth path with SLIs and dashboards.
- Day 4: Implement a policy-as-code rule in a test repo and add to CI.
- Day 5–7: Run a small canary with runtime probes and document runbooks for observed failures.
Appendix — Security Acceptance Criteria Keyword Cluster (SEO)
Primary keywords
- Security Acceptance Criteria
- security acceptance tests
- policy-as-code for security
- CI/CD security gates
- security SLOs and SLIs
Secondary keywords
- policy enforcement in CI
- admission controller security
- secrets scanning in CI
- SBOM security checks
- Kubernetes security acceptance
- serverless security acceptance
- runtime security monitoring
- canary security testing
Long-tail questions
- what are security acceptance criteria in CI/CD
- how to write security acceptance criteria for microservices
- security acceptance criteria examples for k8s
- how to measure security acceptance criteria with SLIs
- security acceptance criteria for serverless functions
- how to automate security acceptance criteria in pipelines
- what telemetry is needed for security acceptance tests
- how to balance security acceptance criteria and release velocity
Related terminology
- SAST and DAST checks
- dependency vulnerability scanning
- admission webhook policies
- least privilege IAM rules
- audit trail for security gates
- exception management for security policies
- canary deployments for security validation
- chaos engineering for security testing
- SIEM integration for security SLOs
- secrets management and rotation
- SBOM generation and scanning
- vulnerability triage SLAs
- incident response runbooks
- postmortem-driven SAC updates
- synthetic security testing
- observability for security acceptance
- network policy enforcement
- zero trust enforcement checks
- encryption at rest/in transit verification
- policy drift detection and remediation
- developer-friendly security gates
- automated remediation for compromised secrets
- provenance checks for container images
- policy tuning and false positive reduction
- telemetry correlation for security incidents
- RBAC and ABAC policy validation
- secure deployment patterns and canaries
- SLO burn rate for security incidents
- exception auditing and expiry policies
- security acceptance checklist for onboarding
- centralized policy repo for security
- SBOM provenance and supply chain risk
- admission controller performance considerations
- security playbooks vs runbooks
- security acceptance criteria templates for SaaS
- security acceptance criteria for PCI/PII systems
- observability cost optimization for security
- ML anomaly detection for security SAC
- feature flagging for security rollbacks