Audit Trail and Segregation of Duties for Utility AI Models

Audit trail and segregation of duties for utility AI models: separate build, approve and deploy, and keep one tamper-evident record regulators can review.

Audit Trail and Segregation of Duties for Utility AI Models
Written by TechnoLynx Published on 01 Nov 2026

For predictive-maintenance and forecasting models at a utility, audit trail and segregation of duties rest on two linked design decisions. First, split who builds a model, who approves it and who deploys it, so that no single person or service account controls all three. Second, record each of those acts in one chronological, tamper-evident ledger that ties the technical facts (model version, data, deployment) to the governance facts (who approved it, under what conditions), so anyone can reconstruct what changed, when, and who authorised it. An audit log is only worth having if it cannot be altered by the same access that alters the data it audits.

Who builds, who approves, who deploys: segregation of duties for model operations

Segregation of duties divides functions among different individuals or roles, reducing the risk that authorised privileges are abused without collusion. NIST SP 800-53 Rev. 5 control AC-5 frames separation of duties as dividing mission and support functions among different individuals or roles, and it adds a requirement that is easy to overlook: the people who administer access control should not also administer audit functions. The FINOS AI governance framework applies the same principle to AI data and capabilities, separating critical tasks so no individual or system holds enough control to cause fraud, error or misuse.

In a model pipeline the split is concrete. In the AWS approval workflow for the SageMaker Model Registry, a data scientist registers a model and an approver must review it before it is used in an inference pipeline. The model then moves from development to test, UAT and production with an explicit human approval at each step, and the approver has to be authenticated and belong to an approver group managed in Active Directory. MLflow’s registry guidance says the same thing in policy terms: define who can register, who can promote and who can approve production transitions.

Role Does Must not be able to
Model developer Trains, registers versions, documents data and assumptions Approve own model, or push it to production
Validator / approver Reviews evidence, records approval, rejection or conditions Act as the model’s developer
Deployer (CI/CD service account) Promotes only registry-approved versions to serving Deploy a version without a recorded approval
Access administrator Assigns roles and permissions Administer or alter the audit log
Internal audit / oversight Reads the trail, tests that controls ran Operate the controls it is assessing

The first three rows follow the registry and approval sources; the last two follow AC-5 and the three-lines-of-defence model, in which internal audit is independent of the other lines and tests the validation they perform.

Banking guidance addresses teams too small to separate fully, even though it was written for another sector. The OCC’s Comptroller’s Handbook says that in small, noncomplex banks where development and validation sit in the same line and report to one individual, the bank should have additional controls, for example escalating conflicting views to a management committee. Ofgem’s 2026 guidance on ethical AI in the energy sector expects governance roles, risk ownership and clear lines of accountability across the AI life cycle, without prescribing a structure. We cover how separated roles turn into a document an assessor can sign against in assembling a defensible evidence pack through independent role separation.

A 2026 paper on audit trails for large language models defines the trail as a chronological, tamper-evident record that links technical decisions (artefacts, data versions, configurations, evaluations) with organisational accountability (owners, approvals, waivers and scope constraints). The same paper builds on MLOps telemetry but adds explicit decision logging, append-only storage and views for auditors, so technical changes stay linked to the approvals under which they happened. An access log in the FINOS sense records identity, data accessed, type of access and timestamp for each access attempt.

For a utility’s forecasting or RUL model, the record that links a deployed version to its approver needs these elements:

  • A stable model identifier and an immutable version, where every change produces a new version rather than an overwrite.
  • The training data snapshot as a dataset ID or content hash, the Git commit SHA of the training code and the container image digest of the serving environment.
  • An approval record per approval event: approver ID, role, decision (approved, rejected, conditional), justification and linked evidence such as a test run or evaluation artefact.
  • The release decision itself: who authorised deployment, for what scope and with what conditions or waivers.
  • Who can access and modify the deployed system, including rollback authority.
  • A risk tier on every entry.
  • A timestamp, event type, scoped identifiers and integrity metadata (previous and current hash, optional signature).

The 2026 audit-trail paper proposes a compact core schema of event ID, timestamp, system, actor, event type, model ID, dataset ID, deployment ID, details, hash fields and an optional signature, extended through sector-specific profiles. That core-plus-profile idea suits a utility well, because a high-risk profile can require an approval event before any deployment event, or require drift checks at a stated cadence, without redefining logging for each model.

Linking each forecast or maintenance recommendation back to that chain relies on stable identifiers such as model_id and deployment_id that key every event. The per-output side, including root-cause tracing, is covered in audit trails and lineage for compliance, root cause and SLA evidence.

Can an existing model registry with RBAC enforce segregation of duties?

A model registry can enforce segregation of duties only if it gates deployment, and even then the audit evidence should sit where registry administrators cannot rewrite it. MLflow’s own guidance is blunt about the first half: a registry only governs what it actually gates, and if deployment infrastructure can route around it, the registry is a reporting tool rather than a control, and its audit trail describes a process that was optional. The MLflow checklist states that a registry storing approval records after the fact provides an audit trail but does not prevent unauthorised promotions, so it must block the promotion API call until all required approvals are present. The same guidance says the deployment pipeline should be technically incapable of serving anything other than the current registry-tagged production version, and that an urgent hotfix still goes through the registry, even if registered minutes afterwards.

