Skip to content

Commit f362602

Browse files
committed
Added basic docs for Layered Zero Trust
1 parent 61822a9 commit f362602

File tree

2 files changed

+42
-51
lines changed

2 files changed

+42
-51
lines changed

content/patterns/layered-zero-trust/_index.adoc

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: Layered Zero Trust
33
date: 2025-06-11
44
tier: sandbox
5-
summary: Layered Zero Trust demonstrates how to operationalize Zero Trust security principles when using products in the Red Hat Portfolio
5+
summary: Layered Zero Trust demonstrates how to operationalize Zero Trust security principles when using products in the Red Hat Portfolio.
66
rh_products:
77
- Red Hat OpenShift Container Platform
88
industries:
@@ -12,23 +12,24 @@ links:
1212
install: https://github.com/validatedpatterns/layered-zero-trust/?tab=readme-ov-file#getting-started
1313
bugs: https://github.com/validatedpatterns/layered-zero-trust/issues
1414
feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform
15+
ci: layeredzerotrust
1516
---
1617

1718

1819
:toc:
1920
:imagesdir: /images
20-
:_content-type: ASSEMBLY
21+
:_mod-docs-content-type: ASSEMBLY
2122
include::modules/comm-attributes.adoc[]
2223

2324
[id="about-lzt-pattern"]
2425
= About the Layered Zero Trust pattern
2526

2627
link:https://www.redhat.com/en/topics/security/what-is-zero-trust[Zero trust] is an approach to designing security architectures based on the premise that every interaction begins in an untrusted state.
27-
The Layered Zero Trust pattern describes how to implement a zero trust architecture in a Red Hat OpenShift Container Platform environment.
28+
The Layered Zero Trust pattern describes how to implement a zero trust architecture in a {rh-ocp} environment.
2829
The pattern identifies specific transactions between an actor and a resource within the environment.
2930
For these transactions, you can identify the context and implement policy enforcement.
3031

31-
Because of the breadth and diversity of possible interactions between components in OpenShift Container Platform, this pattern is presented as a set of abstract, stackable layers.
32+
Because of the breadth and diversity of possible interactions between components in {ocp}, this pattern is presented as a set of abstract, stackable layers.
3233
These layers provide the prerequisite capabilities that are needed to implement appropriate enforcement points.
3334
For each instance, this pattern describes the associated actors, transactions, and the zero trust policy that you can implement within the platform. To provide context for users, this pattern uses relevant business use cases and traces them to the associated implementation components.
3435

@@ -51,48 +52,48 @@ In contrast, the Zero Trust architecture operates from the assumption that a bre
5152
It focuses on preventing further compromise by establishing well-defined security boundaries and enforcing a deny-all default access control stance.
5253
The pattern emphasizes significant automation and grants access dynamically, based on policies, with a least-privilege, as-needed approach.
5354
Instead of relying on signatures, it explicitly enumerates allowed actors and monitors their behavior, which is a more effective way to contain malicious activity.
54-
Zero Trust architectures incorporate contextual information and user behavior analytics to inform access decisions, proactively preventing lateral movement in the event of a compromise.
55+
Zero Trust architectures incorporate contextual information and user behavior analytics to inform access decisions, proactively preventing lateral movement in case of a compromise.
5556

5657
[id="about-solution"]
5758
== About the solution
5859

59-
The Layered Zero Trust pattern implements a layered zero trust architecture that demonstrates workload identity management, secure communication, and secret management capabilities.
60+
The Layered Zero Trust pattern implements a layered zero trust architecture that shows workload identity management, secure communication, and secret management capabilities.
6061

61-
The solution integrates multiple Red Hat components to provide:
62+
The solution integrates many Red{nbsp}Hat components to offer:
6263

6364
* Workload identity using Secure Production Identity Framework for Everyone (SPIFFE) and SPIFFE Runtime Environment (SPIRE) standards.
6465
* Secure secret management through HashiCorp Vault.
65-
* Identity and access management by using the Red Hat build of Keycloak (RHBK).
66+
* Identity and access management by using the Red{nbsp}Hat build of Keycloak (RHBK).
6667
* Certificate management for secure communications.
6768
* External secret management integration.
6869

6970
[id="architecture"]
7071
=== Architecture
7172

72-
The Layered Zero Trust pattern architecture consists of multiple components that work together to provide a secure environment for applications and workloads.
73+
The Layered Zero Trust pattern architecture consists of many components that work together to offer a secure environment for applications and workloads.
7374

7475
The pattern consists of the following key components:
7576

7677
. Zero Trust Workload Identity Manager: Implements workload identity using SPIFFE/SPIRE.
7778
. HashiCorp Vault: Provides secure secret storage and management.
78-
. Red Hat build of Keycloak (RHBK): Manages identity and access for users and services.
79+
. Red{nbsp}Hat build of Keycloak (RHBK): Manages identity and access for users and services.
7980
. OpenShift Cert Manager: Manages the lifecycle of certificates for secure communication.
8081
. External Secrets Operator: Synchronizes secrets from external systems into the cluster.
81-
. QTodo application: Serves as a Quarkus-based application to demonstrate zero trust principles.
82+
. QTodo application: Serves as a Quarkus-based application to show zero trust principles.
8283
. PostgreSQL database: Provides the backend database for the demonstration application.
8384

