Trousseau: использование KMS provider для шифрования данных в Kubernetes
Всем привет!
Для шифрования данных в ETCD можно использовать штатные механизмы Kubernetes. Однако, есть нюанс, что ключи шифрования надо поместить на nodes, иначе возможны сбои. Альтернативный вариант – использование функционала KMS provider: третьей стороны, которая будет отвечать за шифрование, в том числе управлять ключами. При этом в ETCD будут попадать уже зашифрованные сущности.
Для упрощения подобной схемы ребята из Ondat сделали Trousseau – посредника между Kubernetes и KMS (например, HashiCorp Vault).
Схема получается следующая:
🍭 Пользователь создает сущность (например, Secret)
🍭 Kube-apiserver перенаправляет запрос в Trousseau
🍭 Он, в свою очередь просит зашифровать данные у HashiCorp Vault
🍭 Далее шифрованные данные направляются на хранение в ETCD
Преимуществом такой схемы является то, что управлять ключами шифрования проще, к тому же нет потребности их размещения на nodes кластера.
Если хочется «потрогать» руками, то есть удобная интерактивная лабораторная работа. В ней сперва настраивается encryption method, происходит конфигурация Transit Secret Engine в Vault, а затем демонстрируются зашифрованные секреты в ETCD.
Post #496
981