Сегодня вышел Kubernetes 1.18.0
И сейчас мы кратенько пройдемся по изменениям, что касаются security и наиболее интересны на мой взгляд.
- Появление команды
- `ServiceAccountIssuerDiscovery` (стадия Alpha) - позволяет сервисам вне кластера использовать KSA (Kubernetes service accounts) токены (JSON Web Tokens или JWT) в качестве общего метода аутентификации, не перегружая API сервер (и, конечно, не высовывая его наружу!). Для этого API сервер предоставляет механизм обнаружения OpenID Connect (OIDC), который содержит, помимо прочих данных, открытые ключи токена. Таким образом аутентификаторы OIDC могут использовать эти ключи для проверки токенов KSA на своей стороне.
- `CertificateSigningRequest API` (стадия Beta) - каждый Kubernetes кластер имеет root certificate authority (CA), который используется для защиты соединений между основными компонентами Kubernetes (обрабатывается с помощью Certificates API). Далее это начали использовать и другие компоненты системы и ПО. Теперь для использования этого API необходимы соответствующие разрешения и кто попало в системе не сможет это использовать (тем более представляться другим сервисом для данного запроса).
И сейчас мы кратенько пройдемся по изменениям, что касаются security и наиболее интересны на мой взгляд.
- Появление команды
kubectl debug
(стадия Alpha) - данная команда позволяет создать ephemeral containers, который запуститься в нужном Pod и позволит интерактивно разобраться с проблемой. Это позволит разработчикам не тянуть на продакшен Pod'ы всякие отладочные инструменты "на всякий случай", спокойно использовать distroless контейнер образы. В свою очередь это уменьшит шансы атакующему встретить на контейнерах кучу отладочных (потенциально полезных) ему инструментов для дальнейшей атаки. Но нужно учитывать что для этого данная команда делает 3 вещи: Создает ephemeral container, перезапускает Pod с измененной PodSpec, стартует его и аттачится к privileged container в host namespace. Так что нужно держать в голове, что если атакующий сможет выполнять команду debug
, то он значительно расширит attack surface для побега из контейнера.- `ServiceAccountIssuerDiscovery` (стадия Alpha) - позволяет сервисам вне кластера использовать KSA (Kubernetes service accounts) токены (JSON Web Tokens или JWT) в качестве общего метода аутентификации, не перегружая API сервер (и, конечно, не высовывая его наружу!). Для этого API сервер предоставляет механизм обнаружения OpenID Connect (OIDC), который содержит, помимо прочих данных, открытые ключи токена. Таким образом аутентификаторы OIDC могут использовать эти ключи для проверки токенов KSA на своей стороне.
- `CertificateSigningRequest API` (стадия Beta) - каждый Kubernetes кластер имеет root certificate authority (CA), который используется для защиты соединений между основными компонентами Kubernetes (обрабатывается с помощью Certificates API). Далее это начали использовать и другие компоненты системы и ПО. Теперь для использования этого API необходимы соответствующие разрешения и кто попало в системе не сможет это использовать (тем более представляться другим сервисом для данного запроса).