advanced24 min studyLesson 439 in Engineering

Turn verified claims into a consistent admission decision

Apply explicit artifact, identity, provenance, and failure rules at the execution boundary while preserving the approved identity through retrieval.

On this page

What you’ll understand

  • Construct an admission rule from bound and verified evidence.
  • Keep policy and trust versions in cached decision scope.
  • Explain failure handling and the approved-to-executed identity gap.

A deployment system displays a green signature badge, yet admits an image built from the wrong repository. The badge verified one fact without enforcing the intended release policy. Admission turns several evidence checks into a decision about a concrete artifact in a specific environment. It must bind those checks to the bytes that will execute and define what happens when evidence is missing or verification infrastructure fails. A policy exists operationally only when the execution path actually enforces its conditions.

Write the required conditions as an explicit conjunction

Begin with the deployment's candidate digest and platform, then specify accepted signer identities and issuers, approved builders, required predicate types, and relevant source and build parameters. An image signed by an otherwise valid identity should not pass if that identity lacks authority for this repository or environment. Likewise, provenance naming the expected builder does not satisfy a source-revision constraint automatically. Give policy inputs precise meanings and versions so reviewers can test concrete examples. Avoid a generic score that lets many irrelevant successful checks compensate for one required failed condition.

Evaluate evidence only after verifying its signature, subject binding, and understood semantics. Join an SBOM or test result to the intended artifact rather than any file sharing the release name. Where a policy uses advisory or inventory information, state the scope and uncertainty it accepts instead of inventing an absolute harmlessness claim. Keep rejected and unavailable outcomes distinguishable in logs: an unauthorized builder and a temporarily unreachable evidence store require different investigation, even if both currently prevent admission. The requirements reflect an organization's chosen deployment contract, not a universal claim that every service must adopt identical rules.

allow⁡=D∧S∧P∧C\operatorname{allow}=D\land S\land P\land C
D denotes candidate digest/platform binding, S accepted signature and identity policy, P required provenance semantics and builder policy, and C the remaining configured constraints. All are Boolean conditions for this illustrative contract, not independent probabilities.↔ Scroll wide equations horizontally.

Preserve identity and invalidate stale decisions

After approval, ensure the runtime requests and verifies the approved content digest instead of resolving a mutable tag again. Otherwise the tag can move between checking and pulling, creating a time-of-check/time-of-use gap. An index-based approval must specify how relevant platform children are selected and checked. Observe the actual deployed identities so an incident can find running instances, not just deployment manifests. Later model downloads, dynamic plugins, or scripts fetched at startup lie outside an image-only decision unless the execution contract explicitly binds and enforces those additional identities.

Cached decisions require more than an artifact digest as the key. A formerly approved builder may be distrusted, a policy version may tighten a parameter rule, or verification material may expire. Include the relevant policy, trust, evidence, and expiry context and arrange invalidation or reevaluation when it changes. A cache hit is justified only for the same decision question within its allowed lifetime. Large cache capacity reduces misses but cannot correct an incomplete key. Persist enough decision context to explain which rules and trust material authorized an old deployment.

K=(d,π,τ,e),t<texpiryK=(d,\pi,\tau,e),\qquad t<t_{\mathrm{expiry}}
This illustrative decision-cache key includes artifact digest d, policy version π, trust version τ, and relevant evidence identity e. Time and expiry use a consistent domain; actual implementations may require additional context, platform, and explicit invalidation.↔ Scroll wide equations horizontally.

Define outages and exceptions before they occur

Missing attestations, malformed evidence, unsupported required predicates, unavailable trust updates, and explicit denials should have documented outcomes. A system configured to require verification cannot silently reinterpret an evidence-store outage as authorization. If an emergency exception is part of the authorized policy, scope its artifact and environment, limit its lifetime, record the approver and reason, and make its use observable. Test both rejection and infrastructure-failure paths before rollout. Evaluate availability effects and operational recovery alongside the enforcement goal, because an untested gate can disrupt releases even while its successful path looks correct.

