Enterprise security features and best practices.
The open-source reconciler defaults to a no-op validator. Supplying
LICENSE_JWT through Helm does not change that implementation.
A production validator must be injected through the LicenceValidator
interface. The chart still requires a nonempty license.key packaging value.
License includes:
- Customer ID
- Licensee name
- Tier (trial, basic, pro, enterprise)
- Seat limits
- Feature flags
- Expiry date
A configured production validator can reject expired licenses, workload limits, or disabled features.
Operator automatically configures RBAC per tenant:
ServiceAccount: acme-corp-agent
Role: acme-corp-workload-manager
RoleBinding: acme-corp-workload-bindingIntended permissions:
[x]Create and manage AgentWorkloads in the assigned namespace.[x]Get and list Secrets in the tenant namespace.[ ]Access other tenant namespaces.[ ]Modify unrelated cluster resources.
Verify rendered Roles and bindings against the customer's tenancy model before production use.
The legacy direct-action path uses an in-process Go evaluator selected by:
opaPolicy: strictIt evaluates action type, caller-supplied confidence, cluster health, and strict or permissive mode. Read-only actions use a separate allow path.
The repository also ships Rego samples in a ConfigMap. The direct action path does not execute those Rego files or call a real OPA engine today. Treat them as policy assets and integration examples.
NetworkPolicy objects can restrict selected traffic when the cluster CNI enforces them.
The Tenant spec.networkPolicy field is not consumed by the current tenant
reconciler. Apply tenant policies separately.
The chart renders a default-deny egress policy for selected operator pods.
The umbrella Helm chart ships a default-deny egress NetworkPolicy
(charts/templates/networkpolicy.yaml)
for pods labeled app.kubernetes.io/part-of: agentic-operator. Toggle via
networkPolicy.enabled (default true). Allow-listed: kube-dns, the
in-cluster LiteLLM proxy, Postgres, MinIO, Browserless (when enabled), and
external OPA (when configured). Operator-supplied additions go under
networkPolicy.additionalAllowedHosts. Verified by helm-unittest in
charts/tests/networkpolicy_test.yaml.
Managed workload namespaces require separate policy application and matching labels.
Optional Cilium FQDN policies require Cilium and explicit chart configuration.
Agent code should be treated as untrusted because the agent's instructions
come from end users and tool outputs may contain hostile content. Clawdlinux can
select gVisor for labeled pods when the cluster has a working runsc runtime.
Supported sandbox: gVisor (gvisor.dev). gVisor
intercepts all syscalls in user space (the runsc runtime) and reimplements a
restricted subset of the Linux ABI, eliminating direct exposure of the host
kernel surface. The syscall allowlist is sourced from the upstream gVisor
project, specifically the platform-default seccomp filter shipped in
pkg/seccomp/seccomp_amd64.go
plus the per-runtime additions documented in
runsc/boot/filter.
We do not maintain a fork — we deliberately track upstream so security fixes land
without lag.
Kata Containers may be evaluated separately when the customer requires a microVM boundary. The repository does not configure a Kata runtime path.
Status: the Helm chart can create the gVisor
RuntimeClassand register a pod mutating webhook. Pods opt in with the labelagentic.clawdlinux.org/runtime-sandbox: gvisor. The webhook setsruntimeClassName: gvisorunless the Pod already chose another runtime. Operators must still install gVisor/runsc on their nodes before enabling this.
Best practices:
- Store in Kubernetes Secrets - Not ConfigMaps
- Use RBAC - Limit access to service accounts only
- Rotate regularly - Every 90 days
- Audit access - Enable Kubernetes API audit logging for Secret requests
- Encrypt at rest - Enable etcd encryption
# Confirm API audit configuration through your Kubernetes provider.
# Kubernetes Events are not a Secret-access audit log.Enable Kubernetes API audit logging through the cluster provider when required:
apiServer:
auditPolicy:
rules:
- level: RequestResponse
verbs: [get, list, create, update, patch, delete]
resources: [tenants, agentworkloads]The repository also provides HMAC hash-chain and JSONL verification primitives. The controller does not automatically append each run event into that chain.
Clawdlinux does not make a deployment compliant with a named framework. Customers may map configured controls and collected evidence to requirements such as SOC 2, HIPAA, PCI DSS, GDPR, DORA, or the EU AI Act.
Applicability depends on the organization, data, role, jurisdiction, operating procedures, and independent assessment.