You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
** Provides the storage and management means for _Software Bill of Materials_ (SBOMs), with cross-referencing capabilities between SBOMs and CVEs/Security Advisories.
110
110
111
+
[id="architecture-diagram"]
112
+
==== Architecture diagram
113
+
114
+
The layered zero trust architecture enforces a Zero Trust model through four decoupled layers:
115
+
116
+
* *Identity*: Keycloak manages user authentication, while SPIRE assigns short-lived, cryptographic identities to workloads for secure service-to-service recognition.
117
+
* *Secure Transport*: Sidecar proxies intercept traffic to enforce mutual TLS (mTLS), ensuring all communication is encrypted and mutually authenticated without application code changes.
118
+
* *Secrets*: Vault centrally stores sensitive data, which is securely synced into the cluster by the External Secrets Operator only when needed.
119
+
* *Compliance*: RHACM and the Compliance Operator monitor the environment to ensure consistent policy enforcement and infrastructure hardening.
120
+
121
+
image::layered-zero-trust/layered-zero-trust-architecture-diagram.png[Layered Zero Trust architecture diagram]
122
+
111
123
[id="sidecar-pattern"]
112
-
==== Sidecar pattern
124
+
=== Sidecar pattern
113
125
114
126
The sidecar pattern is a deployment model where a separate container or process, known as a sidecar, runs alongside the main application to handle auxiliary tasks.
115
127
In an {ocp} environment, pods simplify this by ensuring the sidecar and main application share the same lifecycle.
@@ -126,6 +138,35 @@ The Layered Zero Trust pattern uses the sidecar approach to offload critical sec
126
138
This centralizes policy enforcement, simplifies development, and separates security concerns.
127
139
The sidecar patterns in this approach handle tasks such as authentication and authorization, traffic encryption, rate limiting, and auditing and logging.
128
140
141
+
[id="applied-sidecar-pattern-data-protection"]
142
+
==== Applied sidecar pattern: Data protection
143
+
144
+
The following diagrams illustrate how the sidecar pattern is applied in practice to solve the Data Protection use case.
145
+
They demonstrate how an application (`qtodo`) retrieves database credentials dynamically without hard-coding secrets.
146
+
147
+
===== Logical structure
148
+
149
+
The logical structure diagram shows the composition of the application pod and its relationship to the infrastructure.
150
+
151
+
* *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.
152
+
* *Infrastructure layers*: The sidecars bridge the gap between the application and the platform services:
153
+
154
+
** *Workload identity*: The sidecars interface with SPIRE to prove the pod's identity.
155
+
** *Secret management*: They connect to HashiCorp Vault to fetch secrets.
156
+
** *Trust anchors*: Keycloak and Cert Manager provide the root trust for the ecosystem.
157
+
158
+
image::layered-zero-trust/layered-zero-trust-data-protection-logical.png[Logical structure of the sidecar pattern for data protection]
159
+
160
+
===== Schematic Workflow
161
+
162
+
The schematic diagram details the step-by-step execution flow, matching the numbered markers in the schematic:
163
+
164
+
* *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).
165
+
* *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.
166
+
* *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.
167
+
168
+
image::layered-zero-trust/layered-zero-trust-data-protection-schematic.png[Schematic workflow of the sidecar pattern for data protection]
0 commit comments