OpenBao Kubernetes KMS Provider

The bao-kms-provider process implements the Kubernetes Key Management Service (KMS) v2 protocol on a local Unix socket. It forwards encrypt and decrypt operations to OpenBao Transit. Kubernetes uses the provider for envelope encryption of selected API resources before persisting them to etcd. The provider does not encrypt etcd disk blocks, application volumes, or node filesystems.

Operators usually move through Start Here , Deployment , Operations , Reference , and Security . Maintainers should use Architecture for design rationale and trust boundaries. Contributors should use Development for local workflow, continuous integration, and release process.

Read In The Order You Operate

  1. 01

    Check Fit

    Confirm that Kubernetes KMS v2 covers the API resources you plan to encrypt. Check that the OpenBao Transit model matches your trust boundary and tested versions.

  2. 02

    Set Up OpenBao

    Provision a Transit mount, an aes256-gcm96 key, a least-privilege policy, and JSON Web Token (JWT) authentication for the Kubernetes API server identity.

  3. 03

    Install And Wire The Provider

    Install bao-kms-provider, choose between systemd and static-pod deployment, and write the EncryptionConfiguration that the Kubernetes API server consumes.

  4. 04

    Verify End-To-End

    Run the first-encrypt smoke test. Confirm key_id stability, additional authenticated data (AAD), metrics, health endpoints, and redacted logs before production use.

  5. 05

    Operate And Recover

    Rotate Transit keys, recover from OpenBao or etcd loss, and test provider rollback during upgrades. Use the failure-mode catalog to diagnose faults.

Documentation Map

Support, Security, And Internals