在当前的网络时代,由于应用程序变得越来越复杂,IT基础架构变得越来越分布式,企业安全性变得越来越重要。由于这样的原因,Open Policy Agent(OPA)正在变得越来越受欢迎,它是一种开源的安全和可扩展性环境,可在整个 IT 基础架构上实施政策。OPA的规则可以审计和强制执行,帮助保证基础架构的完整性和安全性。本文将介绍如何将OPA策略转换为独立的命令行工具。
1. 安装Nix
一些作者推荐使用Nix包管理器,因为Nix可确保您的工具链在整个项目中具有相同的依赖和版本号。通过命令行工具安装它并激活它。
2. 安装opa
“`
$ nix-env -i opa
“`
3. 获取opa policy并转成可执行文件
让我们在目录下创建一个名为“opa”的文件夹,并将生成的策略保存在其中。它将返回一个名为“opa-wasm”的文件。使用命令chmod +x opa-wasm来使得它具有可执行的权利。
“`
$ mkdir opa && cd opa
$ opa build -o opa-wasm my/awesome/policy
$ chmod +x opa-wasm
“`
4. 命令行工具
让我们与我的OPA政策建立交互式终端(REPL)。
“`
$ opa run -w -B my/awesome/policy
“`
这将彼此连接,您可以开始与政策进行交互。在显示交互式窗口时,您可以像下面的示例那样与OPA进行交互
“`
> data
{
“users”: [
{
“id”: “alice”,
“groups”: [“engineering”]
},
{
“id”: “bob”,
“groups”: [“support”]
},
{
“id”: “charlie”,
“groups”: [“engineering”,”support”]
}
]
}
> allow {
user_id=”alice”
group=data.users[_].groups[_]
} else = false
> alice
“`
> data
{
“users”: [
{
“id”: “alice”,
“groups”: [“engineering”]
},
{
“id”: “bob”,
“groups”: [“support”]
},
{
“id”: “charlie”,
“groups”: [“engineering”,”support”]
}
]
}
> 允许 导致=user_id=”alice” 组=data.users[_].groups[_] 否则=假
> 爱丽丝
5. 最终步骤
最后一步是将独立的命令行工具转化为容易使用的命令行应用程序,例如将其与系统环境变量一起使用。
“`
$ mv opa-wasm /usr/local/bin/opa
$ export OPA_DATA=my/awesome/policy
$ echo ‘opa –ignore=.* list -r ./ | opa -i input.json ../main.rego’ > verify
$ chmod +x verify
“`
如果一切运转良好,您现在可以从控制台以及Web UI中调用您的可执行文件,这使得您的业务和安全利益能够很好的保证。
结论
通过Nix包管理器,我们的Open Policy Agent策略已经变成了一个独立的命令行工具,可以方便地在 Web UI 中使用,并且可以由任何人使用。在这里详细介绍给您的是一个非常精简的过程,但是对于任何需要将它们的OPA政策添加到他们的Web应用程序中的企业而言,该过程是专门为他们而设计的。
了解更多有趣的事情:https://blog.ds3783.com/