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
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
OPA Image Scanner admission controller
OPA Image Scanner совмещает Sysdig Secure image scanner c языком Open Policy Agent, что позволяет задавать более сложные политики для приема образов в кластер, чем просто использование сканирования образов на базе информации о реестре, имени образа и тега. Например, всегда допускать развертывание образов в определенных пространствах имен ("Dev").
Про Sysdig OPA Image Scanner в блоге Sysdig
#tools #k8s #docker #ops #opa
OPA Image Scanner совмещает Sysdig Secure image scanner c языком Open Policy Agent, что позволяет задавать более сложные политики для приема образов в кластер, чем просто использование сканирования образов на базе информации о реестре, имени образа и тега. Например, всегда допускать развертывание образов в определенных пространствах имен ("Dev").
Про Sysdig OPA Image Scanner в блоге Sysdig
#tools #k8s #docker #ops #opa
Securing Your Terraform Pipelines with Conftest, Regula, and OPA
Между тем, использование Open Policy Agent набирает обороты. Сегодня статья про использование OPA в связке с Conftect и Regula для оценки конфигурации Terraform в AWS.
https://dev.to/prince_of_pasta/securing-your-terraform-pipelines-with-conftest-regula-and-opa-4hkh
OPA использует Rego язык для определения политик. К вашему вниманию также бесплатный курс по OPA Policy Authoring.
#tools #terraform #aws #ops #opa
Между тем, использование Open Policy Agent набирает обороты. Сегодня статья про использование OPA в связке с Conftect и Regula для оценки конфигурации Terraform в AWS.
https://dev.to/prince_of_pasta/securing-your-terraform-pipelines-with-conftest-regula-and-opa-4hkh
OPA использует Rego язык для определения политик. К вашему вниманию также бесплатный курс по OPA Policy Authoring.
#tools #terraform #aws #ops #opa
www.openpolicyagent.org
Introduction | Open Policy Agent
The Open Policy Agent (OPA, pronounced "oh-pa") is an open source,
How to enforce Kubernetes network security policies using OPA
Статья на CNCF из серии Open Policy Agent (OPA) про Network Security Policies и усиление мер защиты. В частности, как написать политики OPA на языке Rego
1) Чтобы, нельзя было задеплоить приложение, если сетевая политика не установлена
2) Чтобы сетевая политика удовлетворяла требованиям к приложению (например, подключиться мог только фронтенд)
https://www.cncf.io/blog/2020/09/09/how-to-enforce-kubernetes-network-security-policies-using-opa/
#ops #k8s #opa
Статья на CNCF из серии Open Policy Agent (OPA) про Network Security Policies и усиление мер защиты. В частности, как написать политики OPA на языке Rego
1) Чтобы, нельзя было задеплоить приложение, если сетевая политика не установлена
2) Чтобы сетевая политика удовлетворяла требованиям к приложению (например, подключиться мог только фронтенд)
https://www.cncf.io/blog/2020/09/09/how-to-enforce-kubernetes-network-security-policies-using-opa/
#ops #k8s #opa
5 tips for using the Rego language for Open Policy Agent (OPA)
В продолжении к предыдущему посту, несколько трюков и полезных советов по написанию правил OPA на Rego
https://www.fugue.co/blog/5-tips-for-using-the-rego-language-for-open-policy-agent-opa
#ops #k8s #opa
В продолжении к предыдущему посту, несколько трюков и полезных советов по написанию правил OPA на Rego
https://www.fugue.co/blog/5-tips-for-using-the-rego-language-for-open-policy-agent-opa
#ops #k8s #opa
www.fugue.co
5 tips for using the Rego language for Open Policy Agent (OPA)
At Fugue, we’re pretty fond of OPA, and we’ve written a lot of Rego code to keep cloud resources secure. In this post, we’ve put together the most valuable lessons we’ve learned in the process.
Enforce Ingress Best Practices Using OPA
До этого я поделился статьей от CNCF о том, как усилить Network Policy через OPA. В этот раз небольшая статья про решение коллизий на разных Ingress'ах через OPA. Например, у вас один и тот же хост есть на нескольких разных Ingress, что создает коллизию в маршрутизации трафика через Ingreess-controller. Такое бывает по мере роста ресурсов Ingress. OPA позволяет определить политику, которая не даст создавать ресурсы, образовав коллизию.
https://www.cncf.io/blog/2020/09/29/enforce-ingress-best-practices-using-opa/
Если вы все еще говорите про себя "Да кто такой этот ваш OPA", то я нашел еще одну прекрасную статью:
Fitness Validation For Your Kubernetes Apps: Policy As Code
#k8s #ops #opa
До этого я поделился статьей от CNCF о том, как усилить Network Policy через OPA. В этот раз небольшая статья про решение коллизий на разных Ingress'ах через OPA. Например, у вас один и тот же хост есть на нескольких разных Ingress, что создает коллизию в маршрутизации трафика через Ingreess-controller. Такое бывает по мере роста ресурсов Ingress. OPA позволяет определить политику, которая не даст создавать ресурсы, образовав коллизию.
https://www.cncf.io/blog/2020/09/29/enforce-ingress-best-practices-using-opa/
Если вы все еще говорите про себя "Да кто такой этот ваш OPA", то я нашел еще одну прекрасную статью:
Fitness Validation For Your Kubernetes Apps: Policy As Code
#k8s #ops #opa
Static analysis by OPA - Dockerfiles
Уже ни для кого не секрет, что неправильное формирование Dockerfile может являться серьезной проблемой в безопасности приложений. Как правило, для решения данной проблемы все используют Hadolint для статического сканирования Docker-файлов.
В этом посте я предлагаю вам взглянуть на детектирование проблем с помощью Conftest - инструмента для выполнения статического анализа конфигурационных файлов (YAML, JSON, XML, Dockerfile, HCL и многое другое). Что самое интересное в нем, так это то, что правила для Conftest пишутся на языке Rego. Это позволяет стать на шаг ближе к унифицированному подходу контроля за средой с помощью Open Policy Agent, о котором я писал ранее, и не городить кучу инструментов. Вот статья, в которой описано применение Conftest для проверки Dockerfile с помощью кастомных рулов.
#docker #ops #dev #opa
Уже ни для кого не секрет, что неправильное формирование Dockerfile может являться серьезной проблемой в безопасности приложений. Как правило, для решения данной проблемы все используют Hadolint для статического сканирования Docker-файлов.
В этом посте я предлагаю вам взглянуть на детектирование проблем с помощью Conftest - инструмента для выполнения статического анализа конфигурационных файлов (YAML, JSON, XML, Dockerfile, HCL и многое другое). Что самое интересное в нем, так это то, что правила для Conftest пишутся на языке Rego. Это позволяет стать на шаг ближе к унифицированному подходу контроля за средой с помощью Open Policy Agent, о котором я писал ранее, и не городить кучу инструментов. Вот статья, в которой описано применение Conftest для проверки Dockerfile с помощью кастомных рулов.
#docker #ops #dev #opa
GitHub
GitHub - hadolint/hadolint: Dockerfile linter, validate inline bash, written in Haskell
Dockerfile linter, validate inline bash, written in Haskell - hadolint/hadolint
Semgrep for Cloud Security
Semgrep - инструмент статического анализа кода и всевозможных конфигурационных файлов. Он позволяет задавать паттерны, согласно которым будет осуществляться поиск той или иной конструкции в файле. В частности, учитывать одновременно сразу несколько конструкций для сокращения ложных срабатываний. На практике при анализе исходных кодов semgrep выдает все же достаточно много фолзов, уступая более умным инструментам вроде codeql.
Другое, отличное на мой взгляд, применение semgrep - terraform и kubernetes. В сравнении с OPA Conftest semgrep обладает более доступным языком описания запросов. Вот пример того, как могли бы выглядеть правила. Часть некоторых правил, с которых можно было бы начать, уже можно найти в репо semgrep-rules. Еще у semgrep есть удобный веб-интерфейс для тестирования правил.
#k8s #terraform #sast #ops #opa
Semgrep - инструмент статического анализа кода и всевозможных конфигурационных файлов. Он позволяет задавать паттерны, согласно которым будет осуществляться поиск той или иной конструкции в файле. В частности, учитывать одновременно сразу несколько конструкций для сокращения ложных срабатываний. На практике при анализе исходных кодов semgrep выдает все же достаточно много фолзов, уступая более умным инструментам вроде codeql.
Другое, отличное на мой взгляд, применение semgrep - terraform и kubernetes. В сравнении с OPA Conftest semgrep обладает более доступным языком описания запросов. Вот пример того, как могли бы выглядеть правила. Часть некоторых правил, с которых можно было бы начать, уже можно найти в репо semgrep-rules. Еще у semgrep есть удобный веб-интерфейс для тестирования правил.
#k8s #terraform #sast #ops #opa
Security: KubeCon + CloudNativeCon North America 2020 - Virtual
Все сильнее ощущается конец года - интересных анонсов и ресерчей все меньше, поэтому предлагаю взглянуть на доклады последнего Kubecon по части безопасности.
- Using Open Policy Agent to Meet Evolving Policy Requirements - доклад о том, что такое OPA, как работает и какие правила вообще можно написать
- DevOps All the Things: Creating a Pipeline to Validate Your OPA Policies - доклад про выстраивание модульного и интеграционного тестирования политик OPA
- Customizing OPA for a "Perfect Fit" Authorization Sidecar - о том, как можно использовать API Golang OPA для собственных нужд и кастомизации
- Также Aqua Security еще раз рассказала свой доклад Handling Container Vulnerabilities with Open Policy Agent о том, как можно интегрировать Trivy и OPA вместе в виде операторов k8s.
К сожалению, выложили далеко не все доклады. В частности, нет доклада Secure Policy Distribution With OPA. Автор этого доклада также известен своим другим крутым докладом Open Policy Agent Deep Dive.
- Кроме OPA затрагивали также тему mTLS и потенциальных подводных камней - PKI the Wrong Way: Simple TLS Mistakes and Surprising Consequences
- Не забыли и про Falco. Интересно, что на Kubecon был доклад про масштабирование Falco на 100к контейнеров (Security Kill Chain Stages in a 100k+ Daily Container Environment with Falco) и обход правил Falco инженером из Sysdig 🤷♂️ (Bypass Falco)
Программа конференции
Другие доклады
#dev #ops #k8s #talks #opa
Все сильнее ощущается конец года - интересных анонсов и ресерчей все меньше, поэтому предлагаю взглянуть на доклады последнего Kubecon по части безопасности.
- Using Open Policy Agent to Meet Evolving Policy Requirements - доклад о том, что такое OPA, как работает и какие правила вообще можно написать
- DevOps All the Things: Creating a Pipeline to Validate Your OPA Policies - доклад про выстраивание модульного и интеграционного тестирования политик OPA
- Customizing OPA for a "Perfect Fit" Authorization Sidecar - о том, как можно использовать API Golang OPA для собственных нужд и кастомизации
- Также Aqua Security еще раз рассказала свой доклад Handling Container Vulnerabilities with Open Policy Agent о том, как можно интегрировать Trivy и OPA вместе в виде операторов k8s.
К сожалению, выложили далеко не все доклады. В частности, нет доклада Secure Policy Distribution With OPA. Автор этого доклада также известен своим другим крутым докладом Open Policy Agent Deep Dive.
- Кроме OPA затрагивали также тему mTLS и потенциальных подводных камней - PKI the Wrong Way: Simple TLS Mistakes and Surprising Consequences
- Не забыли и про Falco. Интересно, что на Kubecon был доклад про масштабирование Falco на 100к контейнеров (Security Kill Chain Stages in a 100k+ Daily Container Environment with Falco) и обход правил Falco инженером из Sysdig 🤷♂️ (Bypass Falco)
Программа конференции
Другие доклады
#dev #ops #k8s #talks #opa
YouTube
Using Open Policy Agent to Meet Evolving Policy Requirements - Jeremy Rickard, VMware
Don’t miss out! Join us at our upcoming event: KubeCon + CloudNativeCon Europe 2021 Virtual from May 4–7, 2021. Learn more at https://kubecon.io. The conference features presentations from developers and end users of Kubernetes, Prometheus, Envoy, and all…
Declarative Authorisation Service (DAS)
На последнем KubeCon NA 2020 компания Styra, куда входят разработчики OPA, релизнули бесплатную версию DAS (Declarative Authorisation Service). Это сервис, который может бесплатно помочь небольшим командам (до 10 нод) внедрить OPA себе в инфраструктуру. Сервис предоставляет удобный редактор правил Rego с возможностью валидации, инструмент мониторинга действий в кластере и срабатываний AdmissionController, встроенный пак собственных правил.
Подробнее:
https://www.infracloud.io/blogs/opa-the-easy-way-featuring-styra-das/
А еще у Styra есть бесплатный небольшой курс по OPA.
#k8s #ops #opa
На последнем KubeCon NA 2020 компания Styra, куда входят разработчики OPA, релизнули бесплатную версию DAS (Declarative Authorisation Service). Это сервис, который может бесплатно помочь небольшим командам (до 10 нод) внедрить OPA себе в инфраструктуру. Сервис предоставляет удобный редактор правил Rego с возможностью валидации, инструмент мониторинга действий в кластере и срабатываний AdmissionController, встроенный пак собственных правил.
Подробнее:
https://www.infracloud.io/blogs/opa-the-easy-way-featuring-styra-das/
А еще у Styra есть бесплатный небольшой курс по OPA.
#k8s #ops #opa
Styra
Homepage
Enable developers, IAM engineers, and business users to enforce sophisticated permissions and operationalize Zero Trust using policy-based access control from the creators of Open Policy Agent.
"Враг не пройдёт, или как помочь командам соблюдать стандарты разработки"
Разбор доклада от Александра Токарева про Open Policy Agent на русском языке - что это, примеры проверок манифестов k8s и конфигурации сборок, способы интеграции OPA, use cases и немного про архитектуру OPA в Сбере.
https://habr.com/ru/company/oleg-bunin/blog/328262/
Для тех, кто заинтересовался инструментом, гораздо больше за хэштегом #opa
Сейчас, кстати, стало популярно относить все security практики к каким-то вехам DevSecOps. Open Policy Agent не исключение, поэтому часто можно услышать, что технология относится к Compliance as Code. Сюда же относится Chef InSpec, HashiCorp Santinel и, по сути, любой другой сканер. Подробнее про другие инструменты можно найти по ссылке.
#ops #dev
Разбор доклада от Александра Токарева про Open Policy Agent на русском языке - что это, примеры проверок манифестов k8s и конфигурации сборок, способы интеграции OPA, use cases и немного про архитектуру OPA в Сбере.
https://habr.com/ru/company/oleg-bunin/blog/328262/
Для тех, кто заинтересовался инструментом, гораздо больше за хэштегом #opa
Сейчас, кстати, стало популярно относить все security практики к каким-то вехам DevSecOps. Open Policy Agent не исключение, поэтому часто можно услышать, что технология относится к Compliance as Code. Сюда же относится Chef InSpec, HashiCorp Santinel и, по сути, любой другой сканер. Подробнее про другие инструменты можно найти по ссылке.
#ops #dev
Хабр
Враг не пройдёт, или как помочь командам соблюдать стандарты разработки
Подход governance as a code обеспечивает контроль соблюдения архитектурных принципов как в части конфигураций инфраструктуры, так и в части программного кода. Правила проверки каждого артефакта, будь...
Kics - Secure IaC by Checkmarx (with OPA engine)
Checkmarx выпустили open-source инструмент Kics - сканер IaC (Terraform, Kubernetes, Dockerfile, Ansible, CloudFormation, Helm) на предмет мисконфигураций. Работает на базе правил Rego и умеет выдавать результат в JSON и красивых HTML. Правила все находятся в репо и дописываются, пока я пишу текст к этому посту. В общем выглядит очень интересно.
Если кто хочет послушать про это вебинар 15 апреля от самих Checkmarx, то ссылка вот. Спасибо подписчикам!
Если вам интересны еще подобные проекты, то оказывается, существует отдельный Awesome под OPA - интеграции, статьи, тренинги, коммерческие обвязки.
#opa #dev #ops
Checkmarx выпустили open-source инструмент Kics - сканер IaC (Terraform, Kubernetes, Dockerfile, Ansible, CloudFormation, Helm) на предмет мисконфигураций. Работает на базе правил Rego и умеет выдавать результат в JSON и красивых HTML. Правила все находятся в репо и дописываются, пока я пишу текст к этому посту. В общем выглядит очень интересно.
Если кто хочет послушать про это вебинар 15 апреля от самих Checkmarx, то ссылка вот. Спасибо подписчикам!
Если вам интересны еще подобные проекты, то оказывается, существует отдельный Awesome под OPA - интеграции, статьи, тренинги, коммерческие обвязки.
#opa #dev #ops
Authorizing Microservice APIs With OPA and Kuma
До этого я писал про OPA только в контексте контроля запросов на API кластера с целью их ограничения. В этот раз предлагаю ознакомиться с материалом по применению OPA как способ микросервисной авторизации для реализации Zero Trust Network.
Authorizing Microservice APIs With OPA and Kuma
В данном случае речь именно об интеграции с service mesh Kuma, но это также может быть и Istio. Каждый раз, когда поступает новый внешний запрос, Kuma отправляет запрос авторизации на OPA. В статье также упоминается Styra DAS как инструмент централизованного управления политиками OPA.
Если вам интересно узнать чуть больше про Kuma и Zero Trust, то вот небольшая статья. У разработчиков Kuma есть также демо интеграции enterpise версии service mesh Kong Mesh с OPA.
#opa #ops #k8s
До этого я писал про OPA только в контексте контроля запросов на API кластера с целью их ограничения. В этот раз предлагаю ознакомиться с материалом по применению OPA как способ микросервисной авторизации для реализации Zero Trust Network.
Authorizing Microservice APIs With OPA and Kuma
В данном случае речь именно об интеграции с service mesh Kuma, но это также может быть и Istio. Каждый раз, когда поступает новый внешний запрос, Kuma отправляет запрос авторизации на OPA. В статье также упоминается Styra DAS как инструмент централизованного управления политиками OPA.
Если вам интересно узнать чуть больше про Kuma и Zero Trust, то вот небольшая статья. У разработчиков Kuma есть также демо интеграции enterpise версии service mesh Kong Mesh с OPA.
#opa #ops #k8s
Ensure Content Trust on Kubernetes using Notary and Open Policy Agent
Реализация проверки подписи образа через OPA при деплое в Kubernetes с помощью интеграции с Notary-сервисом.
В рамках CI сборки формируется подпись к образу с помощью Notary сервиса. При формировании подписи, ее значение сохраняется в БД. Каждый раз, когда происходит попытка деплоя нового ворклоада, OPA с помощью
Так как работа происходит с OPA, в данной схеме есть возможность применить и
Про альтернативные способы формирования Content Trust я писал ранее.
#opa #k8s #dev #ops
Реализация проверки подписи образа через OPA при деплое в Kubernetes с помощью интеграции с Notary-сервисом.
В рамках CI сборки формируется подпись к образу с помощью Notary сервиса. При формировании подписи, ее значение сохраняется в БД. Каждый раз, когда происходит попытка деплоя нового ворклоада, OPA с помощью
ValidatingAdmissionWebhook
проверяет наличие подписи (digest
) к образу и идёт с ним в Notary, чтобы убедиться, что подпись была сформирована именно им. В случае, если образ был подменен злоумышленником или изменен за пределами security-проверок в CI, образ развернут быть не сможет.Так как работа происходит с OPA, в данной схеме есть возможность применить и
MutatingAdmissionWebhook
. Например, прикреплять digest
, если он отсутствует, но подпись для данного образа уже была сформирована и хранится в Notary.Про альтернативные способы формирования Content Trust я писал ранее.
#opa #k8s #dev #ops