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.
Config Store-backed Vaults
Uses:
Kong Operator
Related Documentation
Minimum Version
Kong Operator - 2.3
Incompatible with
on-prem
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.configStoreRefis only supported withbackend: konnect, and it’s mutually exclusive with settingconfig_store_idunderspec.config. -
spec.prefixis what you use in vault references later, and it’s immutable after creation. -
KongVaultis cluster-scoped andKonnectConfigStoreis namespaced, so the reference always crosses a namespace boundary and requires aKongReferenceGrant. - Kong Operator reports the outcome of the reference in the
ConfigStoreRefValidcondition.
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
KonnectConfigStoredeletes 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.configStoreRefis mutable. Removing it clears theConfigStoreRefValidcondition and leaves anyconfig_store_idyou set directly underspec.configuntouched. - Removing the
KongReferenceGrantstops further updates to a programmedKongVault, but the Vault that already exists in Konnect, including itsconfig_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.