Всем привет!



Утилита Sealed Secrets от Bitnami Labs

предназначена для шифрования секретов Kubernetes.



Зачем?

Основное назначение - это безопасное хранение секретов, используемых в кластере, на уровне Git.



Например, если вы используете ArgoCD для реализации GitOps и в Git-е храните secret.yaml в «голом» виде, то эта утилита может вам пригодиться, чтобы этого избежать.



Из чего состоит?

🍡Контроллер/оператор

🍡Утилита kubeseal



Как работает?

Kubeseal шифрует секрет с использованием асимметричного шифрования. Расшифровать этот секрет может только контроллер, развёрнутый в кластере.



Зашифрованный секрет представляет собой объект Kubernetes с kind: SealedSecret.

Выглядит он примерно так:



apiVersion: bitnami.com/v1alpha1

kind: SealedSecret

metadata:

name: mysecret

namespace: mynamespace

spec:

encryptedData:

foo: AgBy3i4O...




И эту конфигурацию можно положить в Git вместо стандартного секрета.



Не без нюансов. SealedSecret связан с Secret, после прохождения процедуры usealing, в Kubernetes появляется стандартный Secret, поэтому защита секрета по факту реализуется только снаружи кластера, остальное решается стандартно - настройка RBAC в кластере.



Больше информации можно получить по ссылке: https://github.com/bitnami-labs/sealed-secrets