The cache lab demonstrates only reuse and eviction under a fixed request stream. For each separate view, Reset, set both capacity C and stride s=4, predict the initial counts, then inspect. C=4 yields twelve hits and four misses; C=2 yields sixteen misses. The instrument has no policy or trust versions, so it cannot detect a stale authorization key. Use that limitation to identify the implementation requirement: actual decision caching must govern validity as well as retention. A high hit rate is an efficiency observation, never proof that the returned allow decision remains applicable.

Required checks do not compensate for each other

A fictional release gate evaluates 12 requests. Nine satisfy every required condition. Two fail the approved-source rule despite valid signatures. One lacks required provenance because its evidence store is unavailable. Assume no exception is authorized.

  1. The accepted set contains the nine requests satisfying the full conjunction. Signature success on the other requests cannot replace source or provenance requirements.

  2. Two are explicit policy failures and one has an unavailable required verification result. All three remain unadmitted under the stated policy, but their diagnostic categories differ.

  3. The admission fraction for this nonempty batch is 9/12=75%. That operational fraction does not measure a probability of artifact safety or justify silently allowing the remaining three.

The result

Nine requests are admitted and three are not. Preserve the failure reasons so source corrections and evidence-store recovery follow the appropriate paths.

Explore the model

Interactive lab

Interactive lab · cache

A fast decision still needs the right validity context

For each view: Reset, set both C and s=4, predict, then inspect the initial sixteen requests. C=4 yields 12 hits and 4 misses; C=2 yields 0 hits and 16 misses. This exact LRU cache has no artifact, trust, policy, or expiry semantics and cannot validate an admission decision.

A fast decision still needs the right validity contextA fully associative LRU cache starts empty and requests address (i·s) mod 16. Hits move an address to the newest position; misses evict the oldest when full. Playback starts with 16 requests and adds two per second, capped at 4096 explicitly simulated requests. This toy stream is not a processor-cache benchmark. Current readings: Hits / requests: 0 / 16; Hit rate: 0%; Address-stream period: 16 addresses. All parameters are adjustable with the labeled controls below.Fully associative LRU cache after 16 deterministic requests: 0 hits and 16 misses.Most recent 16 requestsaddress = i × 3 mod 160M3M6M9M12M15M2M5M8M11M14M1M4M7M10M13MCurrent cache order · oldest → newest471013Latest address 13 · miss: inserted as newestToy address stream · period 16 · starts empty
Cached addressMiss / evictionMost recent request
Hits / requests
0 / 16
Hit rate
0%
Address-stream period
16 addresses
t = 0 s

A fully associative LRU cache starts empty and requests address (i·s) mod 16. Hits move an address to the newest position; misses evict the oldest when full. Playback starts with 16 requests and adds two per second, capped at 4096 explicitly simulated requests. This toy stream is not a processor-cache benchmark. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.

Look forAn authorization cache needs correct context and invalidation in addition to capacity. Reusing an obsolete allow result is not made correct by a higher hit rate.

Check your understanding

A cached allow result was created before the approved builder was distrusted. Which behavior best fits the stated enforcement contract?

Try it yourself

A fictional gate sees 20 requests:16 meet all conditions, three have invalid subject bindings, and one lacks mandatory evidence. No exception is authorized. Compute admitted count and fraction; explain why valid signatures on all 20 do not change it.

Take a moment to make a prediction or work it out on paper. Open a hint when you need one.

Give me a hint

The policy is a conjunction; count only requests meeting every required condition.

Compare with the solution

Sixteen requests are admitted, a fraction 16/20=80%. The three binding failures and one missing-evidence outcome fail required conditions. A valid signature on unrelated or insufficient claims cannot compensate for those failures.

Take it with you

  • Admission enforces a concrete conjunction over bound and verified evidence.
  • Carry the approved digest into execution and version cached decision context.
  • Failure and exception paths need explicit, observable rules.

Read further

Original sources and deeper explanations to follow at your own pace.

Optional progress, saved in this browser when available. Revisit any lesson at any time.

Lesson not marked complete.