RBAC supplies the role split. In MLflow, a role is a named bundle of grants on resources, users are assigned roles, and a matching DENY overrides any other permission. A Workspace Manager holds full authority within a workspace, including managing roles, users and grants. That last point matters, because AC-5 asks that whoever administers access control does not also administer audit functions.

The practical answer is both. Use the registry, with environment-scoped permissions and CI/CD service accounts as the only writers to production, as the enforcement point. Then emit every registration, approval, promotion and rollback into an append-only audit store whose write permissions the registry’s administrators do not hold. One append-only log specification puts the principle in a sentence: an audit log is only worth having if it cannot be altered by the same access that alters the data it audits. For regulated retention, the MLflow checklist advises verifying that the registry backend, not just the application layer, enforces the append-only guarantee. How registry versioning itself should be made immutable is covered in immutable model and rule versioning for audit-ready scoring.

What makes a model audit log tamper-evident rather than just logged?

A log is tamper-evident when any later change to it can be detected; a log that is merely written somewhere can be edited without trace by anyone with write access. Three mechanisms do different jobs, and hash chaining alone is tamper-evident, not tamper-proof.

Append-only enforcement stops the application from rewriting history. In the specification cited above, the application’s database role is granted INSERT and SELECT only, UPDATE and DELETE are revoked, and a trigger rejects them, so no application code path can alter past entries.

Hash chaining makes alteration detectable. Each event stores the hash of the previous event plus its own hash computed over its content, so any modification, insertion, deletion or reordering invalidates the hashes of every later event. The AuditWeave paper (2026) confirmed that its implementation flagged every injected edit, reorder, deletion and insertion across 2,000 trials, as the construction requires, and that full-chain verification of 100,000 events completed in 1.21 seconds.

The limit matters more than the mechanism, though. AuditWeave’s authors state that a hash chain provides tamper-evidence, not tamper-resistance: an actor who controls the storage could recompute the whole chain after a modification, and defending against that requires anchoring the chain head to an external append-only reference. The append-only specification makes this concrete by writing the head hash on a schedule (hourly by default) to a store the application cannot rewrite, such as S3 Object Lock in compliance mode, a managed audit trail or a timestamping service, so a rewritten chain no longer matches the published anchor. Crosby and Wallach (USENIX Security 2009) add a point that is easy to lose: if a logger knows a commitment will never be audited, it is free to tamper with it, so every commitment needs a non-zero chance of being checked.

WORM storage prevents modification for a retention interval. Microsoft documents immutable Azure Blob Storage as holding data in a write-once, read-many state in which it cannot be modified or deleted for a user-specified interval. Amazon S3 Object Lock offers two modes, and the difference is decisive for an audit store: in governance mode, users holding the s3:BypassGovernanceRetention permission can still delete protected objects, while in compliance mode an object version cannot be overwritten or deleted until its retention period ends. A governance-mode bucket administered by the same team that runs the models does not give you separation of duties.

Hash chaining also has a boundary at capture: the AuditWeave paper notes that the trail attests to what was recorded, not to whether the recording faithfully reflected the world. Deeper tamper-evidence design for specific regulated record types sits on its own page; for a utility’s model fleet, the combination of database-enforced append-only, a hash chain, external anchoring and a compliance-mode WORM target combines detection (hash chain, external anchoring) with prevention (database-enforced append-only, compliance-mode WORM).

How do we show the regulator one monitoring record across all our RUL and forecasting models?

A single, consistent monitoring record comes from applying one standard schema to every production model on one platform, not from assembling per-model reports before each audit. In this design, every RUL, forecasting and anomaly model writes the same fields (owner, risk tier, last-reviewed date, alert history, drift and performance status, current approved version) into the same record, so the regulator’s view becomes a query against it.

TechnoLynx can design and build that fleet layer for a utility: the shared monitoring data model, an audit-trail schema that spans RUL and forecasting models across business units, and the ingestion that brings every production model’s logs into one record a commission’s auditors can review.

Banking supervision offers a precedent for a fleet-wide record. The OCC handbook expects a specific party to maintain a firm-wide inventory of all models, even where each line of business keeps its own, so model risk can be evaluated in aggregate. It lists inventory content including responsible individuals, approval dates, completed and planned validation dates and ongoing monitoring frequency. NIST’s AI RMF asks for mechanisms to inventory AI systems, resourced according to organisational risk priorities.

Can one dashboard show last-reviewed date and alert history for every model?

Yes, provided the dashboard reads the live record rather than an imported snapshot. A 2026 analysis of continuous control monitoring argues that the dashboard should read the same record the operational team works on, and that a dashboard showing only current state cannot reconstruct how the review cadence actually ran across the observation window. An activity log that captures every state change with a timestamp and named user lets an auditor replay when a review ran, who closed which finding and when ownership transferred. That analysis offers a test worth adopting: if a regulator asked today for the cadence operation over the prior six months, would the answer come from one query against the live record or from a multi-team reconciliation sprint?

