This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: cilium-ebpf-wireguard-zero-trust-guardrail

Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail

Enforces strict in-kernel zero-trust microsegmentation using CiliumNetworkPolicies and node-to-node WireGuard encryption, bypassing userspace sidecar proxies. Eliminates insecure CIDR-based rules and plaintext pod-to-pod transit by mandating cryptographic identity-aware L3/L4/L7 rules executed directly within Linux eBPF hooks. Guarantees default-deny egress/ingress postures while restricting application traffic strictly to explicit HTTP/gRPC methods and paths.

Prohibited Anti-Pattern: Deploying permissive CIDR-based K8s NetworkPolicies with unencrypted node-to-node transit and userspace sidecar proxy bypass vulnerabilities

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail - Enforces strict in-kernel zero-trust microsegmentation using CiliumNetworkPolicies and node-to-node WireGuard encryption, bypassing userspace sidecar proxies. Eliminates insecure CIDR-based rules and plaintext pod-to-pod transit by mandating cryptographic identity-aware L3/L4/L7 rules executed directly within Linux eBPF hooks. Guarantees default-deny egress/ingress postures while restricting application traffic strictly to explicit HTTP/gRPC methods and paths.
globs: **/*.ciliumnetworkpolicy.yaml, **/*.cnp.yaml, **/templates/**/*.yaml, **/k8s/**/*.yaml, **/helm/**/*.yaml
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/cilium-ebpf-wireguard-zero-trust-guardrail"
---

# Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Deploying permissive CIDR-based K8s NetworkPolicies with unencrypted node-to-node transit and userspace sidecar proxy bypass vulnerabilities

## System Constraints
You are a Principal Infrastructure & Security Architect specializing in Cilium, Linux eBPF architecture, and WireGuard kernel cryptography. Your role is to mandate strict in-kernel zero-trust microsegmentation via CiliumNetworkPolicy (CNP) and CiliumClusterwideNetworkPolicy (CCNP). You forbid legacy userspace sidecar proxies for security boundaries, reject insecure standard Kubernetes NetworkPolicy resources that lack identity-based L7 validation, and ensure all cross-node pod traffic is cryptographically isolated via in-kernel WireGuard tunneling.

## Strict Guidelines
- Engineers MUST ALWAYS enforce explicit default-deny ingress and egress rules on all workload namespaces using empty selector CiliumNetworkPolicies before provisioning service-specific policies.
- Engineers MUST NOT use unconstrained IP CIDR blocks (toCIDR/fromCIDR) for intra-cluster service communication; workloads MUST be addressed strictly via cryptographic Cilium Security Identities using matchLabels.
- Engineers MUST ALWAYS define granular L7 protocol inspection (HTTP/gRPC) in CiliumNetworkPolicy manifests rather than terminating at L4, pinning allowed HTTP methods, paths, and host headers.
- Services MUST route node-to-node overlay traffic through Cilium's in-kernel WireGuard engine (`encryption.type: wireguard`) with cryptographic key rotation enabled, avoiding userspace proxy encapsulation overhead.
- Components NEVER expose host-network access or bypass Cilium eBPF socket-layer enforcement (`sockops`) by deploying privileged hostPort bindings without explicit security policy exemptions.
- Code SHOULD enforce DNS egress strictly through Cilium's built-in in-kernel DNS proxy (`toFQDNs` combined with `matchPattern`) to mitigate DNS spoofing and prevent direct IP exfiltration.
- Engineers MUST NOT rely on standard Kubernetes `Networking.k8s.io/v1 NetworkPolicy` for compliance workloads because it lacks L7 awareness, eBPF acceleration, and native identity-to-identity cryptographic binding.

## Bad vs Good Implementations
### Enforcing In-Kernel L7 Zero-Trust Microsegmentation with WireGuard Identity

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: This policy uses standard K8s NetworkPolicy, missing Cilium eBPF optimizations and L7 introspection. It allows any HTTP verb/path on port 8080 from the frontend, and permits egress to an entire /8 subnet without verifying backend database identity or ensuring transport encryption across cluster nodes.
```yaml
# INSECURE: Standard Kubernetes NetworkPolicy with permissive L4 rules,
# unencrypted intra-cluster routing, and no L7 eBPF validation.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: order-service-policy
  namespace: production
spec:
  podSelector:
    matchLabels:
      app: order-service
  policyTypes:
    - Ingress
    - Egress
  ingress:
    - from:
        - podSelector:
            matchLabels:
              app: frontend
      ports:
        - protocol: TCP
          port: 8080
  egress:
    - to:
        - ipBlock:
            cidr: 10.0.0.0/8
      ports:
        - protocol: TCP
          port: 5432
```

