Работал с паттерном сайдкара для инъекции секретов в контейнеризированные приложения. Основные решения, с которыми сталкивался:
-
Vault Agent Injector (HashiCorp Vault):
- Разворачивается как контроллер в Kubernetes, который перехватывает создание подов, ищет аннотации Vault.
- Автоматически добавляет к поду Volume и сайдкар-контейнер Vault Agent.
- Vault Agent отвечает за аутентификацию в Vault, получение секретов и их запись в файловую систему пода (через Volume).
- Приложение внутри пода читает секреты из смонтированного Volume.
- Преимущества: централизованное управление секретами, динамическое получение, автоматическая ротация, интеграция с различными аутентификационными бэкендами Vault.
-
Kubernetes Secrets Store CSI Driver:
- Позволяет приложениям в Kubernetes получать доступ к секретам, хранящимся во внешних хранилищах секретов (Azure Key Vault, GCP Secret Manager, AWS Secrets Manager, HashiCorp Vault и др.) как к томам (Volume).
- Сайдкар-контейнер (Specific Provider) запускается как часть того же пода или как отдельный агент и взаимодействует с внешним хранилищем посредством gRPC.
- Полученные секреты монтируются в под как временное файловое хранилище (Secrets Store CSI Driver Volume).
- Приложение читает секреты из файловой системы.
- Преимущества: единый интерфейс для доступа к разным хранилищам секретов в Kubernetes, возможность монтировать не только Secrets/Configs, но и сертификаты, ключи.
Общий подход заключается в минимизации хранения секретов непосредственно в образе приложения или в манифестах Kubernetes, делегируя задачу их получения и обновления сайдкару. Это повышает безопасность за счет отделения логики работы с секретами от логики приложения и облегчает управление секретами в динамических средах вроде Kubernetes.
yaml
Работал с паттерном сайдкара для инъекции секретов в контейнеризированные приложения. Основные решения, с которыми сталкивался:
-
Vault Agent Injector (HashiCorp Vault):
- Разворачивается как контроллер в Kubernetes, который перехватывает создание подов, ищет аннотации Vault.
- Автоматически добавляет к поду Volume и сайдкар-контейнер Vault Agent.
- Vault Agent отвечает за аутентификацию в Vault, получение секретов и их запись в файловую систему пода (через Volume).
- Приложение внутри пода читает секреты из смонтированного Volume.
- Преимущества: централизованное управление секретами, динамическое получение, автоматическая ротация, интеграция с различными аутентификационными бэкендами Vault.
-
Kubernetes Secrets Store CSI Driver:
- Позволяет приложениям в Kubernetes получать доступ к секретам, хранящимся во внешних хранилищах секретов (Azure Key Vault, GCP Secret Manager, AWS Secrets Manager, HashiCorp Vault и др.) как к томам (Volume).
- Сайдкар-контейнер (Specific Provider) запускается как часть того же пода или как отдельный агент и взаимодействует с внешним хранилищем посредством gRPC.
- Полученные секреты монтируются в под как временное файловое хранилище (Secrets Store CSI Driver Volume).
- Приложение читает секреты из файловой системы.
- Преимущества: единый интерфейс для доступа к разным хранилищам секретов в Kubernetes, возможность монтировать не только Secrets/Configs, но и сертификаты, ключи.
Общий подход заключается в минимизации хранения секретов непосредственно в образе приложения или в манифестах Kubernetes, делегируя задачу их получения и обновления сайдкару. Это повышает безопасность за счет отделения логики работы с секретами от логики приложения и облегчает управление секретами в динамических средах вроде Kubernetes.
yaml