Two caveats decide whether the dashboard is trustworthy. A fleet record is only as complete as each model’s instrumentation, so one model with gaps in its logging breaks the fleet-wide claim. The dashboard is also not the deliverable; fleet monitoring is an ongoing reliability discipline.

What monitoring cadence will an energy regulator accept as sufficient oversight?

The defensible design is risk-tiered periodic review plus event-triggered re-review, with the interval confirmed with your own regulator. Australia’s Utility Regulators’ Forum (2006) recommended that regulators categorise obligations by risk, that the category determine reporting frequency, and that audit guidelines set out audit frequency and scope. It also placed priority on auditing high-risk obligations, with low and medium-risk obligations audited less intensively and less often. Ofgem’s 2026 guidance asks for arrangements reviewed regularly and proportionately, noting that metrics may help monitor system performance. NIST’s AI RMF (Govern 1.5) leaves the frequency of periodic review to the organisation, but expects it to be planned and the roles clearly defined.

Banking guidance gives an explicit floor: the OCC handbook calls for a periodic review of each model at least annually, more often if warranted. MLflow’s guidance ties periodic production reviews to each model’s risk tier rather than to initial approval only. Event triggers cover what the calendar misses: the continuous-monitoring analysis names change events that invalidate the registered state regardless of the calendar, including role-holder changes and material configuration changes, and argues the operating cadence must run faster than the external assessment cycle. For a utility, drift alerts and model incidents belong on that trigger list. Set the cadence for each tier at whichever is stricter, the regulator’s stated audit interval or your internal risk policy, and record each review as an event in the trail so the cadence itself is auditable.

Why a fleet-wide monitoring dashboard needs a different audit-trail design from a per-decision log

One audit-trail design does not fit both jobs, because the two records answer different questions at very different volumes. The fleet record answers “is every model governed, reviewed and within its approved scope?”; the per-decision log answers “why did this forecast or work order come out the way it did?” The 2026 audit-trail paper notes that continuous inference and monitoring can generate millions of records, which makes summarising, filtering and surfacing violations a requirement rather than a convenience.

The Decision Event Schema (2026) handles per-decision volume with a tiered evidence strategy (lightweight, sampled and full), so evidence completeness matches decision risk and throughput. Its authors recommend that high-risk systems route all decisions to at least the middle tier, with full capture for decisions that trigger threshold alerts or human overrides, and they treat that routing as a deployment-time configuration choice. Each decision event also carries a human-override record: whether an override happened, who made it, their role and authorisation level, the original and overridden output, and the rationale.

  Fleet monitoring record Per-decision log
Question it answers Is each model approved, reviewed on schedule and healthy? What inputs, version and logic produced this output?
Unit of record Lifecycle and review event per model One event per forecast or recommendation
Evidence depth Full lifecycle and governance record Tiered by risk; full on alerts and overrides
Integrity Hash chain, external anchor, WORM Hash chain at minimum; signatures where identity-bound non-repudiation is needed

The integrity row for per-decision logs follows the Decision Event Schema’s own analysis, which finds that a hash chain gives ordering integrity and tamper evidence, while identity-bound non-repudiation needs per-event signatures or transport-layer mechanisms. The two records join through shared identifiers: every decision event cites the model and deployment IDs that the fleet record governs.

What regulators ask for, and what they leave to the engineering

Regulations mandate traceable logging but provide no data model for structuring it. Article 12 of the EU AI Act requires high-risk AI systems to have logging that records events relevant to identifying risk situations, post-market monitoring and monitoring of operation. Articles 19 and 26(6) require those logs to be kept for a period appropriate to the system’s purpose, of at least six months. NIST SP 800-53 prescribes audit record content (AU-3) and non-repudiation (AU-10). The Decision Event Schema authors point out that none of these frameworks specifies a concrete data model that turns the legal mandate into an engineering specification. Ofgem’s guidance expects energy stakeholders to keep records explaining the basis of AI decisions in proportionate detail, and an appropriate audit trail showing AI use has been checked against competition law.

A well-built trail does not by itself establish compliance; as the AuditWeave authors put it, whether a trail satisfies a specific requirement is a determination for auditors and counsel, and the trail is the verifiable substrate on which that determination is made. TechnoLynx treats that substrate as an AI governance and trust engineering output in its own right.

Ownership drift is the risk that outlasts the build

A fleet record has to stay true as models change owners and role-holders leave. The continuous-monitoring analysis recommends reconciling ownership chains continuously so role-holder changes do not orphan the evidence chain. The Decision Event Schema authors go further and concede that an instrument designed to detect governance decay is itself subject to it, so schema compliance alone is insufficient without organisational mechanisms that correct documentary drift. For a utility, the question to settle before any tooling choice is who, by name and role, owns the fleet record’s completeness, and what event fires when that person changes.

FAQ

Is an audit trail mandatory for AI models?

For high-risk AI systems under the EU AI Act, automatic event logging is required by Article 12. In Great Britain, Ofgem’s 2026 guidance expects energy stakeholders to keep an appropriate audit trail confirming they have checked their AI use for compliance with competition law, and proportionate records of the basis for AI decisions.

Back See Blogs
arrow icon