KubeDojo

Secrets: Types, Encryption at Rest, and Best Practices

AK
by Alexis Kinsella··18 min read
Secrets: Types, Encryption at Rest, and Best Practices

Run etcdctl get /registry/secrets/default/db-password on any cluster that hasn't configured encryption at rest. You get the password back in plaintext, base64-decoded with a one-liner. That is the default security posture of Kubernetes Secrets: base64-encoded, stored unencrypted in etcd, readable by anyone with API access or a direct etcd connection.

Fixing this requires deliberate steps at multiple layers: choosing the right Secret type so controllers can validate your data, configuring EncryptionConfiguration so etcd stores ciphertext instead of plaintext, mounting Secrets through tmpfs-backed volumes instead of environment variables, and writing RBAC policies that don't accidentally hand out read access to every Secret in the namespace.

Sign in to access this lesson

Create a free account or sign in to enroll in the CKA — Certified Kubernetes Administrator course and access all 63 lessons.

CKA — Certified Kubernetes Administrator

63 lessons

Browse the full course curriculum →
Secrets: Types, Encryption at Rest, and Best Practices — KubeDojo