Skip to main content

etcd Secrets Encryption at Rest

Understanding CoreWeave CKS cluster secrets encryption at rest

CoreWeave provides encryption at rest for etcd data in CoreWeave Kubernetes Service (CKS) clusters using a KMS-backed Vault setup. For new CKS clusters created after June 24, 2025, this feature is enabled by default and requires no action from you.

Info

For existing CKS clusters created on or before June 24, 2025, you need to rotate your existing Kubernetes Secrets once. After that, CoreWeave handles the entire lifecycle securely and transparently.

In Kubernetes, Secrets are stored unencrypted in etcd by default. Encryption at rest is typically configured manually using a Key Management Service (KMS) provider.

With CKS, CoreWeave sets up and maintains this for you automatically.

Rotate secrets in existing clusters

If your CKS cluster was created before June 24, 2025, your existing Secrets may not yet be encrypted. To ensure full encryption coverage, you'll need to replace the existing Secrets once. Any new Secrets you create going forward will be encrypted automatically.

To rotate your Secrets in place, run:

Example
kubectl get secrets --all-namespaces -o json | kubectl replace -f -

Core components of the encryption system

This section gives a behind-the-scenes look at how this encryption system works, without expecting you to manage or interact with any of it directly.

Vault-based encryption service

Each CKS tenant environment includes a dedicated Vault instance, deployed locally within the Kubernetes cluster to manage encryption keys. This service is:

  • Deployed as a highly available StatefulSet with internal Raft storage
  • Unsealed and authenticated automatically via a secure link to CoreWeave's central Vault
  • Backed up and restored (if needed) automatically

This setup ensures tenant clusters benefit from secure, isolated key management with minimal blast radius and no operational burden.

Vault manager

A custom controller (Vault Manager) handles the lifecycle of the Vault instance. It

  • bootstraps and unseals Vault using CoreWeave's upstream Vault via auto-unseal (transit),
  • restores backups on redeployments (if enabled), and
  • backs up Vault data on a schedule to ensure recoverability.

Kubernetes integration

The Kubernetes API server in your CKS cluster is configured to use Vault as a KMS provider for etcd. It

  • uses the Vault transit engine for envelope encryption and
  • authenticates using Vault's Kubernetes auth method.

Keys are securely managed and stored centrally, outside of the cluster.

This configuration means that objects like Secrets are encrypted at rest inside etcd using strong, tenant-isolated encryption keys.

TLS and certificate management

Vault uses mutual TLS to secure communication between its components and Kubernetes. All certificates are automatically issued by an internal CA via cert-manager. This ensures end-to-end encrypted communication within the Control Plane.

Comparison to upstream Kubernetes

While Kubernetes offers encryption at rest as an optional config, CoreWeave enables it by default. Your CKS clusters have Secrets encryption at rest via Vault, with none of the operational burden.

ConceptUpstream KubernetesCoreWeave CKS
KMS providerYou choose and configure it (e.g. Vault, AWS KMS)CoreWeave pre-configures Vault
Who manages keysYou doCoreWeave does
Plugin configYou write and deploy it manuallyCoreWeave provisions and injects it automatically
Encryption scopeYou choose what to encryptCoreWeave encrypts Secrets by default
Key rotation, unseal, backupManual setup and maintenanceAutomated by Vault Manager + TVM