For Auditors and Compliance Teams

This page is the primary reference for compliance professionals, auditors, GRC teams, and risk officers evaluating or auditing PRECINCT deployments. It provides framework mappings, control crosswalks, evidence generation procedures, verification steps, and production readiness criteria.

Why Auditors Should Care

Agentic AI introduces a fundamentally new risk profile that traditional security controls were never designed to address. Unlike conventional service accounts or API integrations, AI agents are autonomous, adaptive, and goal-oriented. They decide at runtime which tools to invoke, what data to access, and how to sequence multi-step operations, all without human oversight of each individual action.

The New Threat Surface

  • Prompt injection: Adversarial inputs that hijack agent reasoning to bypass intended controls and execute unauthorized actions.
  • Credential exfiltration: Agents persuaded (via crafted prompts or malicious tool outputs) to leak secrets, API keys, or database credentials in their responses.
  • Tool misuse: Agents invoking tools they should not have access to, or invoking permitted tools with parameters outside their authorized scope.
  • Runaway loops: Unbounded recursive execution patterns that consume resources, amplify errors, or produce cascading failures across dependent systems.
  • Data exfiltration: Agents accumulating sensitive data across multiple requests within a session and exfiltrating it through legitimate-looking tool calls.
  • Tool poisoning: Compromised tool definitions (rug-pull attacks) where a previously safe tool is replaced with a malicious implementation.

What PRECINCT Provides

PRECINCT is the control framework specifically designed for this risk surface. Rather than retrofitting traditional IAM or network controls onto agentic workloads, PRECINCT provides purpose-built enforcement mechanisms:

  • Pre-built control mappings to SOC 2, ISO 27001, GDPR, HIPAA, CCPA/CPRA, and PCI-DSS.
  • Automated evidence generation in auditor-ready formats (XLSX, CSV, PDF), not locked into any vendor-specific tool.
  • Immutable audit trails with hash-chained events, trace correlation, and tamper-proof storage.
  • Verifiable controls that auditors can independently test and confirm using the procedures documented on this page.

Compliance Framework Coverage

PRECINCT provides explicit control mappings to the following compliance frameworks. Each mapping identifies the specific architectural mechanism that satisfies the control requirement, the evidence artifacts generated, and the current implementation status.

Compliance framework coverage summary
Framework Key Controls Mapped Status
SOC 2 Type II CC6.1, CC6.6, CC6.7, CC7.1, CC7.2, CC9 Implemented
ISO 27001 Access control, network security, cryptographic controls, supplier management, operations security, logging and monitoring Implemented
CCPA / CPRA 1798.105 deletion rights, 1798.150 risk reduction, access minimization Implemented
GDPR Art. 5(2), Art. 17, Art. 25, Art. 28, Art. 30, Art. 32, Art. 33/34, Art. 44+ Implemented
HIPAA 164.308, 164.312, 164.316 Partial (prod_regulated_hipaa profile)
PCI-DSS Network segmentation, encryption, access control, logging Partial
Note on Partial Status

"Partial" means the architecture provides the enforcement mechanisms, but additional organizational controls, documentation, or configuration profiles are required for full compliance claims. The prod_regulated_hipaa profile includes HIPAA-specific hardening; PCI-DSS compliance requires additional network segmentation verification specific to the deployment environment.

Control-Family Crosswalk

The following table maps each PRECINCT control family to its implementing architecture mechanism and the specific controls it satisfies across frameworks. Use this crosswalk to trace from any framework requirement to the concrete enforcement point in the architecture.

