Set the default access policy
Set one deterministic outcome for requests that match no access policy, independently for MCP tools, LLM calls, and outbound HTTP calls.
You must be an administrator to change this setting. Viewers can inspect the current actions and readiness states.
Configure the defaults
- Open Settings. In the admin console, select Settings → General.
- Find Default access policy. Review the readiness tag and generated policy name for each plane.
- Choose an action for every plane. Select Allow, Hold for approval, Deny, or Inline Judge. AIControls disables restrictive choices until the plane's access classification is ready. Inline Judge is available only when the restart-only feature flag is enabled.
- Configure Inline Judge when selected. Choose the deterministic fallback, latency budget, confidence threshold, auto-apply behavior, and short cache TTL. Start with auto-apply off so a qualifying misalignment requires approval.
- Save the three-plane policy. AIControls commits all three choices atomically. If another administrator changed the policy first, reload the page, review that revision, and save again.
- Choose the unregistered workload mode. This setting and the next one appear only in self-managed installations; see Feature availability. Under Unregistered workloads, select Enforce to deny MCP and LLM calls from Kubernetes workloads that have no registration, or Audit to allow and record them. Then select Save unregistered workload mode. This mode is saved separately from the three planes. See Unregistered workloads.
- Choose the workload unmatched action. Under Workload callers: unmatched calls, select Deny to block MCP and LLM calls from a registered workload in Enforce that none of its grants match, or Use the MCP and LLM actions above to apply the plane actions to them. Then select Save workload unmatched action. Developers and other callers that aren't registered workloads keep the plane actions. See Workload callers.
Start with Allow while you confirm that your access policies cover expected traffic. Move a ready plane to Hold for approval to observe unexpected requests with human review, then use Deny when unmatched requests should fail closed.
For Inline Judge, choose the result you would want if no model call occurred as the fallback. That same result applies if the delegate is unavailable, times out, omits confidence, returns an invalid or inconclusive result, or produces an aligned or low-confidence verdict. Judge never turns Hold or Deny into a less restrictive decision.
Content and risk guardrails do not count as access policies. A request that matches only a guardrail still receives the configured default access action and records an unmatched evaluation status.
For outbound HTTP traffic, review networkFilter.warnFallback before changing the HTTP default. A legacy warnFallback: deny setting continues to deny traffic without a definitive policy outcome before the generated HTTP default runs. See Network egress filtering.
Verify the result
Make an MCP or outbound HTTP request that does not match an enforcing access policy. You can also make an LLM request that Judge holds or denies. Then open its audit event and confirm that:
- Policy is
accessdefault:mcp,accessdefault:llm, oraccessdefault:httpwhen the default is the most restrictive result. A more restrictive guardrail remains in this field. - Evaluation status is
unmatched. - Decision matches the action you selected.
- Judge provenance is present when Inline Judge was consulted. Confirm its status and confidence before attributing a Hold or Deny to the companion policy. A successful LLM call does not yet copy request-time Judge provenance to its later terminal audit row.
The generated definitions are read-only and appear on the Settings page. They do not appear in the editable policy catalog or policy replay yet.