opa README

The project's README from github.com/open-policy-agent/opa. As one markdown file: README.md.

logo Open Policy Agent

Build Status CII Best Practices Netlify Status

Open Policy Agent (OPA) is an open source, general-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack.

OPA is proud to be a graduated project in the Cloud Native Computing Foundation (CNCF) landscape. For details read the CNCF announcement.

Get started with OPA

Want to talk about OPA or get support?

Interested to learn what others are doing with OPA?

Want to integrate OPA?

Want to contribute to OPA?

How does OPA work?

OPA gives you a high-level declarative language to author and enforce policies across your stack.

With OPA, you define rules that govern how your system should behave. These rules exist to answer questions like:

You integrate services with OPA so that these kinds of policy decisions do not have to be hardcoded in your service. Services integrate with OPA by executing queries when policy decisions are needed.

When you query OPA for a policy decision, OPA evaluates the rules and data (which you give it) to produce an answer. The policy decision is sent back as the result of the query.

For example, in a simple API authorization use case:

For concrete examples of how to integrate OPA with systems like Kubernetes, Terraform, Docker, SSH, and more, see openpolicyagent.org.

Presentations

Security

A third party security audit was performed by Cure53, you can see the full report here.

Please report vulnerabilities by email to open-policy-agent-security. We will send a confirmation message to acknowledge that we have received the report and then we will send additional messages to follow up once the issue has been investigated.

opa (open-policy-agent/opa)

Searching Database…

12.4K ·GitHub
Что это?OPA (Open Policy Agent) — это открытый движок политик общего назначения, который позволяет единообразно применять политики — например, «может ли пользователь X выполнить действие Y над ресурсом Z?» — во всей вашей инфраструктуре с помощью декларативного языка политик Rego.
Это библиотека, которую я встраиваю, или отдельный сервер, к которому я обращаюсь?И то, и другое: OPA можно запустить как отдельный CLI/сервер, к которому ваши сервисы обращаются через REST API, или встроить напрямую через Go SDK/API, если ваш сервис написан на Go.
Как мне начать работу с OPA?Попробуйте Rego в браузере в Rego Playground, установите расширение для VS Code для локального редактирования или следуйте документации 'Running OPA', чтобы запустить CLI; образы контейнеров есть на Docker Hub, бинарные файлы — в релизах на GitHub.
Мне нужно писать собственные правила или в комплекте есть готовые встроенные политики?Правила вы пишете сами на Rego и предоставляете данные; в OPA нет встроенной логики политик «из коробки».
С какой ловушкой интеграции мне стоит ожидать столкнуться?OPA ничего не применяет автоматически: ваш сервис нужно доработать так, чтобы он запрашивал OPA и затем действовал в соответствии с решением «разрешить/запретить», которое тот возвращает. Это значит, что для каждой системы (Kubernetes, Terraform, Docker, SSH и т. д.) интеграцию нужно делать самостоятельно.
Кто обычно это использует?Инженеры платформ и безопасности, которые внедряют средства авторизации и контроля соответствия требованиям в облачно-нативные системы; это проект CNCF на стадии graduated, который используют в продакшене многие организации.
OPA привязан к Kubernetes или его можно использовать где угодно?OPA — инструмент общего назначения, он интегрируется со многими системами помимо Kubernetes, включая Terraform, Docker и SSH.
Что такое Rego?Rego — это высокоуровневый декларативный язык политик OPA, на котором пишутся правила, по которым OPA принимает решения «разрешить/запретить».
Проходил ли OPA аудит безопасности?Да, аудит безопасности провела сторонняя компания Cure53, полный отчёт опубликован; сообщить об уязвимостях можно по электронной почте команде безопасности OPA.
Какие вопросы помогает решать OPA?Вопросы о политиках: может ли пользователь вызвать определённую операцию над ресурсом, в какие кластеры должна развёртываться нагрузка или какие теги обязательны у ресурса перед его созданием.
Size
3.5 GB
Stars
12.4K
Age
10y
Commits · 90 Days