Харденинг контейнеров: readOnlyRootFilesystem + drop ALL во всех приложениях #71
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Зачем
Правило владельца (2026-09-20): все контейнеры — с
readOnlyRootFilesystem: trueи сопутствующим харденингом. Новые манифесты этому уже следуют (kubernetes/apps/grachevko/hermes), существующие — нет.Правило и грабли (запись в
/runу образов с s6-overlay, обязательныйemptyDirи возврат владельца initContainer'ом): см. скиллhome-ops-cluster,references/container-hardening.md.Что сделать в каждом приложении
defaultPodOptions.securityContextв app-template):emptyDir(/tmp,/run, иные кэши). Определять не на глаз, а по логу старта и падениям записи.Readyпода.Область: наши приложения (первый заход)
ai/hindsight(chart hindsight)ai/searxng(app-template)firecrawl/firecrawl(app-template)grachevko/hindsight(chart hindsight)security/zitadel(chart zitadel)default/echo(app-template)ai/github-mcp,ai/kubesearch-mcp,ai/proxmox-mcp,gitea/gitea-mcp,security/vault-mcp,kube-system/mcp-k8s,grachevko/virtual-mcp) — черезpodTemplateSpecв CRtoolhive-system/toolhiveОбласть: апстрим-чарты (второй заход, с оговорками)
kube-system/{cilium,coredns,metrics-server,reloader,spegel},cert-manager/cert-manager,security/{vault,external-secrets},network/{envoy-gateway,k8s-gateway},database/{cloudnative-pg,dragonfly-operator},storage/proxmox-csi,flux-system/{flux-instance,flux-operator}.Здесь RO rootfs может быть недостижим: часть контроллеров пишет в корень образа (вебхуки, генерация сертификатов, сокеты). Для каждого — либо включаем, либо фиксируем комментарием в манифесте, почему нельзя. Без комментария «нельзя» — не считается решённым.
Проверка
grep -rL readOnlyRootFilesystem kubernetes/appsне должен находить наши приложения.