Security model

Read-only. Self-hosted. Your keys stay yours.

The whole product is built on one boundary: Cloudkeel-DD runs inside your environment and only ever reads. Your credentials stay yours, findings live in your database, and the only paths out are the ones you wire up yourself.

Read-only, always

Cloudkeel-DD never creates, updates, or deletes a resource, and never runs terraform apply. That’s enforced in code, not just policy: every cloud and Kubernetes call is checked against a deny-list at runtime, backed by a test that scans each connector for a mutating call before it ships. Detection and remediation are separate: a revert plan is generated for you to review and run yourself, never applied automatically.

Your credentials never leave your cluster

There is no SaaS backend. No vendor holds keys to your estate. Integration secrets (tokens, kubeconfigs) are envelope-encrypted at the ORM boundary: a data key wrapped by a key only your install holds, and the unwrapped key is never written to disk or database.

Least privilege, documented

The exact permissions each connector needs are published per cloud, scoped read-only. Our own verification used exactly these: a read-only IAM user on AWS, a scoped ServiceAccount + read-only ClusterRole on Kubernetes. Nothing broader.

Kubernetes Secret values are never read

The Kubernetes connector reads workload manifests and live object state to detect drift. Secret object values are never read or diffed: they never enter the diff engine at all.

The boundary, in one diagram

The short version

Runs whereInside your own Kubernetes cluster, from public images + a public Helm chart.
Data at restFindings + encrypted credentials in your PostgreSQL. Decryption key held only by your install.
EgressRead-only API calls to the clouds and clusters you connect. We operate no endpoints, so there is no telemetry, analytics or licence check. The only other outbound paths are ones you configure yourself: notification webhooks, and GitHub or GitLab remediation pull requests.
AuthEmail/password with per-tenant role-based access control (owner / admin / viewer), enforced server-side. Every workspace is isolated: one tenant’s credentials and integrations are never reachable from another’s.
AuditAppend-only audit log: who did what, when, with IP; 365-day auto-purge.
HardeningSecurity headers (including CSP and HSTS) on every route, a startup check that refuses to run with a default or missing secret key, and dependencies kept current against known CVEs.
SSO / SAMLOn the roadmap, not shipped.
Report a vulnerabilityEmail hello@cloudkeel.io.
Install in 15 minutes