Возможно ли предотвратить пустоту секрета k8 (ноль байт)?

#kubernetes #kubernetes-secrets

#kubernetes #kubernetes-секреты

Вопрос:

Можно ли настроить k8s таким образом, чтобы пустые секреты были невозможны?

У меня была проблема в службе, из-за которой секрет был перезаписан пустым (нулевые байты), и, таким образом, моя служба вышла из строя. Я не вижу никакого преимущества в том, чтобы иметь пустой секрет в любое время, и хотел бы предотвратить все пустые секреты вместе взятые.

Спасибо за вашу помощь!

Комментарии:

1. Какая версия Kubernetes у вас есть?

2. Я на 1.16.15, но планирую скоро обновиться до 1.17.15

3. Если у вас есть Kubernetes 1.19 или выше, вы сможете создавать неизменяемые секреты . В Kubernetes 1.18 это также доступно, но ImmutableEphemeralVolumes функциональный шлюз должен быть включен.

4. Приятно, что kubernetes будет поддерживать это, но immutable не решает мою проблему с пустыми секретами.

Ответ №1:

Хотя это непростой ответ для реализации, насколько я могу судить, то, что вы ищете, — это контроллер доступа, причем очень популярным из них является OPA Gatekeeper

Теория заключается в том, что kubernetes, как платформа, не понимает ваших бизнес-требований по предотвращению ошибок при перезаписи секретов. Но OPA как механизм правил политики позволяет вам указывать эти вещи, не требуя от вышестоящего kubernetes принятия этих политик для всех

Альтернативой является включение ведения журнала аудита и отслеживание ответственной стороны для переобучения

Еще одной альтернативой является правильное определение ролей RBAC, чтобы фактически запретить запись в секреты, за исключением тех учетных данных, которые, как известно, являются доверенными