Выбор ответа Senior Секреты и Vault обновлено

Шифрование Secret в etcd

Вопрос

Как защитить Kubernetes Secret на уровне хранения?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Включить шифрование at rest через EncryptionConfiguration, лучше с KMS. По умолчанию API server пишет Secret в etcd без шифрования, и любой с доступом к диску или бэкапу etcd читает значения.

Варианты ответа

  1. Хранить значения в base64 дважды, чтобы их не прочитали сходу
  2. Включить шифрование at rest через EncryptionConfiguration, лучше с KMSправильный ответ
  3. Включить TLS между kubectl и API server для всех запросов к secrets
  4. Хранить секреты в ConfigMap с ограниченным RBAC

Разбор

По умолчанию API server пишет Secret в etcd без шифрования, и любой с доступом к диску или бэкапу etcd читает значения. EncryptionConfiguration шифрует данные при записи, а с KMS ключ шифрования ключей хранится вне кластера. Двойной base64 ничего не даёт, TLS защищает трафик, а не хранилище, ConfigMap ещё хуже. В managed Kubernetes шифрование часто включается опцией кластера.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.