Insert DevOps Secrets Management Canon v1.0 unchanged, with a placement preface that keeps shared roots upstream. Publish it on the federation card. Assistant: grok Assistant-Session: 01a12ce1-7ded-7e03-a845-2ece8a573af4
59 KiB
| id | title | short_name | type | standard_family | repository_context | recommended_path | status | version | canonical_owner | namespace | classification | abstraction_layer | primary_cluster | conformance_posture | imports | related | owned_concepts | provenance | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sec-dsm:DevOpsSecretsManagementStandard | SecurityCanon DevOps Secrets Management Standard | SEC-DSM | standard | SecurityCanon | security-canon | standards/devops-secrets-management/SecurityCanonDevOpsSecretsManagementStandard.md | stable | 1.0.0 | SecurityCanonDevOpsSecretsManagementStandard | sec-dsm | standard | standard | secrets-management | normative |
|
|
|
|
SecurityCanon DevOps Secrets Management Standard
Short name: SEC-DSM
Document status: Stable standard
Version: 1.0.0
Repository context: security-canon
Document type: SecurityCanon domain standard
Conformance posture: Normative (RFC 2119, as stated in the body)
Position in SecurityCanon
This artifact is a Tier-3 standard. It states what a secrets-management practice must do. It does not operate custody, issue credentials, or render an authorization decision.
SecurityCanon owns the practice requirements in the body (DSM-*), the preference hierarchy, and the decision procedure. Shared roots stay where SEC-ADR-001 and concept placement put them. Section 4 of the inserted text uses Principal, Secret, Credential, and Capability as working language for this practice. That use does not transfer ownership and does not redefine the upstream concept:
| Term in the body | How to read it here |
|---|---|
| Principal | The InfoTechCanon access-control Principal. This standard does not define a second one. |
| Authority | The InfoTechCanon organization-model Authority. Auth Mode qualifies how it is exercised. |
| Capability | The InfoTechCanon capability, used here as authority to perform an operation. Not a second Capability concept. |
| Scope | The InfoTechCanon identity-model Scope, when the body means a boundary. A credential's "scope" in the ordinary engineering sense is the authority it grants, and the body says so in place. |
| Secret, Credential | Practice terms for material whose disclosure grants or enables authority. No upstream artifact currently owns a competing definition. If one is later declared, this standard imports it. |
| Identity Assertion | Practice term for short-lived evidence of identity. Identity itself stays in InfoTechCanon. |
Estate application belongs to the consumers. Gate House teaches and supervises. secrets-engine materializes credentials. ops-mason builds routes. ops-warden operates lanes. A NetKingdom obligation that is stricter than this standard is the estate's to record. This standard is not edited to fit one estate.
The body below is the inserted source, unchanged. Provenance file DevOpsSecretsManagementCanon-v1.0.md, SHA-256 ded46fc4ee657503f949dd223cb47d425dfa765c76f593775da8d3fb7a63c30f, adopted by SECURITY-DEC-2026-004 on 2026-10-11.
DevOps Secrets Management Canon
Version: 1.0
Status: Stable Canon
Domain: DevOps, Platform Engineering, Identity, Security, CI/CD, Runtime Operations
1. Purpose
The DevOps Secrets Management Canon defines a technology-independent model and normative practices for managing credentials, cryptographic material, workload authentication, and secret-bearing capabilities across software-development and production environments.
Its strategic objective is:
Reduce persistent secrets to governed exceptions and prefer identity-mediated, short-lived capabilities wherever possible.
Secrets management is therefore not primarily a storage problem.
It is the discipline of controlling an authority lifecycle:
avoid
↓
identify
↓
authorize
↓
issue
↓
deliver
↓
consume
↓
renew / rotate
↓
expire / revoke
↓
detect
↓
recover
↓
audit
The desired end state is not a better collection of passwords.
It is an environment in which principals authenticate through identity and receive narrowly scoped capabilities only for the time they require them.
When a target can authorize a principal directly through trustworthy native or federated identity, that direct path is generally preferable to introducing an additional secret or credential broker.
2. Normative Language
The key words MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, MAY, and OPTIONAL are to be interpreted according to BCP 14 / RFC 2119 and RFC 8174 when, and only when, they appear in uppercase.
A MUST expresses a requirement necessary for full conformance unless an explicitly governed exception exists.
A SHOULD expresses a strong recommendation that may be violated when the trade-off has been consciously evaluated and documented.
A MAY expresses a legitimate implementation choice.
3. Scope and Intended Audience
The canon applies to secrets and credential-like capabilities used by:
- humans;
- CI/CD pipelines;
- build systems;
- deployment systems;
- applications;
- containers;
- Kubernetes workloads;
- infrastructure automation;
- autonomous or semi-autonomous agents;
- service-to-service communication;
- databases;
- cloud providers;
- third-party APIs;
- signing systems;
- certificate authorities;
- recovery procedures.
The canon is primarily intended for production environments and non-trivial engineering organizations.
Smaller teams and early-stage systems SHOULD use the preference hierarchy, decision procedure, and Minimum Viable Adoption Profile without assuming they must immediately operate a full capability-broker architecture.
The canon describes a direction of travel, not a requirement to maximize architectural sophistication regardless of cost.
4. Core Concepts
4.1 Principal
A Principal is an entity that may be authenticated.
Examples include:
- human;
- CI job;
- Kubernetes workload;
- service;
- repository;
- deployment;
- build agent;
- autonomous agent.
Principals SHOULD have individual identities rather than inheriting shared credentials.
4.2 Identity Assertion
An Identity Assertion is short-lived evidence establishing the identity or relevant attributes of a principal.
Examples include:
- OIDC token;
- projected Kubernetes ServiceAccount token;
- SPIFFE SVID;
- cloud workload-identity assertion;
- hardware-backed human authentication.
An identity assertion is not equivalent to an ordinary application secret.
4.3 Secret
A Secret is information whose unauthorized disclosure grants, contributes to, or meaningfully enables authority not intended for the observer.
Examples include:
- password;
- API token;
- private key;
- symmetric encryption key;
- OAuth client secret.
4.4 Credential
A Credential is material presented to establish identity or exercise authority.
A credential MAY itself be secret.
Credentials may be:
static
rotated
leased
ephemeral
derived
federated
4.5 Capability
A Capability is authority to perform a particular operation against a resource.
Examples:
read bucket X
write table Y
deploy service Z
sign artifact A
publish image B
A capability does not necessarily require possession of a persistent secret.
4.6 Dynamic Credential
A Dynamic Credential is generated on demand for a particular consumer or execution and possesses a defined lifetime.
Examples include:
- temporary database account;
- cloud STS credential;
- SSH certificate;
- short-lived X.509 certificate;
- temporary access token.
4.7 Producer Credential
A Producer Credential authorizes creation or issuance of other credentials.
Examples include:
- database administrator authority used by a broker to create temporary users;
- CA signing authority;
- cloud role capable of issuing temporary credentials.
Producer credentials are intrinsically high-value assets.
4.8 Secrets Authority
The Secrets Authority is the authoritative control plane responsible for one or more secret or credential lifecycles.
A Secrets Authority MAY:
- store secrets;
- issue credentials;
- broker capabilities;
- rotate credentials;
- revoke credentials;
- enforce policy;
- record audits.
4.9 Issuer
An Issuer creates a credential or identity assertion.
The issuer MAY differ from the Secrets Authority.
For example:
Secrets Authority → requests database credential
Database → creates database principal
or:
CI platform → issues OIDC assertion
Cloud STS → issues temporary cloud credential
4.10 Delivery Adapter
A Delivery Adapter transports secret material from an authority to a consumer.
Examples include:
- direct API;
- secrets agent;
- CSI driver;
- External Secrets Operator;
- temporary filesystem;
- injected environment variable.
A delivery adapter MUST NOT implicitly be considered the authoritative source of the secret.
4.11 Root of Trust
A Root of Trust is authority that cannot itself depend entirely upon the normal secrets-management hierarchy.
Examples include:
- HSM root key;
- root CA;
- recovery key;
- bootstrap key;
- platform-root authority.
Roots of trust SHOULD be few, explicit, and exceptionally protected.
4.12 Standing Authority
Standing Authority is authority available to a principal independently of an immediate task.
Examples include:
- long-lived API tokens;
- persistent administrative accounts;
- permanent cloud access keys;
- broad agent credentials.
Reducing standing authority is a primary objective of the canon.
The preference hierarchy, maturity model, and exposure model should all be interpreted partly as mechanisms for reducing standing authority.
5. Preference Hierarchy
Implementations SHOULD prefer mechanisms in the following order:
1. Native identity with no transferable secret
2. Federated / workload identity
3. Ephemeral dynamically issued credential
4. Automatically rotated credential
5. Centrally managed static secret
6. Manually managed static secret
Moving downward SHOULD require increasing justification.
Moving upward generally reduces one or more of:
- standing authority;
- credential lifetime;
- credential replication;
- number of eligible consumers.
This hierarchy is not absolute.
The correct architecture is the highest practical level that provides acceptable reliability, operational cost, compatibility, and security for the system concerned.
6. Transitional and Constrained Environments
Not every target supports federation, dynamic credentials, or modern workload identity.
Typical constraints include:
- legacy databases;
- appliances;
- old protocols;
- third-party APIs exposing only static tokens;
- SaaS platforms with manually generated API keys;
- network devices;
- software that reads credentials only during startup;
- rate-limited or unavailable credential issuers.
The canon does not require constructing elaborate intermediary systems merely to simulate ephemeral credentials where doing so creates more operational risk than it removes.
DSM-TRANS-001 — Highest Practical Mechanism
A system SHOULD use the highest mechanism in the preference hierarchy that the target and operating environment can reliably support.
DSM-TRANS-002 — Govern the Residual Secret
When a static credential cannot reasonably be eliminated, it MUST receive:
- explicit ownership;
- central authoritative storage;
- minimum feasible scope;
- rotation policy;
- revocation procedure;
- inventory coverage;
- leak detection where practical.
DSM-TRANS-003 — Do Not Fake Dynamism
A platform SHOULD NOT add complex credential issuance layers merely to claim dynamic-secret maturity when the resulting architecture increases failure probability without materially reducing authority, lifetime, or exposure.
DSM-TRANS-004 — Record Elimination Potential
Persistent credentials SHOULD record whether elimination depends on:
- target-system modernization;
- vendor capability;
- protocol migration;
- platform work;
- contract change;
- application redesign.
This turns persistent secrets into visible engineering debt.
DSM-TRANS-005 — Account for Issuer Dependency
Systems using dynamic credentials MUST consider failure of the credential issuer.
Relevant design concerns include:
- issuer availability;
- issuance latency;
- rate limits;
- lease renewal failure;
- clock skew;
- transient identity-provider failure;
- dependency during disaster recovery.
DSM-TRANS-006 — Degraded Operation
Where continued operation during issuer outage is necessary, the system SHOULD define a deliberate degraded-operation strategy.
Examples include:
- use of an already valid lease until expiry;
- local credential-agent caching within bounded TTL;
- fail-closed behavior;
- tightly governed emergency credentials.
Indefinite caching MUST NOT silently convert ephemeral credentials into persistent credentials.
7. Fundamental Requirements
DSM-ARCH-001 — Minimize Persistent Secrets
Systems MUST attempt to eliminate persistent credentials when equivalent authority can be provided using native or federated identity.
DSM-ARCH-002 — Static Secrets Are Exceptions
Long-lived static credentials MUST be treated as managed exceptions rather than the preferred authentication mechanism.
Each material static production secret MUST have:
- owner;
- purpose;
- consumers;
- authority;
- rotation policy;
- revocation procedure.
DSM-ARCH-003 — Separate Identity From Authority
Authentication and authorization MUST be treated as separate decisions.
Proof that a workload is service-A MUST NOT by itself imply unrestricted access to resources associated with service-A.
DSM-ARCH-004 — Separate Control Plane From Delivery
The authoritative secrets-management system SHOULD be distinguishable from delivery mechanisms.
Kubernetes Secrets, CI variables, mounted files, and environment variables SHOULD NOT be considered canonical sources when another authoritative system exists.
DSM-ARCH-005 — Optimize for Operability
Security architecture MUST account for availability and operational failure.
A theoretically stronger credential model SHOULD NOT be adopted without considering whether failures will cause teams to bypass it.
8. Developer Experience and Adoption
Security mechanisms that are difficult to use create incentives for unmanaged credentials.
The preferred mechanism SHOULD therefore also become the normal engineering path.
DSM-DX-001 — Secure Path of Least Resistance
Platform teams SHOULD make the preferred identity and credential mechanism easier to adopt than unmanaged static secrets.
DSM-DX-002 — Golden Paths
Organizations operating shared platforms SHOULD provide reusable integrations such as:
- CI templates;
- deployment templates;
- workload-identity modules;
- Terraform modules;
- Helm components;
- SDK helpers;
- secrets-policy templates.
DSM-DX-003 — Self-Service
Routine credential and identity provisioning SHOULD be self-service where policy permits.
Security teams SHOULD NOT become a manual transport layer for ordinary application credentials.
DSM-DX-004 — Local Development
The secrets architecture SHOULD define an explicit development workflow.
Local development SHOULD prefer:
- developer identity;
- development-only authority;
- temporary credentials;
- local emulation.
Production credentials SHOULD NOT be required for normal development.
Non-normative implementation note
Where integration testing requires real external services, useful patterns include:
- developer-scoped cloud roles;
- short-lived developer credentials;
- isolated test tenants;
- sandbox APIs;
- contract testing;
- service emulation;
- explicitly time-bounded and audited exceptional production access for debugging.
Such mechanisms should preserve the separation between routine development and production authority.
DSM-DX-005 — Debuggability
Identity and federation failures SHOULD be diagnosable without revealing secret values.
Useful diagnostics include:
- authenticated principal;
- token issuer;
- intended audience;
- policy decision;
- requested capability;
- denial reason;
- credential expiry.
DSM-DX-006 — Avoid Security Escape Hatches Becoming Defaults
Break-glass tokens, personal access tokens, manually copied credentials, and similar compatibility paths MUST NOT become undocumented normal workflows.
9. Identity Practices
DSM-ID-001 — Unique Workload Identity
Every security-relevant workload SHOULD possess its own identifiable runtime identity.
Production workloads MUST NOT depend upon a shared generic credential where individual workload identity is technically practical.
For systems claiming maturity level M3 or higher, unique workload identity is expected for applicable new production workloads unless an explicit exception exists.
DSM-ID-002 — Federated Authentication
Workloads SHOULD authenticate using environmental or federated identity.
Preferred mechanisms include:
- OIDC;
- cloud workload identity;
- Kubernetes workload identity;
- SPIFFE;
- equivalent cryptographically verifiable identities.
For systems claiming maturity level M3 or higher, federation or an equivalent non-static identity mechanism is expected for new integrations where supported by the target.
DSM-ID-003 — Eliminate Secret Zero
A workload SHOULD NOT require a long-lived bootstrap secret merely to authenticate to the secrets-management system.
DSM-ID-004 — Human and Machine Identity Separation
Human credentials and workload credentials MUST be distinguishable.
Human credentials MUST NOT be embedded into automated workloads.
Machine credentials SHOULD NOT routinely be used interactively by humans.
10. Authorization Practices
DSM-AUTH-001 — Least Authority
Credentials and capabilities MUST provide only the authority required for their intended operation.
DSM-AUTH-002 — Contextual Scope
Where supported, authorization SHOULD constrain:
principal
resource
operation
environment
time
Additional useful attributes include:
repository
branch
namespace
deployment
tenant
runtime
job
commit
DSM-AUTH-003 — Environment Isolation
Development, staging, and production authority MUST be independently scoped.
Compromise of a development credential MUST NOT inherently provide production authority.
DSM-AUTH-004 — Tenant Isolation
Credentials crossing tenant security boundaries MUST be explicitly modeled and authorized.
Shared credentials between independent tenants MUST NOT be used.
11. Issuance Practices
DSM-ISSUE-001 — Prefer Dynamic Issuance
When a target permits credentials to be issued dynamically, dynamic issuance SHOULD be preferred over retrieval of persistent credentials.
DSM-ISSUE-002 — Shortest Practical Lifetime
Dynamically issued credentials MUST have a bounded lifetime.
TTL SHOULD approximate the expected duration of the task plus reasonable operational margin.
DSM-ISSUE-003 — Per-Execution Credentials
Build jobs, deployment jobs, and autonomous-agent executions SHOULD receive credentials unique to the execution where supported.
DSM-ISSUE-004 — Producer Credential Protection
Producer credentials MUST receive stronger protection than ordinary consumer credentials.
They SHOULD use, where practical:
- workload identity;
- hardware protection;
- automated rotation;
- constrained network access;
- highly restrictive policy.
12. Storage Practices
DSM-STORE-001 — Authoritative Storage
Every persistent secret MUST have one identifiable authoritative source.
DSM-STORE-002 — Minimize Copies
Secret replication SHOULD be minimized.
Each additional persisted copy SHOULD be regarded as increased exposure surface.
DSM-STORE-003 — Encrypt at Rest
Persisted secrets MUST be cryptographically protected at rest.
Encryption keys SHOULD be governed independently from ordinary application access.
DSM-STORE-004 — No Plaintext Source Control
Plaintext credentials MUST NOT be committed to version-control systems.
DSM-STORE-005 — Git-Encrypted Secrets
Encrypted secrets MAY be stored in Git when declarative state provides a deliberate operational benefit.
Such storage:
- MUST use independently controlled encryption keys;
- MUST support key rotation;
- SHOULD restrict decryption to intended environments;
- MUST NOT be confused with dynamic secrets management.
13. Delivery Practices
DSM-DELIV-001 — Prefer Direct Consumption
Consumers SHOULD obtain capabilities directly from their authority or issuer when practical.
DSM-DELIV-002 — Minimize Persistence During Delivery
Credentials SHOULD remain resident for the minimum practical duration.
Preferred mechanisms include:
memory
ephemeral filesystem
short-lived local agent
direct request
DSM-DELIV-003 — Environment Variables
Environment variables containing high-value secrets SHOULD be avoided where safer delivery mechanisms exist.
They MAY be used for compatibility with software requiring them.
DSM-DELIV-004 — Kubernetes Secret Replication
Replication into Kubernetes Secret objects SHOULD occur only when required by the consuming workload or ecosystem.
DSM-DELIV-005 — Delivery Policy
Delivery adapters MUST NOT broaden authority beyond the policy of the authoritative system.
14. Rotation Practices
DSM-ROT-001 — Rotation Policy
Every persistent production credential MUST have a rotation policy.
DSM-ROT-002 — Automatic Rotation
Credentials that can reliably be rotated automatically SHOULD be rotated automatically.
DSM-ROT-003 — Rotation Includes Adoption
Rotation MUST NOT be considered complete merely because the authoritative value changed.
Complete rotation consists of:
issue
→ distribute
→ adopt
→ validate
→ revoke old
DSM-ROT-004 — Zero/Low-Downtime Rotation
Systems requiring continuous availability SHOULD support overlapping validity, dual credentials, or equivalent safe transition mechanisms.
DSM-ROT-005 — Dynamic Issuance Preferred
Where practical, dynamic issuance SHOULD replace periodic static-secret rotation.
15. Expiry and Revocation
DSM-REV-001 — Bounded Validity
Temporary credentials MUST expire automatically.
DSM-REV-002 — Explicit Revocation
Security-significant credentials SHOULD support explicit revocation in addition to expiry.
DSM-REV-003 — Known Revocation Procedure
Every persistent production credential MUST have a known method of revocation.
DSM-REV-004 — Compromise Response
A credential suspected of disclosure MUST be considered compromised.
Removing the exposed value from source code, logs, or configuration MUST NOT constitute sufficient remediation.
The credential MUST be revoked or replaced.
16. Detection Practices
DSM-DETECT-001 — Secret Detection
Repositories containing production software MUST use automated secret detection.
DSM-DETECT-002 — Layered Detection
Secret detection SHOULD occur at multiple boundaries where practical:
developer environment
push
repository
CI pipeline
logs
artifacts
runtime
DSM-DETECT-003 — Push Prevention
Organizations SHOULD prevent recognized credentials from entering source-control history where tooling can do so reliably.
DSM-DETECT-004 — Detection-to-Revocation
Detection mechanisms SHOULD integrate with automated or semi-automated revocation procedures.
A finding without a response mechanism is incomplete control.
17. CI/CD Practices
DSM-CI-001 — CI/CD Is Production Security Infrastructure
Any CI/CD system able to modify production MUST be treated as production-grade security infrastructure.
DSM-CI-002 — OIDC/Federation
CI jobs SHOULD exchange short-lived execution identity for external capabilities rather than use stored infrastructure credentials.
This requirement is platform-independent and applies to systems such as GitLab CI, GitHub Actions, cloud-native build services, and other CI platforms capable of workload federation.
DSM-CI-003 — Pipeline Change Authority
Authorization to modify security-relevant pipeline code MUST be considered capable of affecting the credentials obtainable through that pipeline.
DSM-CI-004 — Secret Masking Is Not Protection
CI log masking MUST NOT be treated as sufficient protection of credentials.
DSM-CI-005 — Job-Scoped Credentials
CI credentials SHOULD be scoped to individual jobs or executions and expire after execution completes.
18. Kubernetes Practices
DSM-K8S-001 — ServiceAccount Identity
Kubernetes workloads SHOULD use workload identity rather than static application credentials wherever supported.
DSM-K8S-002 — Projected ServiceAccount Tokens
Workloads requiring Kubernetes ServiceAccount tokens SHOULD use short-lived projected tokens obtained through the TokenRequest mechanism rather than legacy indefinitely valid ServiceAccount token Secrets.
Tokens SHOULD be:
- expiration-bound;
- audience-bound where supported;
- associated with the intended workload context.
DSM-K8S-003 — External Authority
Kubernetes SHOULD NOT become the default authoritative store for organization-wide high-value secrets when a dedicated authority exists.
DSM-K8S-004 — Native Cloud Identity Before Secret Brokerage
When the cloud platform can authorize a Kubernetes workload directly through native workload identity, that path SHOULD generally be preferred over routing the request through a secrets broker solely for credential issuance.
For example:
Pod identity
↓
cloud workload federation
↓
cloud API
may be preferable to:
Pod
↓
secrets authority
↓
temporary cloud credential
↓
cloud API
when both provide equivalent policy and audit guarantees.
DSM-K8S-005 — External Secrets Operator
External Secrets Operator MAY be used as synchronization and reconciliation infrastructure.
Its use MUST deliberately define:
- refresh behavior;
- ownership;
- deletion semantics;
- target namespace;
- access scope.
DSM-K8S-006 — Secrets Store CSI
Secrets Store CSI or equivalent runtime mounting SHOULD be considered when applications can consume file-mounted credentials.
Synchronization into Kubernetes Secret objects SHOULD remain disabled when unnecessary.
DSM-K8S-007 — Namespace Isolation
Access to secret material MUST be scoped according to workload and namespace boundaries rather than assuming namespace membership alone implies authority.
19. Cryptographic Key Practices
Credentials and data-encryption keys are related but distinct security objects.
A typical envelope-encryption hierarchy may contain:
KEK — Key Encryption Key
↓
DEK — Data Encryption Key
↓
encrypted application data
DSM-KEY-001 — Non-Exportability
High-value root keys, signing keys, and KEKs SHOULD be non-exportable where the workflow permits it.
DSM-KEY-002 — KMS/HSM
Root signing, encryption, wrapping, and similar high-value keys SHOULD use dedicated KMS or HSM facilities appropriate to their risk.
DSM-KEY-003 — Cryptographic Operations Instead of Key Retrieval
Applications SHOULD request cryptographic operations from trusted services rather than retrieve master keys when practical.
For example:
sign(data)
unwrap(DEK)
decrypt(small_payload)
is preferable to:
get_root_private_key()
get_KEK()
DSM-KEY-004 — Local Key Material
Applications MAY require temporary possession of key material such as DEKs when performing local high-volume encryption.
Such key material SHOULD:
- be narrowly scoped;
- have bounded lifetime where practical;
- avoid persistence;
- be wrapped by independently controlled KEKs.
DSM-KEY-005 — Keyless Signing
Software build and artifact-signing workflows SHOULD prefer ephemeral or keyless signing schemes where ecosystem compatibility permits.
20. Human Handling
DSM-HUM-001 — No Human Transport
Humans SHOULD NOT normally act as the transport mechanism for production secrets.
Examples include:
password manager → CI variable
chat → terminal
ticket → Kubernetes Secret
vault UI → .env
DSM-HUM-002 — Human Readability
Production credentials SHOULD NOT routinely require humans to view their plaintext value.
DSM-HUM-003 — Break Glass
Emergency human access MUST use explicitly identified break-glass procedures.
Break-glass activity MUST be:
- exceptional;
- attributable;
- auditable;
- time-bounded where practical.
21. Agents and Automated Systems
DSM-AGENT-001 — Agent Identity
Autonomous and semi-autonomous agents MUST authenticate using distinguishable workload identities.
DSM-AGENT-002 — Per-Run Identity
Where practical, agent executions SHOULD receive execution-specific identity.
Agent identity SHOULD be distinguishable at least by:
agent
run/task
environment
authority context
DSM-AGENT-003 — Short Agent Identity Lifetime
Agent identity and derived capabilities SHOULD have short bounded lifetimes related to task execution.
Capabilities SHOULD expire or be revoked when the task:
- completes;
- fails;
- is cancelled;
- loses authorization.
DSM-AGENT-004 — No Embedded Master Credential
Agents MUST NOT receive persistent platform-wide master credentials merely because their behavior is dynamic.
DSM-AGENT-005 — Capability Brokerage
Agents SHOULD request narrowly scoped capabilities when required rather than maintaining broad standing authority.
DSM-AGENT-006 — Deterministic Enforcement
Security boundaries controlling agent access to secret-bearing capabilities MUST use deterministic policy enforcement.
LLM reasoning MUST NOT constitute the sole authorization mechanism.
DSM-AGENT-007 — Prevent Credential Accumulation
Agent frameworks MUST NOT silently accumulate credentials across tasks.
Credential caches, tool contexts, memory stores, workspaces, and execution sandboxes SHOULD be cleared or invalidated according to task lifecycle.
DSM-AGENT-008 — Tool Authority Is Agent Authority
Authority reachable through an agent's tools MUST be included when evaluating the agent's effective security authority.
This includes intermediate tool and service credentials that the model itself cannot inspect or retrieve.
For example:
agent
↓
tool A
↓
service B
↓
credential C
↓
system D
If use of tool A allows the agent to cause actions in system D through credential C, the resulting authority is part of the agent's effective authority.
A hidden credential is not outside the security boundary merely because the model never sees its bytes.
22. Audit and Observability
DSM-AUDIT-001 — Audit Security-Relevant Operations
The secrets or capability authority MUST record applicable:
- authentication;
- authorization;
- retrieval;
- issuance;
- renewal;
- rotation;
- revocation;
- administrative changes.
DSM-AUDIT-002 — Never Audit Plaintext Secrets
Audit records MUST NOT contain plaintext secret values.
DSM-AUDIT-003 — Attribution
Audit records SHOULD identify:
principal
resource
operation
policy context
time
result
execution identity
DSM-AUDIT-004 — Audit Integrity
Security audit records SHOULD be protected from modification by systems and actors whose activity they record.
High-assurance environments SHOULD export audit evidence to an independent security domain.
DSM-AUDIT-005 — Identity Failure Observability
Authentication and federation failures SHOULD emit sufficient structured telemetry to diagnose:
- issuer mismatch;
- audience mismatch;
- token expiration;
- policy denial;
- trust-chain failure;
- lease failure;
without disclosing credentials.
23. Roots of Trust and Recovery
DSM-ROOT-001 — Enumerate Roots
Every deployment MUST identify its roots of trust.
Unknown roots constitute an architecture defect.
DSM-ROOT-002 — Minimize Roots
The number of roots of trust SHOULD be minimized.
DSM-ROOT-003 — Root Isolation
Root credentials MUST NOT be handled through ordinary application secret-delivery mechanisms unless the mechanism is explicitly designed for that assurance level.
DSM-ROOT-004 — Recovery
Recovery procedures MUST be documented and periodically tested.
DSM-ROOT-005 — Quorum for Extreme Authority
Where feasible, operations capable of compromising the entire secrets hierarchy SHOULD require multi-party authorization.
Non-normative topology note
High-assurance multi-region, multi-account, or multi-cluster deployments should explicitly model:
- which roots are shared and which are independent;
- cross-region or cross-account trust relationships;
- issuer failure boundaries;
- disaster-recovery trust bootstrap;
- audit paths crossing administrative boundaries;
- whether compromise of one cluster or account can mint authority in another.
Replication should not accidentally turn one regional or cluster root into an undocumented global root.
Independent audit sinks can be especially important where the same administrative plane controls several trust domains.
24. Inventory and Discovery
DSM-INV-001 — Secret Inventory
Organizations MUST maintain an inventory of security-significant persistent credentials.
DSM-INV-002 — Inventory Attributes
An inventory entry SHOULD contain:
id:
kind:
authority:
issuer:
owner:
consumers:
environment:
resources:
operations:
created_at:
expires_at:
rotation_policy:
revocation_method:
delivery_method:
classification:
maturity_level:
discovery_source:
verification_state:
DSM-INV-003 — Ownership
Every material production credential MUST have an accountable owner.
DSM-INV-004 — Automated Discovery
Inventory SHOULD combine declared information with automated discovery where practical.
Discovery sources MAY include:
- secrets authorities;
- CI variables;
- cloud IAM;
- Kubernetes;
- repositories;
- secret scanners;
- runtime telemetry;
- configuration systems.
DSM-INV-005 — Evidence State
Inventory systems SHOULD distinguish between:
declared
discovered
verified
inferred
unknown
information.
Discovery MUST NOT silently be treated as complete inventory.
DSM-INV-006 — Discovered but Unowned
A discovered production credential without a known owner MUST be treated as a security finding.
It SHOULD be:
- contained if necessary;
- attributed;
- assigned an owner;
- revoked if no legitimate use is established.
DSM-INV-007 — Orphan Detection
Secrets without known consumers SHOULD be investigated and revoked where legitimate use cannot be established.
25. Exception Management
DSM-EXC-001 — Explicit Exceptions
Violation of a MUST requirement MUST be represented as an explicit exception.
DSM-EXC-002 — Exception Record
An exception MUST record:
requirement
affected system
reason
owner
risk
compensating controls
approval
review/expiry date
elimination path or review trigger
DSM-EXC-003 — Exceptions Expire or Revalidate
Security exceptions SHOULD have an expiration date or mandatory revalidation trigger.
Permanent silent exceptions are prohibited.
DSM-EXC-004 — Elimination Path
Where an exception represents technical debt, the record SHOULD state what event could remove it.
Examples:
vendor adds OIDC
legacy database upgraded
application migrated
protocol retired
new platform capability delivered
26. Anti-Pattern Catalogue
DSM-AP-001 — Secrets in Git
Plaintext credentials committed to source control.
DSM-AP-002 — CI Variable as Universal Vault
The CI system becomes the indefinite organization-wide credential database.
DSM-AP-003 — Shared Production Account
Unrelated workloads share a single production identity.
DSM-AP-004 — Vault Token Beside Application
A permanent vault token is distributed to workloads to obtain other secrets.
The secret-zero problem has merely moved.
DSM-AP-005 — Eternal API Token
A third-party token has no owner, expiry expectation, rotation process, or revocation procedure.
DSM-AP-006 — Kubernetes as Universal Vault
All organizational credentials are replicated into Kubernetes regardless of need.
DSM-AP-007 — Human Rotation Ritual
Operators copy replacement credentials manually between multiple systems.
DSM-AP-008 — Rotation Without Adoption
The authority changes the credential but consumers retain the previous value.
DSM-AP-009 — Deleting the Leak
A credential is removed from Git or logs and considered trustworthy again without revocation.
DSM-AP-010 — Secret Scanning Without Response
Secret detection creates findings but no response mechanism exists.
DSM-AP-011 — Masked Means Safe
A credential is considered secure because CI log masking is enabled.
DSM-AP-012 — Developer Production Secret
Developers routinely retain production credentials locally.
DSM-AP-013 — Root Everywhere
The secrets broker uses broad producer authority where narrower delegation is practical.
DSM-AP-014 — One Credential Per Environment
All workloads in an environment receive the same shared secret.
DSM-AP-015 — Secrets Manager as Generic Database
The secrets platform becomes a generic configuration store, obscuring authority boundaries.
DSM-AP-016 — LLM Gatekeeper
An LLM independently decides whether secret-bearing authority may be issued.
DSM-AP-017 — Permanent Agent Authority
An autonomous agent receives broad standing credentials because future actions cannot be predicted.
DSM-AP-018 — Dynamic at Any Cost
A complex dynamic-credential architecture is introduced despite low-value credentials, poor target support, severe reliability issues, and no meaningful reduction in standing authority.
DSM-AP-019 — Undebuggable Federation
Identity failures are opaque, causing engineers to bypass workload identity using personal or static credentials.
DSM-AP-020 — Hidden Credential Through Tooling
An agent, script, or platform appears credentialless while one of its tools or intermediate services exercises broad persistent credentials on its behalf.
27. Maturity Model
Maturity SHOULD be assessed independently for:
- individual credentials;
- applications;
- platforms;
- organizational portfolios.
An organizational maturity level MUST NOT conceal lower-level exceptions.
Maturity levels describe dominant architectural practice, not the complete absence of lower-level mechanisms.
DSM-M0 — Scattered
Characteristics:
- credentials in source trees;
- local
.envfiles; - manually managed CI variables;
- shared accounts;
- unclear owners;
- inconsistent rotation.
M0 is non-conformant for security-significant production credentials.
DSM-M1 — Vaulted
Characteristics:
- secrets centralized;
- encrypted at rest;
- authenticated access;
- basic access control;
- reduced plaintext distribution.
The organization has solved primarily where secrets live.
DSM-M2 — Managed
Characteristics:
- documented lifecycle;
- rotation;
- secret detection;
- defined revocation;
- audit trails;
- break-glass procedures;
- orphan detection.
The organization manages secrets as governed assets.
DSM-M3 — Federated
Characteristics:
- workload identity established;
- OIDC/workload federation common;
- secret-zero patterns reduced;
- human and machine identities separated;
- new compatible workloads normally receive distinct machine identity.
The organization increasingly manages identities rather than passwords.
DSM-M4 — Ephemeral
Characteristics:
- dynamic database credentials;
- short-lived certificates;
- temporary cloud authorization;
- job-specific capabilities;
- automatic expiry;
- explicit leasing and revocation.
The organization manages temporary authority.
DSM-M5 — Capability Brokered
Characteristics:
- standing credentials minimized;
- workloads request capabilities rather than bags of secrets;
- authorization uses identity and context;
- high-value keys remain non-exportable where practical;
- agents receive per-operation or per-task authority;
- root credentials are highly isolated.
The organization primarily manages authority rather than secret material.
28. Minimum Viable Adoption Profile
The maturity model describes architectural evolution.
It is not necessary to reach M3–M5 before gaining substantial security value.
A team beginning at M0/M1 SHOULD first establish the following baseline.
DSM-CORE-1 — Minimum Viable Adoption
For security-significant production systems:
- no plaintext secrets in Git;
- one identifiable authority for each persistent secret;
- known owner;
- known consumers where practical;
- environment separation;
- defined revocation method;
- rotation policy;
- automated secret scanning;
- CI masking treated only as defense in depth;
- development credentials separated from production;
- explicit exceptions;
- workload federation preferred for new integrations when readily available.
This typically corresponds to a healthy M2 trajectory.
DSM-CORE-2 — Next Best Investment
After DSM-CORE-1, teams SHOULD prioritize elimination of the credentials with the highest combination of:
authority × lifetime × exposure × operational frequency
rather than attempting indiscriminate migration of every secret at once.
29. Measurement Model
Metrics SHOULD distinguish what can be measured directly from what requires cross-system inference.
29.1 Tier A — Authority-Native Metrics
Usually straightforward to instrument:
| Metric | Target |
|---|---|
| Credentials with known owner | 100% |
| Credentials with expiry metadata | ↑ |
| Rotation success rate | → 100% |
| Credentials issued dynamically | ↑ |
| Credential TTL distribution | ↓ |
| Revocation events | observable |
| Failed issuance/renewal rate | low |
| Active leases | observable |
| Authentication failures | observable |
29.2 Tier B — Cross-System Inventory Metrics
Require correlation between several systems:
| Metric | Target |
|---|---|
| Credentials with identified consumers | 100% |
| Shared production credentials | → 0 |
| Orphaned credentials | → 0 |
| Workloads using federation | ↑ |
| CI variables containing credentials | ↓ |
| Kubernetes Secret copies | ↓ where avoidable |
| Static-to-ephemeral ratio | ↓ |
29.3 Tier C — Exposure and Runtime Metrics
Often require advanced discovery or telemetry:
| Metric | Target |
|---|---|
| Physical/logical copies per credential | ↓ |
| Effective standing authority | ↓ |
| Detection-to-revocation time | ↓ |
| Runtime credential exposure duration | ↓ |
| Unknown/unmanaged credential rate | → 0 |
Tier C metrics SHOULD carry an explicit coverage or confidence indication.
A metric based on 60% discovery coverage MUST NOT be presented as complete estate knowledge.
30. Exposure Model
A useful conceptual risk proxy is:
Exposure Risk
∝
authority
× lifetime
× copies
× accessibility
Security controls therefore have four fundamental levers:
reduce authority
reduce lifetime
reduce copies
reduce eligible access
Standing authority is a particularly important combination of the first two dimensions: significant authority that remains continuously available creates exposure even while it is not actively being used.
The preference hierarchy in Section 5 is valuable precisely because movement upward usually reduces several exposure dimensions simultaneously.
Replacing a shared permanent cloud key with federated job identity, for example, can simultaneously reduce:
- scope;
- lifetime;
- copies;
- number of eligible consumers;
- standing authority.
31. Tool Mapping
The canon deliberately does not prescribe individual products.
Tools occupy architectural roles.
| Tool / Class | Authority | Identity | Dynamic issuance | Rotation | Delivery | Detection | Crypto |
|---|---|---|---|---|---|---|---|
| OpenBao | ✓ | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| HashiCorp Vault | ✓ | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| GitLab Secrets Manager | ✓ | GitLab-native | partial | ✓ | ✓ | GitLab ecosystem | — |
| CI OIDC issuers | — | ✓ | via federation | — | — | — | — |
| AWS Secrets Manager | ✓ | IAM | target-dependent | ✓ | ✓ | — | KMS |
| AWS STS | — | ✓ | ✓ | n/a | ✓ | — | — |
| GCP Secret Manager | ✓ | IAM/WIF | target-dependent | ✓ | ✓ | — | KMS |
| GCP Workload Identity | — | ✓ | ✓ | n/a | ✓ | — | — |
| Azure Key Vault | ✓ | Entra | target-dependent | ✓ | ✓ | — | ✓ |
| SPIFFE/SPIRE | — | ✓ | identity issuance | automatic | ✓ | — | PKI |
| External Secrets Operator | — | workload | — | sync | ✓ | — | — |
| Secrets Store CSI | — | workload | — | refresh | ✓ | — | — |
| SOPS + age/KMS | encrypted state | key identity | — | external | GitOps | — | ✓ |
| Sealed Secrets | encrypted state | cluster | — | limited | GitOps | — | ✓ |
| Sigstore/Cosign | — | OIDC | signing identity | n/a | — | transparency | ✓ |
| HSM/KMS | key authority | IAM | operations | ✓ | API | audit | ✓ |
| Infisical | ✓ | ✓ | ✓ | ✓ | ✓ | integrations | varies |
| Akeyless | ✓ | ✓ | ✓ | ✓ | ✓ | integrations | ✓ |
| Doppler | ✓ | ✓ | target-dependent | ✓ | ✓ | integrations | — |
| CyberArk | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | integrations |
Capability presence does not imply equivalent assurance, maturity, or suitability.
Tool capabilities also evolve independently of the canon. A tool mapping therefore SHOULD be treated as implementation guidance rather than a normative property of the canon.
32. Reference Architecture
A high-maturity implementation may resemble:
┌───────────────────────┐
│ HUMAN IDENTITY │
│ SSO / MFA / Hardware │
└───────────┬───────────┘
│
▼
┌────────────────────────────────────────────────────┐
│ IDENTITY PLANE │
│ │
│ CI OIDC │ Kubernetes │ SPIFFE │ Cloud Workload ID │
└───────────────────────┬────────────────────────────┘
│ identity assertion
▼
┌────────────────────────────────────────────────────┐
│ POLICY / CAPABILITY CONTROL │
│ │
│ policy │ context │ least authority │ leases │
└───────────────────────┬────────────────────────────┘
│
┌─────────────┴─────────────┐
▼ ▼
┌──────────────────┐ ┌──────────────────────┐
│ SECRETS / CRED. │ │ NATIVE IDENTITY │
│ AUTHORITY │ │ TARGET │
│ │ │ │
│ KV / PKI / DB / │ │ Cloud IAM / API │
│ transit / lease │ │ accepting federation│
└────────┬─────────┘ └──────────────────────┘
│
▼
┌────────────────────────────────────────────────────┐
│ DELIVERY │
│ Direct API │ Agent │ CSI │ ESO │ ephemeral file │
└───────────────────────┬────────────────────────────┘
▼
┌────────────────────────────────────────────────────┐
│ CONSUMERS │
│ CI │ workloads │ services │ agents │ humans │
└────────────────────────────────────────────────────┘
┌───────────────────────┐
│ ROOT OF TRUST │
│ KMS │ HSM │ Root CA │
│ quorum/recovery │
└──────────┬────────────┘
│ protects / anchors
└──────────────► identity, policy and secret planes
All security-significant planes
│
▼
┌────────────────────────────────────────────────────┐
│ INDEPENDENT AUDIT / SECURITY TELEMETRY │
│ immutable or independently protected where needed │
└────────────────────────────────────────────────────┘
The architecture explicitly permits two high-quality paths:
identity → native target
and:
identity → broker → issued capability → target
A broker SHOULD NOT be inserted merely because one exists.
In multi-region, multi-account, or multi-cluster environments, the boundaries between identity, authority, roots of trust, and independent audit SHOULD be modeled explicitly rather than assumed to be global.
33. CI Platform Mapping
The principles are CI-platform independent.
A modern CI environment SHOULD attempt:
job
↓
short-lived CI identity
↓
OIDC / federation
↓
target policy
↓
temporary capability
This pattern applies to:
- GitLab CI;
- GitHub Actions;
- cloud build platforms;
- self-hosted CI systems supporting OIDC or equivalent federation.
Stored CI variables remain appropriate for compatibility cases, but SHOULD be treated as the lower part of the preference hierarchy rather than the architectural default.
34. GitLab-Oriented Mapping
GitLab SHOULD be used as appropriate as:
- CI workload-identity issuer;
- repository policy boundary;
- workflow and deployment authority;
- secret-detection surface;
- project/group secret authority where useful.
GitLab Secrets Manager MAY be useful for:
- project-level static secrets;
- group-level secrets;
- credentials tightly coupled to GitLab authorization;
- targets incapable of dynamic issuance.
GitLab CI variables SHOULD NOT become:
- the organization-wide vault;
- the default location for cloud master credentials;
- the normal bootstrap mechanism for external secrets systems.
GitLab OIDC SHOULD be preferred where supported for:
GitLab → secrets authority
GitLab → cloud IAM
GitLab → deployment platform
GitLab → federated external service
35. OpenBao/Vault-Oriented Mapping
A general-purpose secrets authority can provide:
Secrets Authority
Credential Broker
Dynamic Credential Issuance
PKI
Cryptographic Transit
Lease Management
Revocation
Audit Source
It SHOULD NOT automatically become the location for every item of sensitive configuration merely because it can store arbitrary values.
The desired pattern remains:
identity
↓
policy
↓
specific capability
rather than:
application
↓
large bag of persistent secrets
36. Kubernetes-Oriented Mapping
A preferred decision path is:
Kubernetes workload
│
▼
projected workload identity
│
├──────────────► cloud/native federation ──► target
│
└──────────────► secrets authority
│
├── dynamic credential
└── required static secret
│
┌─────┴─────┐
▼ ▼
direct/CSI ESO
│
▼
Kubernetes Secret
The shortest trustworthy path SHOULD generally be preferred.
37. Decision Procedure
Whenever a new credential is proposed, the designer SHOULD answer the following questions in order.
Q1 — Can the operation use identity directly?
If yes:
do not create a secret.
Q2 — Can the target accept federated identity?
If yes:
federate.
Q3 — Can the target issue an ephemeral credential?
If yes and operationally viable:
issue dynamically.
Q4 — Can an existing static credential be automatically rotated?
If yes:
manage and rotate it centrally.
Q5 — Must a persistent static credential exist?
If yes:
vault it and manage it explicitly.
Then determine:
Who owns it?
Who consumes it?
What authority does it grant?
How is it delivered?
How many known copies exist?
How is it rotated?
How is it revoked?
How is leakage detected?
How is use audited?
What happens if the issuer is unavailable?
When could this credential be eliminated?
This decision procedure is the minimum conceptual implementation of the canon.
38. Conformance
A system is Fully Canon Conformant when:
- all applicable MUST requirements are satisfied; or
- violations exist only as explicit DSM-EXC exceptions.
A declaration SHOULD take the form:
DevOps Secrets Management Canon v1.0
System: payment-platform
Adoption Profile: Full
Maturity: DSM-M4
Discovery Coverage:
declared/inventory: 100%
automated-discovery estimate: 87%
runtime-discovery estimate: 65%
Exceptions:
- EXC-042 legacy-bank-api-token
- EXC-057 vendor-sftp-password
Discovery coverage SHOULD be included when materially incomplete discovery could affect the credibility of a maturity claim.
Teams not yet ready for full conformance MAY instead declare:
Adoption Profile: DSM-CORE-1
provided this is not represented as full canon conformance.
39. Portfolio Conformance
Organizations SHOULD NOT claim a single maturity level without describing the distribution of authorities or credentials.
A preferred representation is:
M0 0%
M1 4%
M2 11%
M3 27%
M4 46%
M5 12%
The distribution SHOULD ideally distinguish important credential classes.
For example:
Cloud workloads M4
Database access M4
Third-party SaaS M2
Legacy appliances M1
CI identity M3
Signing M5
Portfolio declarations SHOULD state material discovery limitations.
For example:
Coverage:
managed authorities 98%
CI systems 100%
Kubernetes clusters 95%
third-party SaaS 70%
developer-held material unknown
A maturity declaration describes what is known about the estate; it MUST NOT imply that unknown areas have been proven free of unmanaged credentials.
40. Non-Normative Framework Alignment
This section is informational and does not establish compliance.
The canon is broadly compatible with the direction of established security frameworks.
Zero Trust
The strongest alignment is with zero-trust architecture principles:
- authenticate explicitly;
- authorize per request;
- minimize implicit trust;
- limit standing privilege;
- use contextual policy;
- prefer short-lived credentials.
The M3–M5 progression can be seen as increasingly complete application of these ideas to machine and workload authority.
NIST Cybersecurity Framework
Relevant themes include:
- asset and identity awareness;
- access control;
- credential protection;
- continuous monitoring;
- detection;
- incident response;
- recovery.
The canon adds a more specific credential-lifecycle and workload-identity model beneath those higher-level outcomes.
NIST SP 800-53
The canon overlaps especially with control families concerned with:
- access control;
- identification and authentication;
- audit and accountability;
- configuration management;
- system and communications protection;
- incident response.
It should not be treated as a replacement for an SP 800-53 control assessment.
ISO/IEC 27001
Relevant areas include:
- identity management;
- authentication information;
- access rights;
- privileged access;
- cryptography;
- logging;
- secure development;
- configuration management;
- incident management.
The canon can provide an implementation-oriented secrets-management submodel beneath an ISO 27001 ISMS.
Compliance Principle
Compliance frameworks tend to ask:
Is credential risk controlled?
The canon additionally asks:
Why does this credential exist at all?
That second question is what drives movement from M2 toward M3–M5.
41. Governing Principles
The central design principle of this canon is:
A persistent secret represents deferred identity or capability engineering.
Sometimes that debt is rational.
Legacy systems exist. Third-party APIs expose fixed tokens. Recovery authorities cannot always be eliminated. Dynamic issuance can introduce real dependencies and operational cost.
The canon therefore does not demand maximal machinery.
Instead, every persistent secret should provoke these questions:
Why must this authority exist as a credential?
Why must the credential persist?
Why must its value be readable?
Why must it be copied?
Why must more than one principal possess it?
What prevents us from moving it one level upward in the preference hierarchy?
The desired long-term trajectory is:
secret storage
↓
secret lifecycle management
↓
workload identity
↓
ephemeral credentials
↓
capability brokerage
But the operational rule is:
Move authority upward only when the resulting system is both more secure and sustainably operable.
The end state of mature secrets management is not the elimination of every secret.
It is the transition from managing secret material to:
managing explicit, bounded, observable authority.