Изолировать секреты на уровне службы в том же пространстве имен - PullRequest
1 голос
/ 02 апреля 2019

Я пытаюсь выяснить, как я могу изолировать свои секреты Kubernetes для конкретной службы.

Например, допустим, у меня есть два секрета с именами private-key и public-key и две службы Kubernetes auth-service и gateway-service .

Я хочу предоставить private-key секрет для auth-service для генерации токена и предоставить от public-key до gateway-service для проверки сгенерированного токена. Все секреты и сервисы находятся в одном пространстве имен.

Как я могу ограничить доступ private-key только к auth-service ?

1 Ответ

1 голос
/ 02 апреля 2019

Нет способа достичь этого, это сделано в Кубернетесе.Секреты в Kubernetes для каждого пространства имен, и любой модуль в этом пространстве имен может монтировать их.Таким образом, единственный способ достичь этого - использовать отдельные пространства имен.Кстати, не только секреты, но и разрешения RBAC относятся к пространству имен - вы не можете ограничивать права пользователя для конкретного объекта, но для всего пространства имен.

Кроме того, с точки зрения безопасности, вы можете рассмотреть более безопасное решение.для закрытого ключа, используемого для подписи токенов, например HSM .Существует несколько вариантов облачных вычислений, таких как Azure KeyVault или AWS CloudHSM, которые предоставляют эту функцию.

В заключительном комментарии это одна из причин, по которой мы решили создать собственное решение для шифрования секретов - Kamus .Kamus позволяет вам шифровать секреты для конкретной службы, и только эта служба может расшифровать их.Это позволяет нам иметь более детализированные разрешения на секреты, которые механизм секретов Kubernetes не предоставил.

...