RFC-WORKLOAD-IDENTITY-0001: Workload Identity Architecture
RFC-WORKLOAD-IDENTITY-0001: Workload Identity Architecture
Document Metadata
| Field | Value |
|---|---|
| RFC Number | RFC-WORKLOAD-IDENTITY-0001 |
| Title | Workload Identity Architecture |
| Status | Draft |
| Category | Standards Track |
| Created | 2026-02-11 |
| Updated | 2026-02-11 |
| Version | 1.0.0 |
| Author | Platform Engineering Team |
| Requires | RFC-IAM-0001, RFC-SECOPS-0001 |
Abstract
This RFC defines the architecture for non-human identity management across all workloads in the platform. It establishes patterns for authenticating and authorizing machines, services, CI/CD pipelines, GitOps operators, Kubernetes controllers, and AI agents. The architecture builds on SPIFFE/SPIRE as the primary identity framework, integrates with HashiCorp Vault for secret access, leverages Teleport Machine ID for infrastructure automation, and uses service mesh (Linkerd) for network-layer identity enforcement.
This RFC complements RFC-IAM-0001 (human identity) and RFC-PAM-0001 (privileged access), sharing the same trust foundation (Azure AD as authorization ceiling) and credential authority (Vault) while implementing distinct access patterns appropriate for non-human principals.
Scope
In Scope
| Concern | Description |
|---|---|
| Kubernetes workload identity | Pod/container identity via service accounts and SPIFFE |
| Service-to-service authentication | mTLS, SPIFFE SVIDs |
| CI/CD pipeline identity | GitHub Actions OIDC, GitLab CI, Tekton |
| GitOps operator identity | ArgoCD, Flux, Kargo automation tokens |
| Kubernetes operator identity | Controller service accounts |
| CronJob/scheduled task identity | Batch workload authentication |
| AI agent identity | LLM-based automation, delegation chains |
| Machine identity (VMs) | Teleport Machine ID for non-K8s hosts |
| Cross-cluster identity federation | SPIFFE federation, trust domains |
Out of Scope
| Concern | Addressed By |
|---|---|
| Human identity and authentication | RFC-IAM-0001 |
| Human privileged access (SSH, DB, kubectl) | RFC-PAM-0001 |
| Secret storage and lifecycle management | RFC-SECOPS-0001 |
| Network-level security policies | RFC-TENANT-SECURITY (planned) |
| Developer portal self-service | RFC-DEVELOPER-PLATFORM (planned) |
Relationship to Other RFCs
Normative Dependencies
RFC-IAM-0001: Federated Identity and Access Management Architecture
- Provides human identity foundation
- Defines authorization ceiling concept
- Establishes Keycloak as identity broker
RFC-SECOPS-0001: GitOps-Native, Vault-First Secret Management Architecture
- Defines Vault as credential authority
- Establishes ESO distribution patterns
- Provides secret lifecycle management
Integration Points
RFC-PAM-0001: Privileged Access Management Architecture
- Shares Teleport infrastructure (Machine ID)
- Uses same Vault credential engines
- Follows complementary access patterns
Future RFCs
| RFC | Relationship |
|---|---|
| RFC-DEVELOPER-PLATFORM | May provide self-service for workload identity |
| RFC-TENANT-SECURITY | Network-level controls complement workload identity |
Table of Contents
Core Sections
-
- Background and motivation
- Current state analysis
- Problem statement
-
- Design goals and non-goals
- Architectural invariants
- Success criteria
-
- Identity hierarchy
- Trust boundaries
- Authority domains
- Integration patterns
-
- Component taxonomy
- SPIRE architecture
- Vault integration
- Teleport Machine ID
- Service mesh integration
Workload Categories
-
- ServiceAccount patterns
- SPIRE agent deployment
- Vault Kubernetes auth
-
- OIDC federation patterns
- GitHub Actions integration
- Tekton pipeline identity
-
- ArgoCD identity model
- Flux workload identity
- Automation token management
-
- Kubernetes operator patterns
- Controller service accounts
- CronJob identity
-
- Agent identity challenges
- Delegation patterns
- Sub-agent chains
-
- Teleport Machine ID
- tbot deployment
- VM attestation
Cross-Cutting Concerns
-
- Linkerd identity model
- mTLS configuration
- Authorization policies
-
- Cross-cluster identity
- SPIFFE federation
- Multi-cloud identity
Supporting Sections
-
- Why SPIFFE/SPIRE
- Alternatives considered
- Trade-off analysis
-
- Future considerations
- AI agent evolution
- Standards evolution
Appendices
Reading Paths
Platform Engineers
Recommended reading order for platform engineers implementing this architecture:
- Introduction - Understand the problem space
- Requirements - Learn the invariants
- Architecture - Grasp the overall design
- Components - Understand component responsibilities
- Kubernetes Workloads - Core implementation
- Service Mesh Integration - Network identity
Security Engineers
Recommended reading order for security review:
- Requirements - Understand invariants and constraints
- Architecture - Trust boundaries and authority domains
- AI Agent Identity - Delegation chain security
- Federation - Cross-boundary trust
- Rationale - Understand design decisions
DevOps/SRE Teams
Recommended reading order for operations teams:
- CI/CD Identity - Pipeline identity patterns
- GitOps Identity - Operator identity
- Machine Identity - VM identity
- Operator Identity - Controller patterns
Application Developers
Recommended reading order for application developers:
- Kubernetes Workloads - How workloads get identity
- Service Mesh Integration - mTLS for services
- Appendix A: Glossary - Terminology reference
Key Concepts
Identity Hierarchy
Workload Categories
| Category | Example | Identity Method |
|---|---|---|
| Kubernetes Applications | Web services, APIs | SPIFFE SVID + Vault K8s Auth |
| CI/CD Pipelines | GitHub Actions, Tekton | OIDC Federation |
| GitOps Operators | ArgoCD, Flux | ServiceAccount + Vault K8s Auth |
| Kubernetes Operators | Custom controllers | ServiceAccount + RBAC |
| CronJobs | Scheduled tasks | ServiceAccount + Vault K8s Auth |
| AI Agents | LLM automation | Delegation tokens (RFC 8693) |
| VMs/Machines | Infrastructure automation | Teleport Machine ID (tbot) |
Document Conventions
Requirement Level Keywords
This document uses requirement level keywords as defined in [RFC2119] and [RFC8174]:
| Keyword | Meaning |
|---|---|
| MUST | Absolute requirement |
| MUST NOT | Absolute prohibition |
| SHOULD | Recommended but not required |
| SHOULD NOT | Not recommended but not prohibited |
| MAY | Optional |
Invariant References
Invariants are referenced as INV-X where X is the invariant number. See Section 2 for complete invariant definitions.
ADR References
Architecture Decision Records are referenced as ADR-WI-XXX. See Appendix A for the ADR index.
Version History
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-02-11 | Initial release |
Document Navigation
| Previous | Index | Next |
|---|---|---|
| — | Table of Contents | 1. Introduction → |
End of Index