- ChangeGuard Fleet (default). The Fleet service connects centrally to your Kubernetes API over customer-authorized, read-only access — for EKS, with short-lived AWS and Kubernetes credentials minted per collection cycle. Nothing is installed in the cluster for standard Kubernetes API-state evidence. See Connect your EKS fleet.
- ChangeGuard Edge (optional). A small, read-only in-cluster footprint for evidence that requires local presence — runtime signals (Falco), node benchmarks (kube-bench) — or for environments Fleet cannot reach centrally.
get/list only, no watch, no Secret access) and the same boundary guarantees — your source code, Secret values, and workload data stay in your cluster either way.
Edge deployment topology
The operator runs inchangeguard-system and manages the collector (and optional scanners) in changeguard-agent through a CRD. Only the collector talks to the outside world.
Evidence never needs an inbound path. The Edge collector always initiates the connection out; Fleet reads the Kubernetes API over access you authorized. The one deliberate exception is execution: when you enable the Cloud Executor, ChangeGuard acts on your cluster through a separate, per-environment identity — and only with a consumed Permit. See The execution path below.
Communication paths
For evidence, exactly three network relationships exist, and all cluster-originated traffic is outbound HTTPS on 443. Execution, when you enable it, adds a fourth: the Executor’s authenticated calls to your Kubernetes API, described in The execution path.What leaves your cluster — and what never does
This is the boundary that matters most for review. The collector sends the metadata needed to correlate and score change; it does not send your code, images, or secret values.Optional code graph. If you enable the code-graph feature, ChangeGuard AI reads your repositories in-cluster and ships only the derived knowledge graph — never your raw source. Your source code still does not leave the cluster.
Data the control plane stores is tenant-isolated at the database level using PostgreSQL row-level security, so one tenant’s data is never visible to another.
Where the AI runs
All correlation, scoring, and AI reasoning run in the control plane — not in your cluster. AI analysis is powered by Amazon Bedrock (Claude models). The in-cluster collector does no analysis; it reads state and pushes it out. This keeps the cluster footprint tiny (one small collector pod with no persistent storage) and means model/analysis changes ship on the control-plane side without touching your cluster.The deterministic CSC Score and the AI reasoning capabilities are distinct. Scoring is deterministic and generally available; the reasoning layers (Engineering Advisor, Engineering Opinion, and related) are Early Access and off by default. See Product concepts.
The execution path
Evidence is read-only by construction. Execution — applying an approved fix — is a separate path with a separate identity, enabled per environment and inert until a Permit exists.- The Cloud Executor runs in ChangeGuard’s estate. For each environment you enable, it assumes a role in your AWS account —
ChangeGuardExecutor-<environment-instance>, with no AWS permissions and a trust policy admitting only ChangeGuard’s Cloud Executor with your external ID — and authenticates to exactly that cluster through an EKS access entry you created, as a Kubernetes group that holdsget,listandpatchon workloads in the namespaces you chose. Nothing is installed. - The Local Executor is the same component running inside your cluster, for topologies or policies that require local presence, under a per-environment ServiceAccount with the same narrow grant.
- Either Executor acts only on a Permit — signed in AWS KMS, bound to one action, one target, one environment, one approval or policy and a window of minutes, used once — and ChangeGuard verifies the outcome from fresh evidence afterwards. VERIFIED is never assumed.
Where data lives
Cluster footprint at a glance
Tiny
One lightweight pod (~13MB image; observed ~9m CPU / 21Mi memory on a small cluster). Current defaults (chart ≥ 5.3.6): requests 25m/64Mi, limits 500m/512Mi — overridable via
agent.collector.resources. No PersistentVolumeClaims.Non-root
The collector runs non-root. Optional security scanners differ — the Falco DaemonSet runs privileged; see Permissions.
Read-only
get / list / watch only. Writes happen only through a separately enabled Executor identity, only with a Permit — see The execution path.