OPA Gatekeeper
|
OPA Gatekeeper is deprecated and will be removed in a future release. As a replacement for OPA Gatekeeper, consider switching to Kubewarden. |
为了确保一致性和合规性,每个组织都需要能够以自动化的方式在环境中定义和执行策略。OPA(Open Policy Agent) 是一个策略引擎,用于基于策略控制云原生环境。Rancher 支持在 Kubernetes 集群中启用 OPA Gatekeeper,并且还安装了一些内置的策略定义(也称为约束模板)。
OPA 提供了一种高级声明性语言,可以让你将策略指定为代码,还能扩展简单的 API,从而减轻策略决策的负担。
OPA Gatekeeper 是一个提供 OPA 和 Kubernetes 集成的项目。OPA Gatekeeper 提供:
-
一个可扩展的参数化策略库。
-
用于实例化策略库的原生 Kubernetes CRD,也称为"`约束`"。
-
用于扩展策略库的原生 Kubernetes CRD,也称为"`约束模板`"。
-
审计功能。
要了解更多关于 OPA 的信息,请参阅官方文档。
OPA Gatekeeper 集成的工作原理
Kubernetes 支持通过准入控制器(准入控制器)webhook 来扩展 API Server 的功能,创建、更新或删除资源时都会调用这些 webhook。Gatekeeper 作为验证 webhook 安装,并执行由 Kubernetes CRD(Custom Resource Definition)定义的策略。除了使用准入控制之外,Gatekeeper 还能审计 Kubernetes 集群中的现有资源,并对违反当前策略的情况进行标记。
OPA Gatekeeper 由 Rancher 的 Helm system Chart 提供,它安装在名为 gatekeeper-system 的命名空间中。
在集群中启用 OPA Gatekeeper
|
Rancher 2.5 改进了 OPA Gatekeeper 应用。无法从 Rancher 2.4 升级到 Rancher 2.5 中的新版本。如果你在 Rancher 2.4 中安装了 OPA Gatekeeper,则需要在旧 UI 中卸载 OPA Gatekeeper 及其 CRD,然后在 Rancher 2.5 中重新安装它。如需卸载 CRD,请在 kubectl 控制台中运行 |
|
先决条件:
只有管理员和集群所有者才能启用 OPA Gatekeeper。 |
你可以在 Apps 页面安装 OPA Gatekeeper Helm Chart。
创建和配置约束
约束是 Kubernetes 自定义资源,用于定义要应用约束模板的对象范围。约束模板和约束共同定义一个完整的策略。
|
先决条件:
集群中已启用 OPA Gatekeeper。 |
要列出已安装的约束,请转到 OPA Gatekeeper 下的左侧菜单,然后单击约束。
可以从约束模板创建新的约束。
Rancher 支持通过使用方便的表单来创建约束,你可以在该表单中输入各种约束字段。
以 YAML 文件编辑选项也可以用于配置约束的 YAML 定义。
在集群中实施约束
如果执行动作为 Deny,约束会立即启用,并拒绝任何违反策略的请求。默认情况下,执行的值为 Deny。
如果执行动作 为 Dryrun,违反策略的资源仅会记录在约束的状态字段中。
要强制执行约束,请使用表单创建约束。在执行动作字段中,选择 Deny。