Identity, Authorization, and Audit¶
Atlas request security is an evidence chain. Authentication establishes a principal context. Authorization evaluates an action on a resource. Route classification selects that decision. Audit evidence preserves enough of the evaluation to reconstruct who attempted what against which runtime and dataset without retaining credential material.
Decision Chain¶
sequenceDiagram
participant Client
participant Edge as Edge or trusted network
participant Authn as Authentication
participant Router as Route classifier
participant Authz as Authorization
participant Handler
participant Audit
Client->>Edge: Request and credential context
Edge->>Authn: Forward allowed identity material
Authn->>Router: Principal or authentication failure
Router->>Authz: Route class, action, and resource
Authz->>Audit: Principal, policy, decision, and correlation
alt allowed
Authz->>Handler: Authorized request context
Handler->>Audit: Domain outcome and dataset identity
else denied
Authz-->>Client: Stable denial
end
ATLAS_AUTH_MODE selects the runtime mode. The governed authentication model
supports API key, token, OIDC, and mTLS methods and declares an internal default
stance. Exposure beyond a private trusted network requires an ingress
authentication proxy, service mesh, or equivalent institutional boundary in
addition to the selected runtime mode.
Route, Action, and Resource¶
| Route class | Runtime decision | Required assurance |
|---|---|---|
| service routes | health, readiness, overload, metrics, version, and OpenAPI are authentication-exempt at the application route boundary | network reachability is bounded and the exemption cannot reach dataset or administrative work |
| catalog and dataset routes | evaluate catalog.read or dataset.read against the resolved service or dataset resource |
permitted and forbidden principals are tested against explicit dataset identities |
| recognized administrative routes | evaluate ops.admin on the service namespace |
operator authority, isolated exposure, use audit, and route registration are coherent |
| enabled but unclassified administrative routes | currently fall through to ordinary dataset-read treatment | keep disabled or govern isolated exception evidence for the complete enabled set |
Authentication exemption is not public authorization. Network policy, Service, Ingress, and platform identity still decide who can reach an exempt route. Likewise, authentication success is not authorization: a valid principal can still lack the required action on the selected resource.
Evidence Without Secrets¶
| Evidence field | Retain | Exclude |
|---|---|---|
| authentication | mode, issuer or key version, principal ID or class, success or failure reason | API key, token, signature, private key, or raw credential header |
| authorization | normalized route, action, resource kind and ID, policy version, allow or deny | vague role-only claims without evaluated action and resource |
| request | request ID, trace ID, timestamp, client class where policy permits | unrestricted headers, query payloads, or personal data |
| runtime | software release, governance identity, effective-config fingerprint, pod or instance ID | unredacted effective configuration or secret values |
| dataset | release, species, assembly, manifest and artifact identity where applicable | internal notes or response payloads unrelated to the decision |
| outcome | HTTP status, stable error code, domain-work start state, latency class | status alone with no rejecting boundary |
The data-classification policy treats authorization material, API keys, HMAC signatures, and bearer tokens as secrets. Audit success is not permission to retain those values. Use non-secret versions or key IDs to demonstrate rotation and revocation.
Positive and Negative Assurance¶
For each protected route class required by the exposure model, exercise:
- no credential;
- malformed or invalid credential;
- valid identity without the required action;
- valid authorized identity;
- authorized identity applied to a different resource; and
- credential rotation or revocation where the deployment depends on it.
flowchart TD
Case["named route + principal + resource case"] --> Response["status and stable error contract"]
Case --> Audit["audit decision and correlation"]
Case --> Domain["prove whether domain work began"]
Response --> Agree{"response, audit, and execution agree?"}
Audit --> Agree
Domain --> Agree
Agree -->|yes| Evidence["bounded authorization evidence"]
Agree -->|no| Incident["policy, routing, or audit finding"]
A denial is incomplete when the response is correct but no attributable audit event exists. An audit denial is incorrect when domain work already began. A successful request is unsafe when its resource identity differs from the authorized dataset.
Administrative Route Boundary¶
Enabling administrative endpoints registers diagnostics, cluster, replica, recovery, failure-injection, chaos, and echo routes as one group. The runtime authorization classifier currently covers 18 of the 26 registered routes. The four replica routes, two recovery routes, failure injection, and chaos execution are omitted from that classifier and receive ordinary dataset-read treatment.
Treat route registration and classification as two inventories that must agree:
| Inventory | Question |
|---|---|
| registered routes | Which paths exist when the feature is enabled? |
| route classes | Which action, resource, exemption, and principal context applies to each path? |
| exposure | Which clients and networks can reach each registered path? |
| live tests | Do permitted and forbidden cases produce the expected response and audit decision? |
Until parity exists, keep administrative endpoints disabled for security-qualified profiles. An exception must isolate reachability and prove all 26 routes, not only the route needed by an operator.
Audit Continuity and Failure¶
Audit evidence has its own availability and integrity requirements. Detect and classify sink failure, dropped or unclassified fields, rotation gaps, retention loss, delayed export, and post-capture tampering. Application availability does not turn a missing security record into an accepted authorization claim.
When audit continuity fails:
- preserve local logs, metrics, traces, runtime identity, and the first known gap without copying secrets;
- hold promotion and security-sensitive administrative changes;
- determine whether request enforcement continued and which decisions are unverifiable;
- restore the sink and verify a known permitted and denied request; and
- bind the gap, affected interval, recovery evidence, and residual risk to the incident record.
Continue with Security Operations for deployment enforcement and Admin Endpoint Exceptions for governed exceptional exposure.