Kubernetes - Open Policy Agent, Gatekeeper and Pod Security Policies



Open Policy Agent (GitHub) предоставляет высокоуровневый декларативный язык для создания и применения политик в вашем облачном стеке технологий.



С помощью OPA можно определить правила, задающие поведение вашей системы. Эти правила существуют для ответа на такие вопросы, как:

- Может ли пользователь X вызвать операцию Y на ресурсе Z?

- В каких кластерах должна быть развернута рабочая нагрузка?

- Какие теги должны быть установлены на ресурсе R перед его созданием?



Например, в случае использования простой авторизации API:

- Вы пишете правила, которые разрешают (или запрещают) доступ к API вашего сервиса.

- Ваш сервис запрашивает OPA, когда получает запросы API.

- OPA возвращает разрешенные (или отклоняющие) решения к вашим услугам.

- Ваша служба обеспечивает выполнение решений, соответственно принимая или отклоняя запросы.



Статья на русском про OPA и SPIFFE от Флант



Gatekeeper - инструмент, позволяющий задавать политики OPA в качестве Custom Resource Definitions (CRDs) и управлять ими как ресурсами Kubernetes. Также есть функционал аудита этих политик.



Использование Gatekeeper в Kubernetes



Настройка Pod Security Policy через OPA:



Kubernetes Pod Security Policies with Open Policy Agent



#k8s #toos #ops #opa