Skip to main content
← All posts·
Security

Frictionless Security: Why Automation Is the Only Path to Security That Developers Actually Use

Security that slows developers down gets bypassed. Security that's invisible gets adopted. Here's how to embed automated security controls into every stage of the development lifecycle — from commit to production — without adding friction.

Luca Berton13 min read

Here's a truth that security teams don't like to hear: every security control that adds friction gets bypassed. Not maliciously — pragmatically. Developers have deadlines, product managers have roadmaps, and when the security review takes two weeks, someone finds a shortcut. Every time.

The traditional model of security as a gate — a checkpoint you must pass through before production — is fundamentally broken. It creates adversarial relationships between security and engineering. It concentrates risk into high-stakes approval moments. And it scales inversely with development velocity: the faster your teams ship, the more the gate becomes a bottleneck.

The alternative is frictionless security: security controls that are automated, embedded in existing workflows, and invisible to developers when things are correct. Developers don't fill out security questionnaires — their code is scanned automatically. They don't request firewall rules — NetworkPolicies are generated from service dependencies. They don't wait for security review — policy-as-code evaluates every commit in seconds.

This article describes how to build that world. Not as an aspiration — as an architecture.

The Friction Tax

Security friction isn't just annoying — it's measurably expensive:

  • Context switching: A developer interrupted by a security review loses 23 minutes of focus (University of California study). Multiply by every review, every day, across every developer
  • Queue time: If security reviews take 3 days on average, and your team ships 10 changes per week, you have 30 developer-days of work sitting in a queue at any given time
  • Shadow IT: When the approved path is too slow, teams build unofficial paths. Unofficial paths have zero security controls. The friction you added to improve security actually reduced it
  • Adversarial culture: When security is perceived as the team that says "no" and slows things down, developers stop consulting security early. Problems that could have been caught in design get caught in production — or not at all

Principle: Paved Roads, Not Gates

Netflix popularised the "paved road" concept: instead of blocking developers from doing unsafe things, provide a default path that's both easy and secure. Make the secure way the easy way.

  • Gates say: "You can't deploy until security approves" → friction, bottleneck, adversarial
  • Paved roads say: "Use this template and you're pre-approved" → fast, secure, scalable

The paved road approach works because it aligns incentives. Developers want to ship fast. Security wants to ship safe. If the fastest path is also the safest path, both teams get what they want.

📘 Book

Kubernetes Recipes

Practical guide for container orchestration and deployment — hands-on patterns you can use today.

View on Amazon →

Layer 1: Secure Defaults in the Platform

The most powerful form of frictionless security is security that developers never see because it's built into the platform:

Namespace Templates

When a team requests a new Kubernetes namespace, they don't configure security policies — the namespace template includes them:

# Namespace template applied automatically
# Developers request: "I need a namespace for service-x"
# They get all of this for free:

# 1. Network isolation (default deny)
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]
---
# 2. Pod Security Standards (restricted)
apiVersion: v1
kind: Namespace
metadata:
  labels:
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/warn: restricted
---
# 3. Resource quotas (prevent noisy neighbour)
apiVersion: v1
kind: ResourceQuota
metadata:
  name: default-quota
spec:
  hard:
    requests.cpu: "8"
    requests.memory: 16Gi
    limits.cpu: "16"
    limits.memory: 32Gi
---
# 4. LimitRange (sane defaults per pod)
apiVersion: v1
kind: LimitRange
metadata:
  name: default-limits
spec:
  limits:
  - default:
      cpu: 500m
      memory: 512Mi
    defaultRequest:
      cpu: 100m
      memory: 128Mi
    type: Container

The developer didn't configure any security. They didn't even know about it. They just got a namespace that's secure by default.

Golden Container Images

Provide hardened base images that teams use as their FROM line:

  • Distroless or minimal OS with only required runtime libraries
  • Non-root user pre-configured
  • Read-only filesystem by default
  • Security scanning passes as part of the base image CI
  • Weekly automated rebuilds to pick up OS-level security patches

When a CVE affects the base OS, the platform team rebuilds the golden images. Every downstream application that uses them picks up the fix on their next build — without any developer action.

Layer 2: Policy as Code in the Pipeline

Security policies encoded as code and evaluated automatically in CI/CD:

Admission Control

# Kyverno policy: block images without signatures
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-image-signature
spec:
  validationFailureAction: Enforce
  rules:
  - name: verify-signature
    match:
      any:
      - resources:
          kinds: [Pod]
    verifyImages:
    - imageReferences: ["registry.company.com/*"]
      attestors:
      - entries:
        - keys:
            publicKeys: |-
              -----BEGIN PUBLIC KEY-----
              ...
              -----END PUBLIC KEY-----
  • Image signing verification: Only signed images from your registry can run. No developer action required — if they pushed through the pipeline, the image is signed automatically
  • SBOM requirement: Images without an attached SBOM are rejected. SBOM generation is part of the pipeline — developers don't generate SBOMs manually
  • No privileged containers: Blocked at the admission controller level. Developers don't need to remember — the platform prevents it
  • Required labels: Team ownership, data classification, compliance scope — enforced by policy, populated from the service catalogue

