opa-koans

koans for OPA

opa-koans

opa-koans

OPA入门系列

OPA(OpenPolicyAgent), 云原生时代的通用规则引擎,重新定义策略引擎,灵活而强大的声明式语言全面支持通用策略定义。

而且,2019年4月2号OPA正式进入了CNCF,作为孵化级托管项目,详见声明

什么是OPA

see in OPA philosophy docs

关键词:

opa

文字太直白,看看OPA作者怎么说:

优点

配合强大的声明式策略语言Rego,描述任意规则都不是问题

如图

除了继承做auth外,还可以应用到k8s,terraform,docker,kafka,sql,linux上做规则决策

安装

为了性能,推荐使用最新 OPA latest release

# mac
curl -L -o opa https://openpolicyagent.org/downloads/latest/opa_darwin_amd64
chmod +x opa
mv opa /usr/local/bin/opa

# or use brew(not latest version)
brew install opa

入门

一个RBAC例子

几行代码实现一个简单的RBAC认证服务: example_rbac

cd quick-start
opa eval -i input.json -d data.json -d example.rego "data.example_rbac"

如何优雅的开发

语法进阶

实战

可扩展的Entitlements api demo: 可扩展的rules data + entitlemnts policy

文档一点点完善中。。。