8485
[id="sidecar-pattern"]
8586
==== Sidecar pattern
8687

8788
The sidecar pattern is a deployment model where a separate container or process, called a sidecar, runs alongside a main application to handle auxiliary tasks.
88-
In an OpenShift environment, this is simplified through the use of pods, which ensure the sidecar and main application share the same lifecycle.
89+
In an {ocp} environment, this is simplified through the use of pods, which ensure the sidecar and main application share the same lifecycle.
8990
This approach is highly beneficial for Zero Trust architectures because it allows for the centralized enforcement of security policies, such as authentication, authorization, traffic encryption (mTLS), rate limiting, auditing, and logging, without requiring developers to build this logic into every microservice.
9091
It separates concerns, simplifies development, and allows security policies to be updated independently of the main application.
9192

9293
While sidecars are often criticized for adding complexity and resource usage, the text argues these are often misconceptions:
9394

94-
* *Complexity*: Sidecars simplify the main application by offloading tasks, and modern platforms like OpenShift are designed to manage them efficiently.
95-
* *Resource Usage*: The resource cost of a sidecar is often minimal compared to the overhead of integrating security logic into every application.
95+
* *Complexity*: Sidecars simplify the main application by offloading tasks, and modern platforms, such as {ocp}, are designed to manage them efficiently.
96+
* *Resource Usage*: The resource cost of a sidecar is often minimal compared to the additional CPU and memory required to integrate security logic into every application.
9697
* *Debugging*: Sidecars can simplify debugging by isolating logs and metrics from the main application, making it easier to pinpoint the source of a policy failure.
9798

9899
The Layered Zero Trust pattern makes extensive use of the sidecar approach to achieve its goals by offloading critical security functions from the main application.
@@ -106,10 +107,10 @@ The following technologies are used in this solution:
106107

107108
* *Zero Trust Workload Identity Manager*: Implements workload identity using SPIFFE/SPIRE.
108109
* *HashiCorp Vault*: Provides secure secret storage and management.
109-
* *Red Hat build of Keycloak (RHBK)*: Manages identity and access for users and services.
110-
* *Red Hat OpenShift GitOps*: a GitOps continuous delivery (CD) solution based on ArgoCD
110+
* *Red{nbsp}Hat build of Keycloak (RHBK)*: Manages identity and access for users and services.
111+
* *{rh-gitops}*: A GitOps continuous delivery (CD) solution based on ArgoCD
111112
* *OpenShift Cert Manager*: Manages the lifecycle of certificates for secure communication.
112113
* *External Secrets Operator*: Synchronizes secrets from external systems into the cluster.
113114
* *Compliance Operator*: Provides ability to scan and remediate cluster hardening based on profiles
114-
* *QTodo application*: Serves as a sample Quarkus-based application to demonstrate zero trust principles.
115+
* *QTodo application*: Serves as a sample Quarkus-based application to show zero trust principles.
115116
* *PostgreSQL database*: Provides the backend database for the demonstration application.

content/patterns/layered-zero-trust/lzt-getting-started.adoc

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ aliases: /layered-zero-trust/lzt-getting-started/
66

77
:toc:
88
:imagesdir: /images
9-
:_content-type: ASSEMBLY
9+
:_mod-docs-content-type: ASSEMBLY
1010
include::modules/comm-attributes.adoc[]
1111

1212
[id="lzt-deploying-lzt-pattern"]
1313
= Deploying the Layered Zero Trust pattern
1414

15-
Follow the instructions in this section to configure and deploy the Layered Zero Trust pattern.
15+
Follow these instructions to configure and deploy the Layered Zero Trust pattern.
1616

1717
.Prerequisites
1818

19-
* An OpenShift cluster with publicly signed certificates for Ingress
19+
* An {ocp} cluster with publicly signed certificates for Ingress
2020
* A GitHub account and a token for it with repositories permissions, to read from and write to your forks.
21-
* Access to podman (or docker) for execution of the container images used by `pattern.sh` script for provisioning.
21+
* Access to Podman (or Docker) for execution of the container images used by `pattern.sh` script for provisioning.
2222
* Useful additions:
2323

2424
** The Helm binary, for instructions, see link:https://helm.sh/docs/intro/install/[Installing Helm]
@@ -29,22 +29,20 @@ Follow the instructions in this section to configure and deploy the Layered Zero
2929

3030
Follow these instructions for setting up the project repository:
3131

32-
. Fork the layered-zero-trust repository from GitHub. You must fork the
33-
repository because your fork is updated as part of the GitOps and DevOps
34-
processes.
32+
. Fork the layered-zero-trust repository from GitHub. You must fork the repository because your fork is updated as part of the GitOps and DevOps processes.
3533
. Clone your forked repository.
3634
+
3735
[source,terminal]
3836
----
39-
$ git clone [email protected]:<your-username>/layered-zero-trust.git
37+
$ git clone [email protected]:<your_username>/layered-zero-trust.git
4038
----
4139