Pipeline Security Gates (Automated)

# Security checks that run automatically on every PR
# No developer action required — just push code

security-checks:
  steps:
    # Static analysis (5 seconds)
    - name: SAST
      run: semgrep scan --config auto --error

    # Dependency vulnerability scan (10 seconds)  
    - name: Dependency scan
      run: grype dir:. --fail-on high

    # Secret detection (3 seconds)
    - name: Secret scan
      run: gitleaks detect --source . --verbose

    # Container image scan (15 seconds)
    - name: Image scan
      run: trivy image $IMAGE --severity CRITICAL,HIGH --exit-code 1

    # Infrastructure-as-code scan (5 seconds)
    - name: IaC scan
      run: checkov -d . --framework kubernetes --hard-fail-on CRITICAL

# Total: ~40 seconds. No human review needed for passing code.

The key metric: these checks must complete in under 60 seconds. If security scanning takes 20 minutes, developers will find ways around it. Speed is a security feature.

🎓 Course with Starweaver

Introduction to Chip Design with Open-Source EDA Tools

Design and simulate digital circuits using open-source tools. In collaboration with Starweaver.

Start on Coursera →

Layer 3: Developer Self-Service With Guardrails

Instead of developers requesting things from security (and waiting), give them self-service with automatic guardrails:

  • Secret management: Developers don't request secrets from the security team. They define a SecretProviderClass that references Vault, and the CSI driver mounts the secret automatically. Access is controlled by Vault policy mapped to Kubernetes service accounts
  • Certificate provisioning: Developers don't request TLS certificates. They create an Ingress resource, and cert-manager provisions and rotates the certificate automatically via Let's Encrypt or an internal CA
  • Network access: Developers don't file firewall tickets. They declare service dependencies in their Helm chart, and a controller generates NetworkPolicies from those declarations
  • Database provisioning: Developers don't request database credentials. They create a DatabaseClaim custom resource, and a controller provisions the database, creates a scoped user, rotates the password, and injects credentials as a Kubernetes Secret

Layer 4: Continuous Compliance Evidence

For regulated enterprises under DORA, NIS2, and the CRA, security controls must produce evidence — not just protection:

  • Automated audit logs: Every deployment, every policy evaluation, every vulnerability scan is logged and retained. When auditors ask "show me your vulnerability management process," you show them a dashboard, not a folder of PDFs
  • Compliance-as-code: DORA, NIS2, and CRA requirements mapped to Kyverno/OPA policies. Each policy references the specific regulation article it satisfies. Compliance status is continuously evaluated, not annually assessed
  • SBOM lifecycle: Every shipped artifact has an SBOM. Every SBOM is scanned. Every scan result is retained. The chain from code commit to production deployment to vulnerability status is fully traceable
🚀 Need Help?

AI Readiness Assessment

Fixed-fee, 3-4 week infrastructure and compliance audit with a concrete roadmap. No big-consultancy overhead.

See Scope & Pricing →

Measuring Frictionlessness

Track these metrics to ensure your security automation is actually reducing friction:

  • Security gate pass rate: What percentage of PRs pass security checks on the first attempt? Target: >95%. If it's lower, your defaults aren't secure enough or your checks are too noisy
  • Time in security queue: How long do changes wait for security-related approvals? Target: 0 (fully automated). If humans are in the loop, measure and minimise
  • Mean time to remediate (MTTR): How long from CVE detection to patched deployment? Target: <2 hours for critical (see our 2-hour patching guide)
  • Developer satisfaction: Survey developers quarterly. Do they perceive security as a blocker or an enabler? This is the ultimate metric
  • Shadow IT incidents: How often do teams bypass the approved path? Each incident is a signal that the paved road has too much friction

What Open Empower Delivers

We design and implement frictionless security platforms for regulated enterprises:

  • Platform security layer: Namespace templates, golden images, admission policies — security that developers never see
  • Pipeline automation: SAST, SCA, secret detection, image scanning — all under 60 seconds per PR
  • Self-service with guardrails: Secret management, certificate provisioning, network access — developer-facing APIs with security-enforced policies
  • Compliance automation: DORA/NIS2/CRA requirements as code, continuously evaluated, with auditable evidence
  • Cultural transformation: We work with security and engineering together to build trust, not walls

The best security is the security nobody notices. Let's make it invisible.

devsecops
automation
frictionless security
shift left
platform engineering
developer experience
policy as code
guardrails
kubernetes
cicd

Need help applying this in your organization?

Get a free 30-minute assessment with actionable recommendations — whether we work together or not.

Book Your Free AI Platform Assessment

Or see AI readiness assessment scope & pricing

18+ years experience · Ex-Red Hat & Dell · Speaker at KubeCon EU 2026

Luca Berton

Written by

Luca Berton

CEO at Open Empower. 18+ years building enterprise infrastructure at JPMorgan Chase, Red Hat & Dell. Author of 9 technical books. Speaker at Red Hat Summit and KubeCon EU 2026. Instructor on Coursera, Pluralsight & Udemy.

Get more insights like this

Practical AI infrastructure and platform engineering guides — delivered to your inbox.

Subscribe to Newsletter →