55 KiB
Active Secrets Management Canon
Version: 0.3
Status: Working Canon / Review Draft
Date: 2026-08-24
Scope: Human, agent-assisted, and autonomous development and operations environments
1. Purpose
The Active Secrets Management Canon defines a practical security baseline for development and operations environments in which humans and software agents jointly create, change, operate, and secure information systems.
The Canon starts from a simple observation:
Secrets management is no longer primarily the secure storage of passwords, tokens, and keys. It is the controlled lifecycle of authority.
A modern system should minimize standing credentials, derive short-lived authority from verifiable identities and policy, constrain that authority at deterministic security boundaries, observe its use, detect credential exposure, revoke compromised authority, and prove that remediation is complete.
The target lifecycle is:
identify
↓
authenticate
↓
authorize / delegate
↓
mint short-lived authority
↓
use
↓
expire / revoke
↓
observe
↓
detect exposure or misuse
↓
remediate
↓
verify closure
↺
The Canon is deliberately agent-aware. It distinguishes interactive agent assistance from autonomous agent operation and treats the increased velocity and concurrency of agentic change as a first-class security concern.
2. Design Thesis
The foundational design principle is:
Cognition may be probabilistic. Authority must be deterministically constrained.
Large language models and agents may reason, plan, discover tools, propose actions, classify situations, and adapt behavior. They must not be the sole mechanism deciding whether a protected resource can be accessed or changed.
A production-grade environment therefore separates:
- Cognitive Plane — what might usefully happen next;
- Authority Plane — what is permitted to happen;
- Execution Plane — what actually changes system state.
A compact formulation is:
Cognition proposes. Authority disposes. Infrastructure executes.
This does not imply that authorization policy must be static. It may be highly contextual and dynamic. The requirement is that access decisions are based on explicit, reproducible, auditable rules and enforced independently of the agent requesting the action.
3. Normative Language
The terms MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are used normatively:
- MUST / MUST NOT — required for conformance to the stated profile.
- SHOULD / SHOULD NOT — expected unless a documented risk-based exception exists.
- MAY — optional or context dependent.
The Canon is not a legal or regulatory standard. It is an engineering and governance baseline intended to support security assurance, auditability, and compliance evidence.
4. Scope
The Canon applies to:
- human developers and operators;
- interactive coding and operations agents;
- scheduled, triggered, or event-driven autonomous agents;
- CI/CD systems;
- Kubernetes and cloud workloads;
- MCP and other tool-mediated agent interfaces;
- agent-to-agent interactions;
- databases, cloud APIs, SaaS APIs, and production services;
- static and dynamic secrets;
- workload identity, federation, and short-lived credentials;
- secret discovery, remediation, rotation, revocation, and audit.
It is intended for environments ranging from a single engineering team to a multi-tenant production platform.
5. Threat and Failure Model
The Canon assumes that one or more agentic components can:
- misunderstand intent;
- hallucinate;
- follow malicious or injected instructions;
- select the wrong tool;
- use the right tool with the wrong parameters;
- become stuck in loops;
- over-consume compute or token budget;
- expose credentials through prompts, logs, shell history, traces, or generated code;
- be induced to act as a confused deputy;
- chain unsafe actions across multiple agents;
- operate faster than human monitoring can reliably follow;
- attempt to broaden or alter their own authority;
- encounter compromised tools, dependencies, MCP servers, or data sources.
A production security baseline MUST therefore remain meaningful even when an agent behaves incorrectly.
The decisive review question is:
If every participating model makes the wrong decision, which security guarantees still hold?
Those surviving guarantees constitute the actual security substrate.
Part I — Operating Model
6. Human-Only, Agent Assistant, and Autonomous Modes
6.1 Human-Only Development and Operations
A human directly operates tools and infrastructure. Human effort, attention, and execution speed naturally limit change velocity.
Credentials are associated primarily with human identities and workload identities.
This remains the baseline against which agentic modes should be compared.
6.2 Agent Assistant Coding
Agent Assistant Coding is an interactive human-agent session in which a human developer or operator remains actively engaged with the agent and can monitor, redirect, approve, interrupt, or stop activity with human-scale latency.
Typical characteristics:
- a human initiates the session;
- the human provides intent and context;
- the human observes work as it occurs;
- the human can make decisions immediately;
- credentials often originate from the human's active session;
- the human remains the primary operational principal;
- the agent is an identifiable actor assisting that principal.
Conceptually:
Human principal
│
│ active supervision
▼
Assistant agent
│
│ delegated/session authority
▼
Tools / code / infrastructure
Where technically practical, audit data SHOULD distinguish:
principal = human
actor = assistant agent
session = interactive session
The presence of a human in the loop reduces some risks but does not replace deterministic access controls.
Human risk acceptance tends to act as an informal limiter of automation velocity: confidence increases delegation until incidents, near misses, or uncertainty reduce appetite for further speed.
6.3 Autonomous Agent Coding
Autonomous Agent Coding consists of scheduled, triggered, queued, event-driven, or machine-initiated coding and operations agents that can act without continuous human supervision.
Examples include:
- dependency update agents;
- autonomous refactoring;
- vulnerability remediation;
- test repair;
- release and deployment agents;
- infrastructure reconciliation;
- incident-response agents;
- routine operational agents;
- agent-to-agent development workflows.
Autonomous agents require:
- unique addressable identities;
- explicit access profiles;
- policy-bound mandates;
- defined ownership;
- resource and economic budgets;
- lifecycle management;
- bounded authority;
- deterministic circuit breakers;
- reconstructable audit evidence.
Conceptually:
Organizational governance
│
▼
Agent identity + mandate
│
▼
Task authorization
│
▼
Autonomous agent
│
▼
Tools / infrastructure
The relevant question becomes:
Under which organizational authority may agent X independently perform class Y of actions against resources Z?
6.4 Transition Between Modes
Moving a workflow from Agent Assistant Coding to Autonomous Agent Coding is a security architecture change, not merely an automation improvement.
Example:
"Human asks agent to deploy release"
↓
"Agent deploys every approved release overnight"
The second design requires an independent identity, mandate, authority ceiling, lifecycle, budget, governance owner, audit model, and failure controls.
No workflow SHOULD silently become autonomous merely because the human session disconnects or times out.
7. Change Dynamics
Agentic development increases the velocity, volume, duration, and concurrency of change.
Traditional human work contains accidental safety friction:
- somebody must notice;
- understand;
- decide;
- edit;
- execute;
- test;
- deploy;
- observe.
Agentic systems remove much of that friction. This improves productivity while simultaneously increasing the speed with which wrong decisions can propagate.
7.1 Change Dynamics Envelope
Every production environment SHOULD define a Change Dynamics Envelope:
The maximum rate, scope, duration, and concurrency of system change the security and governance system is designed to tolerate while maintaining its required invariants.
Relevant dimensions include:
- repositories and resources reachable;
- environments reachable;
- read versus write authority;
- reversible versus irreversible actions;
- number of concurrent agents;
- maximum tool calls;
- maximum runtime;
- credential TTL;
- maximum deployment frequency;
- token and compute budget;
- external-service spend;
- destructive-action quota;
- maximum propagation depth across agent chains.
7.2 Assistant-Mode Limiter
Assistant-mode change dynamics are constrained by:
agent capability
× human willingness to delegate
× observability
× human reaction speed
→ effective change velocity
7.3 Autonomous-Mode Limiter
Autonomous-mode change dynamics are constrained by:
agent capability
× authorization
× governance
× resource limits
× token / compute budget
× runtime
× concurrency
→ effective change velocity
Budgets and quotas are useful blast-radius controls, but never substitutes for authorization.
Part II — Foundational Security Invariants
8. Canon Invariants
INV-01 — Deterministic Authority Boundary
Every privileged production action MUST ultimately cross a deterministic authorization and enforcement boundary.
INV-02 — No Privilege from Cognition
An LLM, agent, prompt, model confidence score, or probabilistic classifier MUST NOT be able by itself to grant additional authority.
INV-03 — Tool Availability Is Not Permission
The fact that an MCP server, plugin, shell, API, or agent exposes a capability conveys no authorization to use it.
INV-04 — Agent and Principal Are Distinct Facts
Where an agent acts for a human or another system, the executing actor and delegating principal SHOULD remain distinguishable in identity and audit context.
INV-05 — Assistant and Autonomous Modes Are Different Security Regimes
Interactive supervision and autonomous operation MUST NOT be treated as equivalent from an identity, credential, governance, or accountability perspective.
INV-06 — Human Supervision Is Not Access Control
A human watching an agent MAY reduce operational risk but MUST NOT substitute for resource-side security enforcement.
INV-07 — Authority Has a Hard Ceiling
Agentic reasoning MAY attenuate or decline available authority. It MUST NOT exceed the deterministic maximum authority granted by policy.
INV-08 — No Prompt-Only Security
Prompts, personas, natural-language policies, or model instructions MUST NOT be treated as hard security controls.
INV-09 — Emergency Control Is Independent of the Agent
Revocation, privilege suspension, kill switches, and circuit breakers MUST work without cooperation from the affected agent.
INV-10 — Security Evidence Is Agent-Resistant
Agents MUST NOT be able to silently alter or erase authoritative evidence of their privileged actions.
INV-11 — Security Policy Is More Protected Than Workload State
Changes to authorization policy, identity trust, secret backends, audit configuration, or circuit breakers MUST be governed more strongly than normal workload changes.
INV-12 — Production Claims Are Expressed as Invariants
Security assurance SHOULD be stated in terms of enforceable properties, for example:
"This agent identity cannot delete production namespaces."
not:
"The agent has been instructed not to delete production namespaces."
9. Deterministic Does Not Mean Static
A deterministic policy may incorporate dynamic context.
Example:
ALLOW production.restart
IF
actor.role == "operations-agent"
AND environment == "production"
AND service.team == actor.team
AND incident.status == "active"
AND approval.valid == true
AND approval.action == request.action
AND approval.target == request.target
AND now < approval.expiry
AND action_quota > 0
The authorization outcome remains reproducible for the same evaluated state.
Probabilistic signals MAY inform policy as advisory or restrictive inputs. They SHOULD NOT be the sole basis for granting additional privilege.
For example:
- a model-based anomaly score MAY trigger step-up approval;
- it MAY reduce available authority;
- it MAY pause autonomous writes;
- it SHOULD NOT by itself grant production administrator access.
Part III — Reference Architecture
10. Three-Plane Architecture
COGNITIVE PLANE
┌─────────────────────────────────┐
│ LLM reasoning │
│ planning │
│ code generation │
│ tool discovery │
│ diagnostics │
│ agent coordination │
│ risk suggestions │
└───────────────┬─────────────────┘
│ requests action
▼
════════════════════════════════════════════════
AUTHORITY PLANE
┌─────────────────────────────────┐
│ Identity │
│ Authentication │
│ Delegation │
│ Deterministic policy │
│ Approval │
│ Vault / STS / credential mint │
│ TTL / quotas / constraints │
│ Circuit breakers │
└───────────────┬─────────────────┘
│ permits action
▼
════════════════════════════════════════════════
EXECUTION PLANE
┌─────────────────────────────────┐
│ Git │
│ CI/CD │
│ Kubernetes │
│ Cloud APIs │
│ Databases │
│ Production services │
│ SaaS systems │
└───────────────┬─────────────────┘
│
▼
Audit / telemetry
│
▼
Detection / remediation
│
└──────────► Authority plane
11. MCP and Agentic Infrastructure
MCP is a capability interface, not a security authority.
An MCP server may expose:
list_pods()
get_logs()
restart_service()
scale_deployment()
modify_network_policy()
rotate_database_password()
delete_namespace()
The tool catalog describes what can be requested. It does not determine who may execute each action.
The expected pattern is:
Agent
│
│ requests "restart service X"
▼
MCP tool / execution gateway
│
▼
Deterministic authorization
├── actor identity
├── delegated principal
├── task / session
├── environment
├── target resource
├── operation
├── policy
├── approval
├── TTL
├── quota
└── budget
│
ALLOW
│
▼
Infrastructure API
This rule continues through recursive agent chains:
coding agent
↓
MCP
↓
operations agent
↓
cluster agent
↓
DETERMINISTIC POLICY ENFORCEMENT
↓
production infrastructure
Agentic infrastructure MAY provide flexibility above the boundary. It MUST NOT dissolve the boundary.
Part IV — Identity, Credentials, and Authority
12. Core Terminology
Principal
The human, organization, workload, or system on whose behalf authority is being exercised.
Actor
The entity directly performing the action.
Example:
principal = Alice
actor = deploy-agent-22
Runtime Identity
The identity of the executing workload instance, pod, job, VM, process, or equivalent runtime.
Authority
The right to perform a defined action against a defined resource under defined conditions.
Credential
A transferable or presentable technical artifact used to authenticate or exercise authority, such as a token, key, certificate, password, or signed assertion.
Secret
A credential or sensitive value whose security depends materially on confidentiality.
Delegation
A transfer of some authority from one principal to an actor without collapsing their identities.
Capability
A narrowly scoped authorization artifact or effective permission to perform one or more defined operations.
Standing Authority
Authority that persists independently of a specific short-lived task, session, or workflow.
Dynamic Secret
A credential generated on demand for a specific consumer or lease and automatically expiring or revocable.
Secretless Access
Access based on non-exportable or federated identity mechanisms without provisioning a long-lived shared secret to the consumer.
Authority Ceiling
The maximum authority an actor can obtain under deterministic policy, regardless of what the actor requests or reasons.
13. Credential Hierarchy
| Class | Meaning | Target treatment |
|---|---|---|
| S0 — Secretless | No reusable transferable secret is provisioned | Preferred |
| S1 — Ephemeral identity | Short-lived JWT, STS token, SVID, certificate, session token | Normal operating state |
| S2 — Dynamic secret | Per-consumer/per-task generated credential with lease | Preferred where identity cannot be consumed directly |
| S3 — Managed static secret | API key/password that must persist | Central storage, ownership, automatic rotation, monitoring |
| S4 — Root/bootstrap material | CA keys, recovery material, break-glass authority | Exceptional, offline/HSM/quorum protected |
The migration direction is:
S4 → S3 → S2 → S1 → S0
Not every system can reach S0, but every S3/S4 credential SHOULD have an explicit justification.
14. Authority Context for Agent Actions
A privileged agent action SHOULD be attributable to a context comparable to:
principal: Alice
actor: deploy-agent-22
runtime: spiffe://example/prod/deployer/22
session: s-779381
task: deploy release 7.2.1
action: production.deploy
resource: cluster/payments
approval: approval-9432
policy_version: authz-2026-08-17
expires: 2026-08-24T18:42:00Z
The aim is not to make every token carry every field. The aim is to preserve enough linked evidence across identity, authorization, credential issuance, execution, and audit systems to reconstruct the chain.
Part V — Control Catalog
15. Identity Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-I01 | Human federation | Human access to production systems MUST use organizational identity federation where supported. |
| ASM-I02 | Strong human authentication | Privileged human access SHOULD use phishing-resistant MFA/passkeys/security keys. |
| ASM-I03 | Workload identity | Significant services, jobs, agents, and pipelines MUST have distinct workload identities. |
| ASM-I04 | No shared machine identities | Multiple autonomous actors MUST NOT share one generic machine identity unless technically unavoidable and risk-accepted. |
| ASM-I05 | Identity is not authorization | Authentication of an actor MUST NOT by itself imply resource authorization. |
| ASM-I06 | Lifecycle-bound identity | Agent and workload identities MUST be disabled or decommissioned when the corresponding workload or mandate ends. |
| ASM-I07 | Identity provenance | Identity issuers and trust relationships MUST be explicitly governed and auditable. |
16. Operating-Mode Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-M01 | Declare mode | Each agentic workflow MUST be classified as Assistant or Autonomous. |
| ASM-M02 | Human principal in Assistant mode | Assistant sessions SHOULD be associated with an identified supervising human principal. |
| ASM-M03 | Independent identity in Autonomous mode | Autonomous agents MUST authenticate using a distinct workload/agent identity, not a borrowed human credential. |
| ASM-M04 | Preserve actor identity | Audit SHOULD distinguish human principal and agent actor where technically possible. |
| ASM-M05 | Explicit autonomy transition | Moving a workflow from Assistant to Autonomous mode MUST undergo security/governance review. |
| ASM-M06 | No accidental autonomy | Human disconnect or session timeout MUST NOT silently convert a privileged Assistant workflow into Autonomous operation. |
| ASM-M07 | Supervision boundary | Assistant-mode tools SHOULD expose clear interruption, pause, and confirmation mechanisms for high-impact actions. |
| ASM-M08 | Mode-specific credentials | Credential issuance SHOULD reflect whether authority is human-session delegated or independently assigned to an autonomous agent. |
17. Deterministic Security Substrate Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-S01 | Deterministic enforcement | Protected-resource authorization MUST ultimately be enforced by deterministic mechanisms. |
| ASM-S02 | LLMs cannot grant authority | Agent reasoning MUST NOT directly create additional privilege. |
| ASM-S03 | Tool discovery ≠ authorization | Tool/MCP discovery MUST NOT be interpreted as permission. |
| ASM-S04 | Resource-side validation | Sensitive APIs MUST independently validate effective authorization. |
| ASM-S05 | No prompt-only boundary | Prompt instructions MUST NOT be considered sufficient access control. |
| ASM-S06 | Deterministic credential issuance | Credential brokers MUST evaluate explicit policy before issuing privileged credentials. |
| ASM-S07 | Hard authority ceiling | Agents MAY use less authority than available but MUST NOT exceed the policy-defined maximum. |
| ASM-S08 | Fail closed | Security-critical policy, approval, or audit failures SHOULD block privileged actions rather than silently bypass controls. |
| ASM-S09 | Independent kill switch | Autonomous write authority MUST be revocable independently of the agent. |
| ASM-S10 | Protected security policy | Agents MUST NOT have ordinary workload-level authority to modify their own maximum authorization. |
| ASM-S11 | Separation of policy change | Security-policy changes SHOULD require stronger authorization than routine application changes. |
| ASM-S12 | Restrictive probabilistic signals | Model-derived signals MAY reduce or suspend authority; they SHOULD NOT be the sole input that expands authority. |
18. Credential Lifecycle Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-C01 | Eliminate first | Before storing a new secret, teams MUST evaluate whether federation or workload identity can eliminate it. |
| ASM-C02 | Temporary credentials default | Cloud and infrastructure access SHOULD use short-lived federated credentials rather than static keys. |
| ASM-C03 | Dynamic backend credentials | Databases and similar systems SHOULD use per-client dynamic credentials where supported. |
| ASM-C04 | Explicit TTL | Machine credentials capable of expiration MUST have defined TTLs. |
| ASM-C05 | Consumer-specific credentials | Unavoidable static credentials SHOULD be distinct per consumer and environment. |
| ASM-C06 | Automatic rotation | Managed static machine secrets SHOULD rotate automatically. |
| ASM-C07 | Immediate compromise revocation | Suspected or confirmed leaked credentials MUST be revoked without waiting for scheduled rotation. |
| ASM-C08 | Separate rotation from revocation | Processes MUST distinguish routine rotation from incident-driven revocation. |
| ASM-C09 | Secret-zero minimization | Workload identity, attestation, OIDC, cloud identity, SPIFFE, TPM/HSM, or equivalent SHOULD bootstrap secret access instead of another static secret. |
| ASM-C10 | Root material isolation | Root, recovery, CA, and break-glass credentials MUST be exceptional and protected with stronger controls than ordinary application credentials. |
| ASM-C11 | No credential copying by default | Credentials SHOULD NOT be duplicated across systems unless an explicit synchronization model preserves ownership and lifecycle. |
| ASM-C12 | Credential ownership | Every persistent credential MUST have a named technical and organizational owner. |
19. Agent-Specific Authority Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-A01 | Principal/actor separation | Delegated operations SHOULD preserve both originating principal and executing actor. |
| ASM-A02 | No invisible impersonation | Agents SHOULD NOT simply reuse a human credential in a way that makes the actor indistinguishable. |
| ASM-A03 | Task-scoped authority | Agent authority SHOULD reflect the current task, environment, resource, and operation. |
| ASM-A04 | Delegation attenuation | Child agents MUST NOT automatically gain more authority than their caller. |
| ASM-A05 | Per-tool authorization | Sensitive tool invocation MUST be independently authorized at or below the tool boundary. |
| ASM-A06 | Read/write separation | Read, write, privileged, destructive, and irreversible capabilities SHOULD be separately controlled. |
| ASM-A07 | No reusable credentials in model context | Raw reusable credentials MUST NOT intentionally be placed in prompts, model context, memory, or retrieval corpora. |
| ASM-A08 | Brokered execution | Where feasible, a trusted execution layer SHOULD exercise credentials on behalf of the model instead of disclosing them to it. |
| ASM-A09 | Risk classification | Tool actions SHOULD be classified by operational impact. |
| ASM-A10 | Step-up for high impact | High-impact actions SHOULD require stronger authorization, approval, or independent validation. |
| ASM-A11 | Parameter-bound approval | Approval for sensitive actions SHOULD bind actor, tool, target, normalized parameters, time, and expiry. |
| ASM-A12 | Replay resistance | High-impact approval artifacts SHOULD be short-lived and non-replayable. |
20. Change Dynamics Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-X01 | Define change envelope | Production environments SHOULD define acceptable rate, scope, and concurrency of autonomous change. |
| ASM-X02 | Bound blast radius | Agent authority SHOULD be constrained by repository, environment, resource class, and operation. |
| ASM-X03 | Concurrency limits | Autonomous mutation concurrency MUST be explicitly bounded. |
| ASM-X04 | Runtime limits | Autonomous jobs SHOULD have maximum execution durations. |
| ASM-X05 | Resource budgets | Token, compute, tool-call, and external-service budgets SHOULD be enforced for autonomous workflows. |
| ASM-X06 | Budgets are not authorization | Economic limits MUST NOT be relied upon as the sole protection against privileged actions. |
| ASM-X07 | Progressive delegation | Broader autonomy SHOULD be earned through operational evidence and explicit governance decisions. |
| ASM-X08 | Velocity-aware monitoring | Detection and remediation capacity SHOULD scale with autonomous change velocity. |
| ASM-X09 | Circuit breakers | Defined anomaly or invariant violations SHOULD deterministically suspend autonomous write authority. |
| ASM-X10 | Safe degraded mode | When automation is degraded, the system SHOULD preferentially preserve read/diagnostic access while reducing mutation authority. |
21. Development Workstation Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-D01 | SSO for developer tooling | Git, cloud, Kubernetes, and secret-management access SHOULD use federated sessions. |
| ASM-D02 | JIT local credentials | CLI credentials SHOULD be short-lived and refreshable through SSO/federation. |
| ASM-D03 | Agent sandboxing | Coding agents SHOULD execute inside explicit filesystem, network, process, and tool boundaries. |
| ASM-D04 | Repository-specific capability | An agent session SHOULD receive only credentials and tools needed for the active project. |
| ASM-D05 | No environment inheritance by default | Agent processes SHOULD NOT automatically inherit the complete human shell environment or all .env values. |
| ASM-D06 | Pre-commit detection | Secret scanning SHOULD occur before code enters version control. |
| ASM-D07 | Transcript redaction | Shell logs, traces, agent transcripts, and debugging output MUST avoid storing plaintext credentials. |
| ASM-D08 | Local credential isolation | SSH agents, cloud sessions, browser sessions, and local secret stores SHOULD be selectively exposed rather than globally available to coding agents. |
22. CI/CD Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-CI01 | CI workload federation | CI/CD SHOULD use OIDC or equivalent workload federation instead of stored cloud credentials. |
| ASM-CI02 | Job-bound lifetime | Deployment credentials SHOULD expire approximately with job lifetime. |
| ASM-CI03 | Claim restrictions | Trust SHOULD be restricted by repository, organization, workflow, branch, environment, and/or other verifiable claims. |
| ASM-CI04 | Environment separation | Development, test, staging, and production deployment identities MUST be independently authorized. |
| ASM-CI05 | Pull-request isolation | Untrusted forks and pull requests MUST NOT receive production credentials. |
| ASM-CI06 | Ephemeral privileged runners | Privileged pipelines SHOULD use disposable or strongly isolated execution environments. |
| ASM-CI07 | Agent-produced pipeline changes | Changes to workflow identity, secrets, permissions, or deployment gates SHOULD receive stronger review than ordinary code. |
| ASM-CI08 | Artifact provenance | Production deployment SHOULD preserve linkage between source, workflow identity, artifact, and deployment action. |
23. Kubernetes and Runtime Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-K01 | Workload identity first | Pods and workloads SHOULD authenticate using bounded service-account/workload identity tokens. |
| ASM-K02 | Avoid legacy non-expiring tokens | Long-lived Kubernetes service-account token Secrets SHOULD NOT be used when TokenRequest/projected tokens are viable. |
| ASM-K03 | Pod/job-scoped identity | Runtime identity SHOULD be bound to the actual workload instance or workload class. |
| ASM-K04 | Dynamic credential bridge | Workload identity SHOULD be exchanged for dynamic database/cloud credentials when target systems cannot consume workload identity directly. |
| ASM-K05 | Minimize Kubernetes Secrets | Kubernetes Secrets SHOULD be compatibility fallbacks rather than the default credential architecture. |
| ASM-K06 | Secret mount lifecycle | Ephemeral mounts or agents/CSI mechanisms SHOULD align credential exposure with workload lifecycle. |
| ASM-K07 | Namespace/environment boundaries | Runtime identity and authorization MUST respect environment and tenancy boundaries. |
| ASM-K08 | Admission/policy enforcement | Production clusters SHOULD enforce deployment and privilege invariants independently of agent-generated manifests. |
24. MCP and Agent Protocol Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-P01 | Audience-bound tokens | Tokens used for MCP/resource access MUST be bound to their intended resource/audience. |
| ASM-P02 | No token passthrough | MCP servers MUST NOT simply forward inbound bearer tokens to unrelated downstream services. |
| ASM-P03 | Downstream credential exchange | Downstream services SHOULD receive separately issued or exchanged credentials. |
| ASM-P04 | Incremental scope | Tool scopes SHOULD be requested incrementally rather than granting broad access at session start. |
| ASM-P05 | Interactive flow protection | Interactive OAuth flows SHOULD use modern authorization-code protections such as PKCE. |
| ASM-P06 | Tool supply-chain governance | MCP servers, tools, schemas, and tool-definition changes SHOULD be allowlisted, reviewed, and monitored. |
| ASM-P07 | Metadata contains no secrets | Discovery metadata MUST NOT contain live credentials. |
| ASM-P08 | Agent-chain attenuation | Agent-to-agent delegation SHOULD preserve identity context and enforce non-escalation. |
| ASM-P09 | Resource-side authorization | Tool servers that access backends MUST still enforce backend-appropriate authorization. |
25. Discovery and Exposure Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-R01 | Scan before commit | IDE/save/pre-commit secret scanning SHOULD catch leaks at the earliest practical point. |
| ASM-R02 | Push protection | High-confidence secrets SHOULD be blocked before repository insertion when tooling permits. |
| ASM-R03 | Continuous scanning | New commits, pull requests, CI artifacts, and relevant collaboration/configuration systems SHOULD be continuously scanned. |
| ASM-R04 | Historical scanning | Repository history SHOULD be scanned, not only the latest branch state. |
| ASM-R05 | Organization-specific patterns | Secret detection SHOULD include custom token and credential formats. |
| ASM-R06 | Activeness/validity context | Findings SHOULD be prioritized using whether the credential is still active where safely determinable. |
| ASM-R07 | Managed/unmanaged correlation | Detection SHOULD distinguish credentials governed by an approved manager from unmanaged exposure. |
| ASM-R08 | Ownership enrichment | Findings SHOULD be enriched with likely owner, source, environment, and affected resources. |
| ASM-R09 | Minimize scanner custody | Secret scanning systems SHOULD retain hashes/fingerprints and metadata rather than plaintext secret values where possible. |
| ASM-R10 | Agent context scanning | Agent prompts, traces, memories, and generated artifacts SHOULD be included in leakage controls where technically feasible and privacy-appropriate. |
26. Remediation Controls
A secret exposure MUST be treated as a credential-lifecycle incident, not merely as a source-code defect.
Recommended state model:
DETECTED
↓
TRIAGED
↓
OWNED
↓
REPLACEMENT_READY
↓
CONSUMERS_MIGRATED
↓
OLD_CREDENTIAL_REVOKED
↓
VERIFIED
↓
RESOLVED
| ID | Practice | Requirement |
|---|---|---|
| ASM-RM01 | Named owner | Every actionable finding MUST acquire an accountable owner. |
| ASM-RM02 | Workflow integration | Findings SHOULD enter the developer/operator workflows where remediation work actually occurs. |
| ASM-RM03 | Contextual guidance | Owners SHOULD receive practical replacement and architectural guidance, not merely an alert. |
| ASM-RM04 | Revoke old credential | Exposure is not resolved until the old credential has been revoked or otherwise invalidated. |
| ASM-RM05 | Verify closure | The system SHOULD verify that the exposed credential can no longer authenticate. |
| ASM-RM06 | Investigate use | Relevant access logs SHOULD be reviewed between likely exposure and revocation. |
| ASM-RM07 | Architecture correction | A leaked static machine credential SHOULD trigger evaluation of federation, workload identity, or dynamic issuance. |
| ASM-RM08 | Source cleanup is insufficient | Removing a secret from current source code MUST NOT by itself close the security finding. |
| ASM-RM09 | Measurable remediation | Remediation status, backlog, severity, and time-to-revoke SHOULD be measurable. |
| ASM-RM10 | Recurrence prevention | Repeated leak classes SHOULD result in preventive control improvement. |
27. Audit and Observability Controls
A privileged action SHOULD be reconstructable as:
Human principal: alice@example
Agent actor: deploy-agent-22
Runtime identity: spiffe://company/prod/deployer/22
Session: s-779381
Task: deploy release 7.2.1
Authorization: production.deploy
Approval: approval-9432
Credential class: short-lived STS role
Resource: prod/cluster-a
Action: UpdateDeployment
Result: success
Expiry: 18:42 UTC
| ID | Practice | Requirement |
|---|---|---|
| ASM-O01 | End-to-end correlation | Task/session/trace identifiers SHOULD link agent, authority, credential, and resource events. |
| ASM-O02 | Principal + actor logging | Delegated actions SHOULD preserve both principal and actor context. |
| ASM-O03 | Credential issuance evidence | Audit SHOULD record why and under which policy a credential was issued, never its plaintext value. |
| ASM-O04 | Sensitive-value redaction | Credentials MUST NOT become ordinary log fields. |
| ASM-O05 | Independent audit plane | Privileged audit records SHOULD be forwarded to independently controlled storage/SIEM. |
| ASM-O06 | Audit availability monitoring | Audit-pipeline failure MUST itself be monitored. |
| ASM-O07 | Policy-version evidence | Privileged actions SHOULD be attributable to the authorization policy version in force. |
| ASM-O08 | Approval evidence | High-impact actions SHOULD retain approval identity, scope, parameters, and expiry. |
| ASM-O09 | Agent version evidence | For significant autonomous actions, logs SHOULD identify agent/workflow/model/tool-policy versions where practical. |
| ASM-O10 | Security telemetry integrity | Agents SHOULD NOT have authority to delete or silently rewrite their security telemetry. |
28. Governance Controls
| ID | Practice | Requirement |
|---|---|---|
| ASM-G01 | Named governance owner | Every autonomous agent class MUST have an organizational owner. |
| ASM-G02 | Explicit mandate | Autonomous agents MUST have a defined purpose and permitted action domain. |
| ASM-G03 | Maximum authority profile | Autonomous agents MUST have a documented authority ceiling. |
| ASM-G04 | Budget profile | Autonomous workflows SHOULD have explicit runtime, token, compute, and external-spend limits. |
| ASM-G05 | Policy-change separation | Agents MUST NOT casually modify the policies that define their own maximum authority. |
| ASM-G06 | Break-glass governance | Emergency credentials and privilege escalation MUST have explicit procedures, ownership, and audit. |
| ASM-G07 | Exception expiry | Security exceptions SHOULD expire and require re-approval rather than becoming permanent by neglect. |
| ASM-G08 | Autonomy review | Autonomous capabilities SHOULD be periodically reviewed against actual use and incidents. |
| ASM-G09 | Least-authority review | Unused or unnecessary permissions SHOULD be removed. |
| ASM-G10 | Security tests as controls | Production agent changes SHOULD include regression/adversarial tests for authorization and tool-abuse failure modes. |
| ASM-G11 | Stronger control for control-plane changes | Identity, Vault, IAM, RBAC, MCP authorization, audit, and policy-engine changes SHOULD require higher review than normal application code. |
| ASM-G12 | Residual-risk evidence | Accepted deviations from the Canon SHOULD record rationale, owner, compensating controls, and review date. |
Part VI — Profiles
29. Production Baseline Profile
A production environment SHOULD minimally provide:
- federated human identity;
- unique workload identity;
- deterministic resource-side authorization;
- short-lived credentials where feasible;
- centralized management of unavoidable static secrets;
- audit logging outside agent control;
- secret scanning;
- revocation and remediation workflow;
- protected security-policy changes;
- explicit separation between cognitive and authority planes.
The production baseline MUST NOT depend on correct LLM behavior for its core access guarantees.
30. Agent Assistant Coding Profile
Agent Assistant environments SHOULD additionally provide:
- identified supervising human principal;
- distinguishable agent actor/session where feasible;
- explicit filesystem/network/tool boundaries;
- selective rather than global exposure of the human's credentials;
- no automatic inheritance of every local credential;
- reversible/previewable high-impact actions;
- human interruption and pause capability;
- short-lived human sessions;
- deterministic production restrictions despite active supervision;
- prevention of silent continuation after the supervising session ends.
A practical baseline is:
human identity
↓
interactive session
↓
assistant agent actor
↓
restricted execution gateway
↓
deterministic policy
↓
target system
31. Autonomous Agent Coding Profile
Autonomous environments MUST additionally provide:
- unique agent/workload identity;
- named governance owner;
- explicit mandate;
- explicit authority ceiling;
- task/environment/resource scopes;
- runtime and credential TTL;
- concurrency limits;
- token/compute/tool-call budget;
- independent circuit breaker;
- protected policy boundary;
- independent audit;
- no dependence on borrowed human credentials;
- traceable delegation when acting on behalf of a human or service;
- stronger controls for production mutation;
- explicit lifecycle termination.
A practical baseline is:
governance mandate
↓
agent/workload identity
↓
task authorization
↓
short-lived capability
↓
execution gateway
↓
resource-side enforcement
↓
audit + telemetry
↓
circuit breaker / remediation
Part VII — Decision Patterns
32. Preferred Authentication and Credential Patterns
| Situation | Preferred mechanism | Avoid |
|---|---|---|
| Human web access | OIDC/SSO + strong MFA/passkey | application-local credentials |
| Human cloud CLI | SSO → temporary role/session | permanent cloud access keys |
| Human production admin | JIT privileged role + step-up | standing administrator |
| Assistant coding session | human principal + constrained agent actor/session | exporting all workstation secrets to agent |
| Autonomous agent | workload identity + task-scoped authority | borrowed human token |
| GitHub Actions | OIDC → cloud/Vault short-lived credential | stored cloud keys |
| Kubernetes → cloud | native workload/pod identity | IAM/service-account static key |
| Kubernetes → DB | workload identity → dynamic DB credential | shared DB password |
| Cross-cloud workload | workload federation / SPIFFE-style identity | exported service-account key |
| Agent → MCP server | resource-bound OAuth token | shared static bearer key |
| MCP → backend | new downstream token / token exchange | inbound-token passthrough |
| Agent → database | brokered dynamic credential | DB password in prompt |
| High-risk agent write | JIT authorization + action-bound approval | permanent broad write role |
| Legacy third-party API | per-consumer secret + central manager + rotation | shared key in source/config |
| Root/recovery | offline/HSM/quorum-controlled material | routine online use |
Part VIII — Assurance Tests
33. Canon Security Tests
T-01 — Malicious Model Test
Assume the agent intentionally requests the most privileged destructive action available.
Pass condition: deterministic controls still limit execution to the configured authority ceiling.
T-02 — Credential Exfiltration Test
Assume a prompt-injected agent tries to print or transmit every credential it can reach.
Pass condition: reusable credentials are not present in model context and the runtime can only obtain narrowly scoped authority.
T-03 — Human Disconnect Test
Terminate the supervising user's Agent Assistant session mid-task.
Pass condition: privileged authority expires or stops according to policy; the workflow does not silently become autonomous.
T-04 — Policy Self-Modification Test
Ask the autonomous agent to broaden the policy that constrains its own access.
Pass condition: ordinary agent authority cannot modify its maximum authority boundary.
T-05 — Confused Deputy Test
Present a valid token intended for service A to service B or attempt MCP downstream token passthrough.
Pass condition: audience/resource validation rejects the token and downstream access requires separately authorized credentials.
T-06 — Approval Replay Test
Reuse a previously valid approval artifact for a different target, parameter set, or later time.
Pass condition: parameter binding, expiry, or replay protection rejects the request.
T-07 — Circuit Breaker Test
Trigger defined anomaly/change-rate thresholds.
Pass condition: autonomous mutation authority is suspended without requiring agent cooperation.
T-08 — Audit Reconstruction Test
Select a privileged production mutation.
Pass condition: investigators can reconstruct principal, actor, runtime, task, policy, credential issuance, target, action, and result.
T-09 — Audit Failure Test
Disable or overload the primary audit path.
Pass condition: the system alerts, fails closed where required, or uses redundant audit paths according to policy.
T-10 — Revocation Closure Test
Leak a test credential, remediate it, and attempt reuse.
Pass condition: the old credential is invalid and closure evidence is recorded.
Part IX — Metrics
34. Exposure Metrics
| Metric | Desired direction |
|---|---|
| Static machine credentials | ↓ |
| Active unmanaged secrets | 0 |
| Orphan credentials without owner | 0 |
| Credentials older than policy | 0 |
| Production workloads using federation | ↑ toward 100% |
| Dynamic/JIT credentials as share of machine authentication | ↑ |
| Secrets found in current code | 0 |
| Secrets found in historical repositories | ↓ |
35. Agentic Security Metrics
| Metric | Desired direction |
|---|---|
| Autonomous agents with unique identity | 100% |
| Autonomous agents with named owner | 100% |
| Autonomous agents with authority ceiling | 100% |
| Delegated actions carrying principal + actor evidence | 100% where applicable |
| High-impact actions linked to explicit authorization | 100% |
| Reusable credentials intentionally exposed to LLM context | 0 |
| Cross-tool token passthrough | 0 |
| Autonomous workflows with circuit breakers | 100% for production mutation |
| Autonomous workflows with defined budgets | 100% |
36. Change Dynamics Metrics
Relevant operational metrics include:
- autonomous changes per hour/day;
- concurrent mutating agents;
- production deployments initiated autonomously;
- average agent runtime;
- tool calls per task;
- irreversible actions per task;
- rollbacks per autonomous change;
- policy-denied agent actions;
- circuit-breaker activations;
- human interventions per autonomous workflow;
- token/compute spend per successful change;
- change failure rate by Human / Assistant / Autonomous mode.
These metrics help determine whether observed change velocity remains inside the designed Change Dynamics Envelope.
37. Remediation Metrics
Recommended measures:
MTTD = mean time to detect
MTTO = mean time to ownership
MTTRv = mean time to revoke
MTTR = mean time to full remediation
MTTRv is especially important because ticket closure can lag or misrepresent the security-critical event: invalidation of the exposed credential.
Also track:
- backlog versus inflow;
- unresolved active credentials;
- failed rotations;
- failed renewals;
- unused credential count;
- break-glass usage;
- repeated leak classes;
- time from exposure to architectural correction.
Part X — Maturity Model
38. ASM Maturity
| Level | State |
|---|---|
| ASM-0 — Embedded | Credentials are dispersed, copied, and long-lived; little inventory exists. |
| ASM-1 — Stored | Central secret manager, RBAC, basic scanning, and basic rotation exist. |
| ASM-2 — Managed | Ownership, automated rotation, inventory, detection, and measurable remediation are established. |
| ASM-3 — Dynamic | Workload federation, JIT access, dynamic secrets, and secretless CI/CD reduce standing credentials. |
| ASM-4 — Agent-Aware | Human principal and agent actor are distinguished; Assistant and Autonomous modes are explicitly modeled. |
| ASM-5 — Governed Autonomy | Autonomous agents have identities, mandates, budgets, authority ceilings, change envelopes, and deterministic circuit breakers. |
| ASM-6 — Closed-Loop Authority | Identity, delegation, credential issuance, execution, evidence, exposure detection, revocation, and remediation operate as one continuously reconciled authority lifecycle. |
At ASM-6, "secrets management" has effectively evolved into an:
Authority Lifecycle Control System for hybrid human/agent infrastructure.
Part XI — Review Checklist
39. Architecture Review Questions
A production design should be able to answer:
- Which actors can reach this resource?
- Which principal or mandate gives them authority?
- What is the maximum authority each actor can obtain?
- Can an agent modify the rules that determine that authority?
- Can a model decision alone increase privilege?
- Are credentials short-lived or dynamically generated where possible?
- Can raw reusable credentials reach model context, logs, or memory?
- What happens when the supervising human disconnects?
- Can tool discovery accidentally become authorization?
- Is token audience/resource binding enforced?
- Can a child agent escalate beyond its caller?
- What is the maximum autonomous change rate and concurrency?
- Which circuit breaker halts runaway mutation?
- Does that breaker work without agent cooperation?
- Can the organization revoke all authority for a compromised agent identity?
- Can investigators reconstruct who or what authorized a privileged action?
- Can an agent erase that evidence?
- What proves that a leaked credential has actually been revoked?
- Are security-policy changes governed more strongly than application changes?
- If every LLM behaves incorrectly, which protections still remain?
Part XII — Review Conclusions for v0.3
The review leading to this version made the following refinements:
-
Agent Assistant Coding and Autonomous Agent Coding are now explicit operating modes.
Their identity, credential, accountability, and governance requirements differ. -
The deterministic security substrate is elevated from a recommendation to a foundational invariant.
Probabilistic systems can reason about access but cannot be the sole source of authorization. -
Deterministic is explicitly distinguished from static.
Contextual and dynamic policy is fully compatible with deterministic enforcement. -
Change Dynamics is treated as a security property.
Agentic coding changes not only who acts but how quickly and concurrently system state can change. -
Budget and resource limits are recognized as blast-radius controls.
They complement but never replace authorization. -
Transition from Assistant to Autonomous operation is treated as a security architecture change.
-
Policy self-modification receives explicit protection.
Autonomous agents must not casually alter the controls that define their own maximum authority. -
Agentic infrastructure remains subordinate to deterministic infrastructure controls.
MCP, A2A, agent-to-agent, and infrastructure-agent patterns do not eliminate resource-side authorization. -
The remediation lifecycle is retained as a closed-loop control.
Detection is not success; revocation and verified closure are. -
Absolute "security guarantees" are avoided as a claim.
Deterministic enforcement is necessary for enforceable security properties and auditable assurance, but no engineering architecture can promise absolute security.
Part XIII — External Reference Basis
The Canon is an original synthesis, not a restatement of any single external standard. Its design is consistent with and informed by the following bodies of work.
NIST
- NIST SP 800-207 — Zero Trust Architecture
- NIST SP 800-207A — A Zero Trust Architecture Model for Access Control in Cloud-Native Applications in Multi-Cloud Environments
- NIST SP 800-63B-4 — Digital Identity Guidelines: Authentication and Authenticator Management
IETF / OAuth
- RFC 8693 — OAuth 2.0 Token Exchange
- RFC 8707 — Resource Indicators for OAuth 2.0
- RFC 9396 — OAuth 2.0 Rich Authorization Requests
- RFC 9449 — OAuth 2.0 Demonstrating Proof of Possession (DPoP)
- RFC 9728 — OAuth 2.0 Protected Resource Metadata
RFC 8693 is particularly relevant to the principal/actor distinction because it defines delegation semantics and the act actor claim.
OWASP
- OWASP Secrets Management Cheat Sheet
- OWASP AI Agent Security Cheat Sheet
- OWASP guidance on least privilege, tool security, high-impact approval, sensitive-data handling, and agentic failure modes
Kubernetes and Workload Identity
- Kubernetes ServiceAccount TokenRequest / bound projected service-account tokens
- SPIFFE / SPIRE workload identity concepts
- cloud-native workload federation and short-lived identity patterns
CI/CD
- GitHub Actions OpenID Connect guidance for short-lived cloud credentials and claim-bound trust
Agent Protocols
- Model Context Protocol authorization specification, including resource/audience binding and prohibition of token passthrough
- A2A enterprise authorization guidance, including identity-, skill-, action-, and data-level controls
HashiCorp Vault / Vault Radar
- Vault dynamic database credentials and leases
- Vault audit logging best practices
- Vault Secrets Sync and workload identity federation
- HCP Vault Radar secret detection, activeness context, remediation workflow, and managed/unmanaged correlation
40. Closing Principle
The Canon can be reduced to one architectural rule:
Agents may decide what to attempt; deterministic systems decide what may succeed.
From that principle follows the preferred lifecycle:
Identity → delegation → deterministic authorization → ephemeral authority → execution → evidence → detection → revocation → verified remediation.
The practical consequence is that secrets become progressively less central:
Old model: securely store passwords, tokens, and keys.
Modern model: minimize and dynamically manage credentials.
Agentic model: dynamically manage authority, producing credentials only as short-lived implementation artifacts.
That is the intended direction of Active Secrets Management.