OpenBao Kubernetes KMS Provider

The bao-kms-provider plugin terminates the Kubernetes KMS v2 protocol on a local Unix socket and forwards encrypt and decrypt operations to OpenBao Transit. It participates in Kubernetes envelope encryption for selected API resources before they are persisted to etcd. It 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, while contributors should use Development for local workflow, CI, and release process.

Read In The Order You Operate

  1. 01

    Check Fit

    Confirm that Kubernetes KMS v2 is the right encryption layer for the resources you care about, and that the OpenBao Transit model matches your trust boundary and version envelope.

  2. 02

    Set Up OpenBao

    Provision a Transit mount, an aes256-gcm96 key, a least-privilege policy, and 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 and AAD shape, and exercise the observability surface before relying on the provider in production.

  5. 05

    Operate Safely

    Run Transit key rotation, recover from OpenBao or etcd loss, upgrade the provider with rollback in mind, and consult the failure-mode catalog when something breaks.

Documentation Map

Support, Security, And Internals