Fleet’s grant is smaller. This page describes the optional ChangeGuard Edge in-cluster footprint. The default path — Connect your EKS fleet — grants the customer-authorized Fleet identity
get/list only: no watch, no write verbs, no wildcards, and no Secret access is requested at all. The Secrets caveat below applies only to an Edge install.The short version (Edge)
- ChangeGuard AI does not request
cluster-admin. - ChangeGuard AI does not use wildcard (
*) RBAC rules. - The operator and collector read cluster resources. To correlate changes and score posture, that read is cluster-wide and includes Secrets and RBAC objects (read-only).
- ChangeGuard AI’s evidence identities write nothing to your workloads. Writes happen only through a separately enabled Executor identity — per environment, in the namespaces you grant, and only with a consumed Permit. See Execution permissions below.
What the collector reads
The collector needs a fleet-wide picture of state and change. Its ClusterRole grants read verbs only (get, list, watch) across the resources it correlates:
“Read verbs only” means
get / list / watch. The collector’s ClusterRole contains no create, update, patch, or delete on your workloads.What the operator does
The operator manages ChangeGuard AI’s own components (the collector and optional scanners) through thechangeguardagents.changeguard.ai CRD. Its write access is scoped to ChangeGuard AI’s own resources — it does not get write access to your applications.
What ChangeGuard AI cannot do (by default)
No workload writes
It cannot create, patch, or delete your Deployments, Pods, or configs.
No secret exfiltration
Secret values are not transmitted to the control plane.
No inbound path for evidence
The collector initiates all communication outbound over HTTPS, and Fleet reads over access you authorized. Only the Executor — when you enable it — calls your Kubernetes API, and only with a Permit.
No cluster-admin
No wildcard rules, no
cluster-admin binding.Security scanners (optional, on by default)
The default install (agent.security.enabled=true) runs a suite of security scanners. Most run as scheduled Jobs, but one runs continuously and with elevated privilege — your security review should account for it:
Falco requires kernel-level access because eBPF syscall monitoring inherently does — the same privilege model Falco uses upstream. It is called out here so it is never a surprise in a security review. If your posture does not allow a privileged DaemonSet, disable it without affecting the collector or the other scanners:
Execution permissions (opt-in, per environment)
If — and only if — you enable execution for an environment, ChangeGuard AI gets a separate identity to act with. It is never the collector’s or Fleet’s identity, and it is deliberately narrow:- Cloud Executor (preferred, nothing to install). An IAM role in your account,
ChangeGuardExecutor-<environment-instance>, with no AWS permissions and a trust policy admitting only ChangeGuard’s Cloud Executor with your external ID; one EKS access entry mapping it to the Kubernetes groupchangeguard:executor:<environment-instance>; a ClusterRolechangeguard-executor-<environment-instance>that only definesget,listandpatchon Deployments, StatefulSets and DaemonSets; and a RoleBinding of the same name in each namespace you chose. - Local Executor (where topology or policy requires it). The same verbs, through a per-environment ServiceAccount
changeguard-local-executor-<environment-instance>, bound only in the namespaces you chose. - Neither grants
delete,create,update,pods/exec, Secrets, RBAC writes, impersonation, node access, wildcards or cluster-admin — and Verify execution access proves each of those denials before the environment is execution-ready, and again every 12 hours. - Holding the identity is still not authority: nothing is written without a consumed, single-use Permit for exactly one approved change.
Inspect what’s actually granted
Don’t take this page’s word for it — read the live grants in your own cluster:Confirm the ClusterRole verbs are limited to
get, list, watch, and that no rule uses * for resources or verbs on your workloads.Revoke access
To remove all of ChangeGuard AI’s in-cluster permissions, uninstall it — the ClusterRoles, bindings, and ServiceAccounts are removed with the release:Revoking API-key access on the control-plane side is handled in-app under API keys. See the Operations handbook for key rotation guidance and its current limitations.