Как отозвать подписанный сертификат в кластере Kubernetes?

kube-apiserver кажется, не предоставляет возможность использовать список отзыва сертификатов (CRL).

Есть ли способ отозвать сертификат клиента, если он потерян или больше не используется?

1 ответ

Решение

Насколько я знаю, нет способа напрямую отозвать сертификаты через CRL. Тем не менее, то, что работает, и то, что мы используем в настоящее время, это политики ABAC для идентификации пользователей (устанавливаемых через общее имя сертификата) и наличия у них доступа к данному ресурсу в Kubernetes.

В качестве примера, скажем, у вас есть пользователь с именем "random". Вы должны сгенерировать для них Сертификат клиента из вашего данного Центра сертификации с общим именем "random".

Оттуда вы можете получить файл политики ABAC (файл csv с каждой строкой, представляющей собой бит JSON) с разрешениями, установленными для пользователя "случайно", что обеспечит им определенный уровень доступа к API Kubernetes. Вы можете иметь их доступ ко всему или определенным пространствам имен или другим параметрам API. Если вам нужно отозвать разрешения, вы просто удалите этого пользователя из файла политики ABAC. Мы проверили это, и это хорошо работает. К сожалению, я скажу, что вам нужно перезапустить службу API Kubernetes, чтобы эти изменения вступили в силу, поэтому для этого изменения может потребоваться несколько секунд простоя. Очевидно, что в среде разработки это не имеет большого значения, но на производстве вам может потребоваться назначить время для добавления пользователей.

Надеемся, что в будущем простая "перезагрузка kube-apiserver" позволит перечитать этот файл политики ABAC.

И последнее, на что следует обратить внимание: при использовании клиентских сертификатов для проверки подлинности ABAC вам нужно будет установить разрешения для пользователей ИНДИВИДУАЛЬНО. В отличие от токенов авторизации с ABAC, вы не можете устанавливать пользователей клиентских сертификатов в "группы". Что-то, что вызывало у нас головную боль, поэтому решил, что это стоит передать.:)

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

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