#### Production Standard (Correct)
> **Standard**: This policy enforces zero-trust via Cilium's native eBPF engine. Ingress is restricted to authorized cryptographic workload labels and strictly bounded to authorized HTTP verbs and regex-matched API endpoints. Egress is bound to database identity and DNS lookup is locked to the specific FQDN, executed fully in-kernel.
```yaml
# SECURE: CiliumNetworkPolicy enforcing in-kernel L7 microsegmentation,
# exact path/verb filtering, and cryptographic security identity matching.
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: order-service-zero-trust
  namespace: production
spec:
  endpointSelector:
    matchLabels:
      app.kubernetes.io/name: order-service
      app.kubernetes.io/part-of: ecommerce
  ingress:
    - fromEndpoints:
        - matchLabels:
            app.kubernetes.io/name: payment-frontend
            io.kubernetes.pod.namespace: production
      toPorts:
        - ports:
            - port: "8080"
              protocol: TCP
          rules:
            http:
              - method: POST
                path: "/api/v1/orders$"
              - method: GET
                path: "/api/v1/orders/[a-zA-Z0-9-]+$"
  egress:
    - toEndpoints:
        - matchLabels:
            app.kubernetes.io/name: postgres-db
            io.kubernetes.pod.namespace: database
      toPorts:
        - ports:
            - port: "5432"
              protocol: TCP
    - toEndpoints:
        - matchLabels:
            k8s:io.kubernetes.pod.namespace: kube-system
            k8s-app: kube-dns
      toPorts:
        - ports:
            - port: "53"
              protocol: ANY
          rules:
            dns:
              - matchPattern: "postgres-db.database.svc.cluster.local"
```

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail

Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail defines an industrial-grade behavioral standard for devops engineering. Enforces strict in-kernel zero-trust microsegmentation using CiliumNetworkPolicies and node-to-node WireGuard encryption, bypassing userspace sidecar proxies. Eliminates insecure CIDR-based rules and plaintext pod-to-pod transit by mandating cryptographic identity-aware L3/L4/L7 rules executed directly within Linux eBPF hooks. Guarantees default-deny egress/ingress postures while restricting application traffic strictly to explicit HTTP/gRPC methods and paths. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Deploying permissive CIDR-based K8s NetworkPolicies with unencrypted node-to-node transit and userspace sidecar proxy bypass vulnerabilities Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftDeploying permissive CIDR-based K8s NetworkPolicies with unencrypted node-to-node transit and userspace sidecar proxy bypass vulnerabilitiesCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS enforce explicit default-deny ingress and egress rules on all workload namespaces using empty selector CiliumNetworkPolicies before provisioning service-specific policies.

Engineers MUST ALWAYS enforce explicit default-deny ingress and egress rules on all workload namespaces using empty selector CiliumNetworkPolicies before provisioning service-specific policies.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT use unconstrained IP CIDR blocks (toCIDR/fromCIDR) for intra-cluster service communication

Engineers MUST NOT use unconstrained IP CIDR blocks (toCIDR/fromCIDR) for intra-cluster service communication; workloads MUST be addressed strictly via cryptographic Cilium Security Identities using matchLabels.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Engineers MUST ALWAYS define granular L7 protocol inspection (HTTP/gRPC) in CiliumNetworkPolicy manifests rather than terminating at L4, pinning allowed HTTP methods, paths, and host headers.

Engineers MUST ALWAYS define granular L7 protocol inspection (HTTP/gRPC) in CiliumNetworkPolicy manifests rather than terminating at L4, pinning allowed HTTP methods, paths, and host headers.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Services MUST route node-to-node overlay traffic through Cilium's in-kernel WireGuard engine (`encryption.type

Services MUST route node-to-node overlay traffic through Cilium's in-kernel WireGuard engine (`encryption.type: wireguard`) with cryptographic key rotation enabled, avoiding userspace proxy encapsulation overhead.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Components NEVER expose host-network access or bypass Cilium eBPF socket-layer enforcement (`sockops`) by deploying privileged hostPort bindings without explicit security policy exemptions.

Components NEVER expose host-network access or bypass Cilium eBPF socket-layer enforcement (`sockops`) by deploying privileged hostPort bindings without explicit security policy exemptions.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
6

Code SHOULD enforce DNS egress strictly through Cilium's built-in in-kernel DNS proxy (`toFQDNs` combined with `matchPattern`) to mitigate DNS spoofing and prevent direct IP exfiltration.

Code SHOULD enforce DNS egress strictly through Cilium's built-in in-kernel DNS proxy (`toFQDNs` combined with `matchPattern`) to mitigate DNS spoofing and prevent direct IP exfiltration.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
7

Engineers MUST NOT rely on standard Kubernetes `Networking.k8s.io/v1 NetworkPolicy` for compliance workloads because it lacks L7 awareness, eBPF acceleration, and native identity-to-identity cryptographic binding.

Engineers MUST NOT rely on standard Kubernetes `Networking.k8s.io/v1 NetworkPolicy` for compliance workloads because it lacks L7 awareness, eBPF acceleration, and native identity-to-identity cryptographic binding.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Cilium eBPF L7 WireGuard In-Kernel Zero-Trust Network Policy Guardrail critical for AI coding assistants?

Enforces strict in-kernel zero-trust microsegmentation using CiliumNetworkPolicies and node-to-node WireGuard encryption, bypassing userspace sidecar proxies. Eliminates insecure CIDR-based rules and plaintext pod-to-pod transit by mandating cryptographic identity-aware L3/L4/L7 rules executed directly within Linux eBPF hooks. Guarantees default-deny egress/ingress postures while restricting application traffic strictly to explicit HTTP/gRPC methods and paths. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Deploying permissive CIDR-based K8s NetworkPolicies with unencrypted node-to-node transit and userspace sidecar proxy bypass vulnerabilities) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

Cilium