Control-family crosswalk mapping architecture mechanisms to compliance frameworks
Control Family Architecture Mechanism SOC 2 ISO 27001 GDPR HIPAA
Workload Identity SPIFFE/SPIRE SVIDs + mTLS CC6.1, CC6.7 Access, network, crypto controls Art. 32 164.312(d)
Policy Authorization OPA + capability constraints CC6.1, CC6.6 Access controls Art. 25, 32 164.312(a)(1)
Secret Protection Referential credentials + late-binding CC6.1, CC6.7 Crypto / secret mgmt Art. 32 164.312(a)
Data Loss Prevention DLP + response firewall + step-up CC6.6, CC7.1 Monitoring / data protection Art. 25, 32 164.312(c)(1)
Audit Trail Hash-chained events + trace correlation CC7.2 Logging / monitoring Art. 30, 5(2) 164.312(b)
Supply Chain Signed images + digest admission CC6.7, CC7.1 Supplier / change controls Art. 32 164.308(a)(1)
Incident Response Detection + playbooks + legal hold CC7.x Incident management Art. 33/34 164.308(a)(6)
Privacy Rights ROPA + deletion + retention CC6/CC7 Lifecycle / retention Art. 17, 30 164.316

Evidence Generation

PRECINCT includes built-in tooling for generating compliance evidence in auditor-ready formats. All output is produced in standard, vendor-neutral formats (XLSX, CSV, and PDF) that work with any compliance management tool or can be reviewed directly by a human auditor.

Generating a Compliance Report

The primary entry point for compliance evidence is the make compliance-report target, which produces a comprehensive report covering all implemented framework mappings, control statuses, and evidence artifacts.

# Generate auditor-ready compliance report
make compliance-report

Framework-Specific Evidence Collection

For targeted evidence collection against a specific framework, use the compliance-evidence target with the FRAMEWORK parameter. Optionally sign the output with the SIGN=1 flag for cryptographic provenance.

# Collect framework-specific evidence
make compliance-evidence FRAMEWORK=soc2
make compliance-evidence FRAMEWORK=hipaa SIGN=1

Security Scan Evidence

Security scanning and production readiness validation can also produce evidence artifacts suitable for audit review.

# Security scan evidence
make security-scan

# Production readiness validation
make production-readiness-validate
Output Formats

All evidence outputs are generated in XLSX, CSV, and PDF formats. These are standard, vendor-neutral formats that are not locked to any specific compliance tool. Evidence can be consumed by GRC platforms, spreadsheet applications, or reviewed directly by auditors.

Immutable Audit Trail

Every gateway decision produces a structured audit event. These events form a tamper-evident chain that provides complete traceability from any agent action back to the identity, policy, and context that authorized (or denied) it.

Audit Event Structure

Each audit event is written as structured JSONL (JSON Lines) and contains the following fields:

  • decision_id: Unique identifier for this specific policy decision.
  • trace_id: Distributed trace identifier for correlating across services.
  • session_id: Agent session identifier for grouping related decisions.
  • spiffe_id: The cryptographically verified SPIFFE identity of the calling workload.

Hash Chain Integrity

Each event includes a prev_hash field containing the SHA-256 digest of the immediately preceding event. This creates a linked chain where any tampering with a historical event breaks the hash chain from that point forward. Additionally, each event records:

  • Policy bundle digest: The hash of the OPA policy bundle that was active at decision time, establishing which rules governed the decision.
  • Registry digest: The hash of the tool registry state, establishing which tool definitions were in effect.

Storage and Retention

Kubernetes Deployments

In Kubernetes, audit events are shipped to S3-compatible storage with Object Lock in COMPLIANCE mode. This provides hardware-enforced immutability: once written, no principal (including root administrators) can modify or delete the data until the retention period expires. This is the strongest available guarantee for tamper-proof audit retention.

Docker Compose Deployments

In Docker Compose, full immutability guarantees are not available. Compensating controls are applied instead:

  • Hash-chain verification: Integrity of the event chain can be verified at any time by recomputing the hash sequence.
  • Off-host shipping: Events are shipped to an external log aggregator as soon as they are produced, reducing the window of local tampering opportunity.
Important Distinction

The Docker Compose audit trail provides integrity verification but not immutability enforcement. For audit purposes, always document which deployment environment produced the evidence. See the Compose vs Kubernetes for Audit section below.

RACI Operating Model

