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.
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.
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
SecretProviderClassthat 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
Ingressresource, 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
DatabaseClaimcustom 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
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.
Luca Berton