4240
. Go to your repository: Ensure you are in the root directory of your
4341
Git repository by using the following command:
4442
+
4543
[source,terminal]
4644
----
47-
$ cd </path/to/your/repository>
45+
$ cd </path_to_your_repository>
4846
----
4947

5048
. Set up upstream remote repository:
@@ -66,8 +64,8 @@ Example output:
6664
+
6765
[source,terminal]
6866
----
69-
origin [email protected]:<your-username>/layered-zero-trust.git (fetch)
70-
origin [email protected]:<your-username>/layered-zero-trust.git (push)
67+
origin [email protected]:<your_username>/layered-zero-trust.git (fetch)
68+
origin [email protected]:<your_username>/layered-zero-trust.git (push)
7169
upstream https://github.com/validatedpatterns/layered-zero-trust.git (fetch)
7270
upstream https://github.com/validatedpatterns/layered-zero-trust.git (push)
7371
----
@@ -82,12 +80,9 @@ $ cp values-secret.yaml.template ~/values-secret-layered-zero-trust.yaml
8280
+
8381
[NOTE]
8482
====
85-
To prevent your secrets from being pushed to your Git repository,
86-
the command places the `values-secret.yaml` file in your home directory.
87-
This file is derived from the `values-secrets.yaml.template` file, which
88-
is located in the pattern’s top-level directory. When creating new
89-
patterns, you should add your secrets to the `values-secret.yaml` file
90-
in your home directory.
83+
To prevent pushing secrets to your Git repository, the command places the `values-secret.yaml` file in your home directory.
84+
You derive this file from the `values-secrets.yaml.template` file located in the pattern's top-level directory.
85+
When you create new patterns, add your secrets to the `values-secret.yaml` file in your home directory.
9186
====
9287

9388
. Create a new feature branch, for example `my-branch` from the `main`
@@ -103,15 +98,14 @@ the Helm values files and then commit the changes.
10398
+
10499
[source,terminal]
105100
----
106-
$ git add <files-you-changed>
101+
$ git add <files_you_changed>
107102
$ git commit -m "Pattern customization"
108103
----
109104
+
110105
[NOTE]
111106
====
112-
The following configuration files define the behavior and settings
113-
of the various components in the Layered Zero Trust pattern. You can
114-
customize these files to fit your specific deployment needs.
107+
The following configuration files define the behavior and settings of the various components in the Layered Zero Trust pattern.
108+
You can customize these files to fit your specific deployment needs.
115109
116110
* `values-global.yaml`: Global pattern configuration
117111
* `values-hub.yaml`: Hub cluster specific configuration
@@ -129,17 +123,17 @@ $ git push origin my-branch
129123
[id="deploying-cluster-using-patternsh-file"]
130124
== Deploying the pattern by using the pattern.sh file
131125

132-
Deploy the Layered Zero Trust pattern using the `pattern.sh` script.
126+
Deploy the Layered Zero Trust pattern by using the `pattern.sh` script.
133127

134-
. Login to your OpenShift cluster:
128+
. Login to your {ocp} cluster:
135129

136130
.. By using the `oc` CLI:
137-
* Get an API token by visiting `pass:[https://oauth-openshift.apps.<your-cluster>.<domain>/oauth/token/request]`.
131+
* Get an API token by visiting `pass:[https://oauth-openshift.apps.<your_cluster>.<domain>/oauth/token/request]`.
138132
* Log in with the retrieved token:
139133
+
140134
[source,terminal]
141135
----
142-
$ oc login --token=<retrieved-token> --server=https://api.<your-cluster>.<domain>:6443
136+
$ oc login --token=<retrieved_token> --server=https://api.<your_cluster>.<domain>:6443
143137
----
144138

145139
.. By using KUBECONFIG:
@@ -159,13 +153,9 @@ $ ./pattern.sh make install
159153
[id="lzt-verify-deployment"]
160154
=== Verify the deployment
161155

162-
You can use the OpenShift console and ArgoCD applications to verify the
163-
deployment.
156+
You can use the {ocp} console and ArgoCD applications to verify the deployment.
164157

165-
. In the OpenShift web console, navigate to Operators → Installed
166-
Operators page.
167-
. Check that Red Hat OpenShift GitOps Operator is installed in the
168-
openshift-operators namespace and its status is Succeeded.
169-
. Use the Application Launcher within the OpenShift console to confirm
170-
that all applications have synchronized successfully to both Hub and
171-
Cluster Argo CD instances.
158+
. In the {ocp} web console, navigate to the *Operators* → *Installed Operators* page.
159+
. Check that {rh-gitops} Operator is installed in the
160+
`openshift-operators` namespace and its status is Succeeded.
161+
. Use the Application Launcher within the {ocp} console to confirm that all applications have synchronized successfully to both Hub and Cluster Argo CD instances.

0 commit comments

Comments
 (0)