Validated Patterns

Architecture

The Layered Zero Trust pattern implements a layered zero trust architecture that provides workload identity management, secure communication, secret management, runtime security monitoring, and compliance scanning on Red Hat OpenShift Container Platform.

Layered architecture overview

The ZTVP is structured in three decoupled layers, each building on the one below:

  • Layer 0 — Foundation: The always-deployed security baseline. These components are installed automatically with every ZTVP deployment and provide the core Zero Trust capabilities.

  • Layer 1 — Feature Sets: Optional capabilities that can be enabled per use case. These extend the foundation with additional security services like supply chain signing, private registries, and network observability.

  • Layer 2 — Use Cases: Real applications that demonstrate Zero Trust principles in practice. They consume the services provided by Layers 0 and 1.

Layered Zero Trust architecture diagram

Layer 0 — Foundation

ComponentWhat it doesZero Trust contribution

HashiCorp Vault

Centralized secret storage and management with JWT-based authentication

Dynamic secrets, just-in-time credential injection

Zero Trust Workload Identity Manager (SPIRE/SPIFFE)

Assigns short-lived cryptographic identities to workloads

No shared secrets, mutual authentication

Red Hat build of Keycloak

User authentication and SSO via OIDC

Centralized identity, per-application access control

External Secrets Operator

Synchronizes secrets from Vault into OpenShift Container Platform

Automated secret lifecycle management

Red Hat Cert Manager

Automated TLS certificate lifecycle

Encrypted communications, daily CA rotation

Compliance Operator

CIS benchmark scanning and automated remediation

Continuous compliance monitoring

Red Hat Advanced Cluster Management

Multi-cluster management control plane

Centralized policy enforcement

Red Hat Advanced Cluster Security

Runtime security monitoring, threat detection and response

Continuous monitoring, automated threat termination

Layer 1 — Feature Sets

ComponentWhat it doesRequired for

Red Hat Quay

Private OCI image registry

Supply chain security use cases

Multicloud Object Gateway (NooBaa)

Object storage service for OpenShift Container Platform

Quay storage backend, Network Observability

Red Hat Trusted Artifact Signer (RHTAS)

Keyless signing and verification of container images and artifacts

Secure supply chain

Red Hat Trusted Profile Analyzer (RHTPA)

SBOM storage, analysis, and CVE cross-referencing

Supply chain vulnerability analysis

Red Hat OpenShift Pipelines

Cloud-native CI/CD on OpenShift Container Platform

Automated supply chain workflows

Network Observability (Loki + FlowCollector)

Network flow monitoring and visualization

Network traffic analysis

Layer 2 — Use Cases

Use caseDescription

Zero Trust Data Protection

The qtodo demo application shows how workload identity, dynamic secrets, user authentication, and network segmentation protect a real application.

Secure Supply Chain

Manual walkthrough of container image signing, SBOM generation, and artifact verification using RHTAS and RHTPA.

Automated Supply Chain

Tekton pipeline automating the build, sign, verify, and deploy workflow end-to-end.

Sidecar pattern

The sidecar pattern is a deployment model where a separate container runs alongside the main application to handle auxiliary tasks. In an OpenShift Container Platform environment, pods simplify this by ensuring the sidecar and main application share the same lifecycle. This approach benefits Zero Trust architectures by enabling centralized enforcement of security policies such as authentication, authorization, traffic encryption (mTLS), rate limiting, auditing, and logging — without requiring developers to add this logic to every microservice.

The Layered Zero Trust pattern uses the sidecar approach to offload critical security functions from the main application. This centralizes policy enforcement, simplifies development, and separates security concerns.

Applied sidecar pattern: Data protection

The following diagrams illustrate how the sidecar pattern is applied in practice to solve the Data Protection use case. They demonstrate how an application (qtodo) retrieves database credentials dynamically without hard-coding secrets.

Logical structure

The logical structure diagram shows the composition of the application pod and its relationship to the infrastructure.

  • Decoupled components: The qtodo application logic is separated from security functions. The application container runs alongside helper sidecars (spiffe-vault-client, spiffe-helper) and init containers.

  • Infrastructure layers: The sidecars bridge the gap between the application and the platform services:

    • Workload identity: The sidecars interface with SPIRE to prove the pod’s identity.

    • Secret management: They connect to HashiCorp Vault to fetch secrets.

    • Trust anchors: Keycloak and Cert Manager provide the root trust for the ecosystem.

Logical structure of the sidecar pattern for data protection

Schematic workflow

The schematic diagram details the step-by-step execution flow:

  • Identity minting (Steps 3-6): Upon startup, the SPIRE Agent validates the pod (via node attestors and kubelet) and mints a cryptographic identity (SPIFFE ID).

  • Secret retrieval (Step 7): The spiffe-vault-client sidecar uses this verified identity to authenticate with HashiCorp Vault and request the specific credentials needed for the database.

  • Secure access (Steps 8-9): The credentials are passed to the application, allowing it to authenticate and establish a connection to the PostgreSQL database securely.

Schematic workflow of the sidecar pattern for data protection

Deployment variants

The pattern supports multiple deployment configurations:

Configuration fileDescription

values-hub.yaml

Default hub cluster deployment with the full Layer 0 foundation

values-coco-dev.yaml

Development variant for Confidential Containers integration

Feature variant system

Layer 1 features can be enabled or disabled independently using the gen-feature-variants.py script.

For example, to generate a values-hub.yaml with the supply chain feature set enabled:

$ python3 scripts/gen-feature-variants.py --features supply-chain --registry-option 1

See the Feature Variant Generator in the repository for detailed information.