Config Store-backed Vaults

A KongVault with backend: konnect stores its secrets in a Konnect Config Store, which is identified by a config_store_id. Instead of creating the Config Store out-of-band and copying its ID into spec.config, you can manage the Config Store with a KonnectConfigStore resource and reference it from spec.configStoreRef.

Resources involved

Four Kubernetes resources describe the setup:

Resource

Purpose

KonnectConfigStore Creates the Config Store container in Konnect that holds the secret entries. It manages the container only, never the secret values inside it.
KongReferenceGrant Authorizes the cluster-scoped KongVault to reference the namespaced KonnectConfigStore.
KongVault Creates a Vault with the konnect backend and resolves spec.configStoreRef into the config_store_id of the Vault configuration sent to Konnect.
KongCertificate Holds the public certificate inline and a vault reference in place of the private key.

The secret value itself is the one step that isn’t declarative: it’s written straight to Konnect, out-of-band, to avoid storing the secret value in etcd.

Field behavior

  • spec.configStoreRef is only supported with backend: konnect, and it’s mutually exclusive with setting config_store_id under spec.config.
  • spec.prefix is what you use in vault references later, and it’s immutable after creation.
  • KongVault is cluster-scoped and KonnectConfigStore is namespaced, so the reference always crosses a namespace boundary and requires a KongReferenceGrant.
  • Kong Operator reports the outcome of the reference in the ConfigStoreRefValid condition.

Security boundary

Referencing a secret from a Config Store moves it out of every place you manage with GitOps, but it doesn’t remove it from Konnect:

Location

Holds the secret?

Git repository and Kubernetes manifests No, only the vault reference.
Kubernetes API and etcd No, only the vault reference.
Konnect certificate object No, only the vault reference.
Konnect Config Store Yes. Access is controlled by Konnect roles and permissions.
Kong Gateway data plane memory Yes, while the secret is in use. Konnect resolves the reference after the data plane connects to the control plane.

Anyone who can write secrets into the Config Store can replace the key that your listener serves, so treat Config Store write access as equivalent to certificate issuance rights.

Lifecycle and deletion

  • Deleting the KonnectConfigStore deletes the Config Store in Konnect along with every secret stored in it, including keys that other Vaults or certificates still reference. Delete it only when you’re sure nothing depends on its contents.
  • spec.configStoreRef is mutable. Removing it clears the ConfigStoreRefValid condition and leaves any config_store_id you set directly under spec.config untouched.
  • Removing the KongReferenceGrant stops further updates to a programmed KongVault, but the Vault that already exists in Konnect, including its config_store_id, isn’t rolled back or removed.
  • Rotating a key is a Config Store operation: update the secret value in place, and the vault reference keeps resolving without any change to your Kubernetes resources.

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!