The following RACI matrix defines accountability and responsibility for key security processes in a PRECINCT deployment. Auditors should verify that each row has named owners assigned in the organization's operational documentation.

RACI matrix for key security processes
Process CISO Security Arch Platform Eng SRE GRC Privacy
Threat model A R C C C C
Gateway policy I A/R R C C I
Identity posture I A R R I I
DLP lifecycle I A R C C C
Incident handling A C C R I C
Evidence cadence A C C C R I

Legend: R = Responsible (does the work), A = Accountable (owns the outcome), C = Consulted (provides input), I = Informed (kept in the loop).

What Auditors Can Verify

The following is a step-by-step guide for auditors to independently verify that PRECINCT controls are operating as designed. Each step includes the control objective, the verification procedure, and the expected outcome.

1. Identity Verification

Objective: Confirm that all workloads possess valid, attested SPIFFE identities and that SVIDs rotate on schedule.

  • Run the SPIRE entry list command to enumerate all registered workloads.
  • Verify that each agent and service has a corresponding SPIFFE entry.
  • Confirm that SVIDs have finite TTLs and rotate automatically before expiry.

2. Authorization Enforcement

Objective: Confirm that unauthorized requests are denied with structured, auditable responses.

  • Send a request to the gateway from an identity that lacks the required permissions.
  • Verify that the gateway returns a structured denial response (not a generic error).
  • Confirm that the denial is recorded in the audit trail with the requesting identity and the policy rule that triggered the denial.

3. Tool Integrity

Objective: Confirm that tool registry hash verification prevents rug-pull attacks and tool poisoning.

  • Verify that the tool registry contains cryptographic hashes for all registered tools.
  • Attempt to invoke a tool after modifying its definition (simulate a rug-pull).
  • Confirm that the gateway detects the hash mismatch and blocks the invocation.

4. Data Loss Prevention

Objective: Confirm that the DLP layer detects and blocks sensitive data in agent requests and responses.

  • Send a request that includes a credential (API key, connection string, or similar) in the payload.
  • Verify that the DLP layer blocks the request before it reaches the upstream tool.
  • Confirm that the blocking event is recorded in the audit trail.

5. Secret Protection

Objective: Confirm that agents never observe real credentials.

  • Review the agent audit trail for any request or response that contains raw secret material.
  • Verify that agents operate exclusively with opaque reference tokens.
  • Confirm that token-to-secret substitution occurs only at the gateway egress layer (step 13 of the middleware chain).

6. Audit Chain Integrity

Objective: Confirm that the hash chain is intact and no events have been tampered with.

  • Retrieve the audit event log for a given time range.
  • Recompute the SHA-256 hash chain by hashing each event and comparing it to the prev_hash field of the next event.
  • Confirm that the chain is unbroken from the first event to the last.

7. Rate Limiting

Objective: Confirm that per-identity rate limits are enforced and that one agent cannot monopolize system resources.

  • Issue requests from a single identity at a rate exceeding the configured limit.
  • Verify that the gateway returns rate-limit responses after the threshold is exceeded.
  • Confirm that rate limiting is applied per-identity, not globally (other identities remain unaffected).

8. Supply Chain Verification

Objective: Confirm that only image-digest-pinned containers are admitted to the cluster.

  • Verify that all container image references use digest pinning (SHA-256), not mutable tags.
  • Attempt to deploy a container with a tag-only reference and confirm it is rejected by admission control.
  • Review the image signing and verification pipeline for completeness.

Production Go/No-Go Conditions

