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
Copy file name to clipboardExpand all lines: enhancements/workload-identity-management/zero-trust-workload-identity-manager.md
+70-1
Original file line number
Diff line number
Diff line change
@@ -66,7 +66,7 @@ A new zero-trust-workload-identity-manager operator will manage the deployment a
66
66
-`SPIFFE CSI Driver` as a DaemonSet to inject workload identities (`SVIDs`) into pods.
67
67
- Resources `(RBAC, ServiceAccount, ClusterRole, etc.)` are created from static manifest templates.
68
68
69
-
The operator will create and manage the following resources to deploy SPIRE and SPIFFE components:
69
+
The operator will create and manage the following resources to deploy SPIRE and SPIFFE components, Please refer `Implementation Details/Notes/Constraints` section for more details:
70
70
71
71
1. Core Infrastructure
72
72
- Namespaces:
@@ -146,6 +146,75 @@ Refer below links for more information on the labels used
146
146
147
147
### Workflow Description
148
148
149
+
#### 1. **Operator Installation**
150
+
-**Action**: Install the operator via **OpenShift OperatorHub** or CLI.
151
+
-**Result**: The operator deploys:
152
+
-**SPIRE Server** (`StatefulSet`) as the certificate authority (CA).
153
+
-**SPIRE Agents** (`DaemonSet`) for per-node workload attestation.
154
+
-**SPIFFE CSI Driver** (`DaemonSet`) to inject SVIDs into pods.
155
+
-**SPIFFE OIDC Provider** (`Deployment`) for OIDC token issuance.
156
+
157
+
#### 2. **Workload Deployment**
158
+
-**Action**: Deploy a pod with labels matching a `ClusterSPIFFEID` policy (e.g., `app: secure`).
159
+
-**Result**:
160
+
- The SPIRE Agent on the node detects the pod and validates:
161
+
1. Pod labels/annotations.
162
+
2. Service account and namespace.
163
+
3. Node identity (e.g., Kubernetes node UID).
164
+
165
+
#### 3. **SVID Issuance**
166
+
-**Action**: The SPIRE Server processes the attestation request.
167
+
-**Result**:
168
+
- Generates a short-lived **SVID** (X.509/JWT) with a default 1-hour TTL.
169
+
- Signs SVIDs using its CA or delegates to an external enterprise PKI.
170
+
171
+
#### 4. **SVID Injection**
172
+
-**Action**: The SPIFFE CSI Driver mounts the SVID into the pod.
173
+
-**Result**:
174
+
- SVIDs are stored at `/var/run/secrets/spiffe` as read-only volumes.
175
+
- Auto-rotated 10 minutes before expiration.
176
+
177
+
#### 5. **Secure Communication**
178
+
-**Action**: Workloads authenticate using SVIDs.
179
+
-**Result**:
180
+
-**Mutual TLS (mTLS)**: Services validate each other’s SVIDs during TLS handshakes.
181
+
-**OIDC Integration**: Workloads fetch tokens for external systems (e.g., Kubernetes API).
182
+
183
+
#### 6. **Advanced Scenarios**
184
+
-**Federated Trust**:
185
+
- Define cross-cluster trust via `ClusterFederatedTrustDomains` CR.
186
+
- Example: Trust workloads from `cluster-a.example` in `cluster-b.example`.
187
+
-**Static Identities**:
188
+
- Use `ClusterStaticEntries` to pre-register identities for system components (e.g., `kube-apiserver`).
0 commit comments