Требуется ли проверка подлинности для служб RESTful, взаимодействующих друг с другом в кластере Kubernetes?

У нас есть микросервисная архитектура, и есть REST-сервисы, взаимодействующие друг с другом через HTTP. Все эти сервисы размещены в кластере Kubernetes. Нужно ли нам иметь явную аутентификацию для такого взаимодействия сервисов, или Kubernetes обеспечивает достаточно безопасности для этого?

2 ответа

Kubernetes предоставляет только оркестровку для ваших предполагаемых приложений. Он помогает вам запускать, обновлять, масштабировать ваши сервисы и предоставляет способ доставки трафика внутри кластера. Большая часть безопасности Kubernetes связана с управлением трафиком и администрированием кластера на основе ролей.

Некоторые дополнительные инструменты, такие как Istio, могут обеспечить безопасную связь между модулями и некоторыми другими возможностями управления трафиком.

Приложения в модулях должны иметь свои собственные возможности обеспечения аутентификации и авторизации на основе локальных файлов / баз данных или сетевых служб, таких как LDAP или OpenID и т. Д.

Он основан исключительно на том, как вы проектируете, архитектор, как вы создаете SDD для вашей системы. При его разработке необходимо учитывать усиление безопасности и отдавать приоритет. Программное обеспечение и инструменты приносят свои функции, но важно то, как вы их адаптируете. Кубернетес не исключение.

Вы используете свои микро-сервисы по HTTP и в производственной системе, вы не можете поверить, что ваша система защищена, даже если она работает в кластере Kubernetes. Kubernetes предоставляет интересные возможности с точки зрения безопасности, такие как RBAC, CRD и т. Д., Как вы можете найти здесь, Kubernetes 1.8 Безопасность, рабочие нагрузки и глубина функций. Но, тем не менее, использование только этих функций недостаточно. Внутренние службы должны быть такими же безопасными, как и внешние. Ниже приведено несколько вещей, о которых вам следует позаботиться после запуска рабочей нагрузки в кластер kubernetes.

  1. Сканируйте все ваши образы докеров для тестирования уязвимостей.
  2. Используйте RBAC поверх ABAC и назначайте оптимальные привилегии соответствующим командам.
  3. Настройте контекст безопасности для модуля, на котором запущена ваша служба.
  4. Избегайте несанкционированного внутреннего доступа к служебным данным и защищайте все конечные точки микросервисов.
  5. Ключи шифрования должны вращаться в течение определенного периода времени.
  6. Хранилище данных, подобное etcd для вашего кластера kubernetes, должно быть защищено.
  7. Только админ должен иметь доступ к kubectl,
  8. Используйте проверку на основе токенов и включите аутентификацию для всех вызовов API REST.
  9. Непрерывный мониторинг всех сервисов, журналов для анализа, проверки работоспособности, всех процессов, запущенных внутри контейнеров.

Надеюсь это поможет.

Другие вопросы по тегам