The following conditions must all be satisfied before an organization may claim production defensibility for a PRECINCT deployment. These are not aspirational; they are hard gates. If any condition is not met, the deployment is not production-ready from a compliance standpoint.

  1. RACI ownership formally assigned. Every row in the RACI matrix above has named, individual owners (not team names) documented and acknowledged by the assigned individuals.
  2. Evidence pipelines automated and immutable where required. Compliance evidence generation runs on a defined cadence without manual intervention, and storage is immutable in Kubernetes deployments.
  3. Gateway mediation mandatory. All model egress and ingress traffic flows through the PRECINCT gateway. No agent can reach an LLM or tool without passing through the 13-layer middleware chain.
  4. Context admission invariants enforced. The context admission rules (session scoping, provenance tagging, retention limits) are active and tested.
  5. Legal/privacy prerequisites embedded in release gates. Privacy impact assessments and legal review are required checkpoints in the release pipeline, not afterthoughts.
  6. Break-glass approvals time-boxed, reason-coded, and reviewed. Any emergency override of policy controls is time-limited, requires a structured reason code, and is reviewed in the next business day's audit.
  7. Internal audit confirms control operation. An internal audit team (or equivalent function) has independently verified that the controls described in the What Auditors Can Verify section operate as designed.
  8. prod_standard and prod_regulated_hipaa profiles validated. The deployment configuration profiles have been validated against their respective test suites and all tests pass.

STRIDE/PASTA Threat Model Coverage

PRECINCT's architecture was designed against both the STRIDE and PASTA threat modeling methodologies. The following summarizes how each STRIDE threat category is addressed.

STRIDE Coverage

STRIDE threat model coverage
Threat Category Mitigation
Spoofing SPIFFE/SPIRE cryptographic workload identity. Every identity is attested, not asserted. No shared secrets or static credentials.
Tampering Hash-chained audit events with SHA-256 linking. Tool registry hash verification prevents tool definition tampering.
Repudiation Immutable audit trail with decision_id, trace_id, session_id, and spiffe_id on every event. S3 Object Lock (COMPLIANCE mode) in Kubernetes.
Information Disclosure DLP scanning (middleware layer 7) + response firewall + step-up gating for sensitive operations. Late-binding secrets ensure agents never observe real credentials.
Denial of Service Per-identity rate limiting (layer 11) + circuit breaker (layer 12). Request size limits (layer 1) prevent resource exhaustion from oversized payloads.
Elevation of Privilege OPA policy authorization (layer 6) + step-up gating (layer 9). Agents cannot escalate their own permissions; all authorization decisions are externalized to policy.

PASTA Coverage

The PASTA (Process for Attack Simulation and Threat Analysis) methodology provides a risk-centric lifecycle approach. PRECINCT provides coverage across three PASTA dimensions:

  • Decomposition quality: The five governed planes provide clear decomposition boundaries for threat analysis, ensuring no system surface is overlooked.
  • Threat completeness: The 13-layer middleware chain ensures that each identified threat category has a concrete enforcement point, reducing gaps between threat identification and mitigation.
  • Risk-treatment clarity: Each control maps explicitly to framework requirements (see the crosswalk table), providing clear traceability from risk to treatment to evidence.

Sample Audit Output

Every request through the PRECINCT gateway produces an immutable audit record in JSONL format. Records are hash-chained: each record's prev_hash field references the preceding record, making tampering detectable. Below are representative examples.

Successful request (all 13 layers pass)

{
  "timestamp": "2025-11-15T09:23:41.003Z",
  "request_id": "req-a7f3b291",
  "spiffe_id": "spiffe://precinct.dev/agent/research-bot",
  "tool": "web_search",
  "layers_passed": 13,
  "decision": "ALLOW",
  "latency_ms": 47,
  "hash": "sha256:e3b0c44298fc1c149afbf4c8996fb924",
  "prev_hash": "sha256:d7a8fbb307d7809469ca9abcb0082e4f"
}

DLP violation (credentials detected, blocked at layer 7)

{
  "timestamp": "2025-11-15T09:24:02.117Z",
  "request_id": "req-c8d4e512",
  "spiffe_id": "spiffe://precinct.dev/agent/code-assistant",
  "tool": "file_write",
  "layers_passed": 6,
  "blocked_at_layer": 7,
  "layer_name": "DLP Scanner",
  "decision": "DENY",
  "reason": "Credential pattern detected in response payload",
  "dlp_match": "AWS_ACCESS_KEY",
  "hash": "sha256:9f86d081884c7d659a2feaa0c55ad015",
  "prev_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb924"
}

Policy denial (unauthorized tool, blocked at layer 6)

{
  "timestamp": "2025-11-15T09:24:15.891Z",
  "request_id": "req-f1a2b3c4",
  "spiffe_id": "spiffe://precinct.dev/agent/intern-bot",
  "tool": "shell_exec",
  "layers_passed": 5,
  "blocked_at_layer": 6,
  "layer_name": "OPA Policy Engine",
  "decision": "DENY",
  "reason": "Agent 'intern-bot' is not authorized to use tool 'shell_exec'",
  "policy": "precinct/tool_access/v1",
  "hash": "sha256:4e07408562bedb8b60ce05c1decfe3ad",
  "prev_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015"
}

Rate limit exceeded (blocked at layer 11)

{
  "timestamp": "2025-11-15T09:24:31.445Z",
  "request_id": "req-d5e6f7a8",
  "spiffe_id": "spiffe://precinct.dev/agent/data-collector",
  "tool": "api_call",
  "layers_passed": 10,
  "blocked_at_layer": 11,
  "layer_name": "Rate Limiter",
  "decision": "DENY",
  "reason": "Token budget exceeded: 45,000/50,000 tokens consumed in current window",
  "rate_limit": {"window": "1h", "limit": 50000, "consumed": 45000},
  "hash": "sha256:ef2d127de37b942baad06145e54b0c61",
  "prev_hash": "sha256:4e07408562bedb8b60ce05c1decfe3ad"
}

CLI audit commands

Use the agw CLI to query and verify audit trails:

# Search audit records by agent identity
agw audit search --spiffe-id "spiffe://precinct.dev/agent/research-bot" --last 24h

# Explain a specific audit decision
agw audit explain --request-id req-c8d4e512

# Verify hash chain integrity
agw audit verify --from "2025-11-15T00:00:00Z" --to "2025-11-15T23:59:59Z"

CLI compliance evidence commands (OpenSearch-backed, secure path)

export AGW_OPENSEARCH_PASSWORD='<secret>'

# Collect SOC2 evidence from indexed audit records over HTTPS + mTLS
agw compliance collect \
  --framework soc2 \
  --audit-source opensearch \
  --opensearch-url https://opensearch.observability.svc.cluster.local:9200 \
  --opensearch-ca-cert /certs/ca.crt \
  --opensearch-client-cert /certs/client.crt \
  --opensearch-client-key /certs/client.key

Docker Compose vs Kubernetes for Audit

The deployment environment has significant implications for audit defensibility. Auditors must understand and document which environment produced any given piece of evidence.

Comparison of Docker Compose and Kubernetes audit capabilities
Capability Kubernetes Docker Compose
Immutable audit storage S3 Object Lock (COMPLIANCE mode) Not available (compensating controls)
Admission control Kubernetes admission webhooks Not available
Network policies Kubernetes NetworkPolicies Docker network isolation only
Pod security standards Pod Security Admission (PSA) Not available
Image digest pinning Enforced via admission control Specified in compose file (not enforced)
Indexed forensic search Optional OpenSearch + Dashboards extension with Secret-managed TLS/mTLS and SPIRE workload identities Optional profile available, but evidence remains non-authoritative for retention claims
Audit defensibility Full Compensating controls only
Critical for Auditors

Docker Compose deployments provide compensating controls only and are not suitable for production compliance claims. Docker Compose is appropriate for evaluation, development, and demonstration purposes. Any evidence produced from a Docker Compose environment must be clearly labeled as originating from a non-production environment with compensating controls rather than full audit defensibility.

When reviewing evidence, auditors should always verify the deployment_environment field in evidence metadata. Kubernetes deployments provide full audit defensibility; Docker Compose deployments provide compensating controls that may satisfy some but not all regulatory requirements.