Kuberenetes + Casbin 权限插件: K8s-Gatekeeper

2022-08-15 10:35:22 +08:00
 Casbin

Casbin K8s-Gatekeeper

Casbin K8s-Gatekeeper 是一个集成了 Casbin 作为访问控制工具的 Kubernetes Admission Webhook. 使用 Casbin K8s-Gatekeeper 可以在不编写任何代码,只使用数行 Casbin 的 ACL(Access Control List)语言编写 model 和 policy ,即可建立灵活的规则,实现对 K8s 资源的增删改查操作的准入和拦截。Casbin K8s-Gatekeeper 由 Casbin 社区开发与维护,项目传送门https://github.com/casbin/k8s-gatekeeper

Casbin 是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。Casbin ACL 的编写十分简单易懂,请访问https://casbin.org/docs/en/overview获取更多信息。Casbin 已经成为 Golang ACL 模型事实上的标准。Casbin K8s-Gatekeeper 使用的 ACL 模型便是 Casbin 。

一个简单的示例

例如,您无需编写任何代码,只需以下几行 Casbin ACL 语言即可实现不允许使用带特定 tag 的镜像创建 pod

Model:

[request_definition]
r =  obj

[policy_definition]
p =  obj,eft

[policy_effect]
e = !some(where (p.eft == deny))

[matchers]
m = r.obj.Request.Namespace == "default" && r.obj.Request.Resource.Resource =="deployments" && \
contain(split(accessWithWildcard(${OBJECT}.Spec.Template.Spec.Containers , "*", "Image"),":",1) , p.obj)

Policy:

p, "1.14.1",deny

上面的 Casbin Model&Policy 看起来似乎晦涩难懂,实际十分简单易学,10min 内即可快速上手。教程在这里https://casbin.org/docs/en/syntax-for-models

为什么使用 Casbin K8s-Gatekeeper

Casbin K8s-Gatekeeper 具有以下优点:

联系我们

4818 次点击
所在节点    Kubernetes
4 条回复
scyuns
2022-08-17 11:32:53 +08:00
是不是有了这个 就不需要用户中心了
a728976009
2022-10-12 11:15:17 +08:00
有跟 OPA 的 Gatekeeper 的比较么
yimiaoxiehou
2023-08-02 11:57:29 +08:00
通过 Casbin 维护 k8s rbac 么
cnbatch
2023-08-02 14:34:58 +08:00
置顶旧贴真是没意思,至少毫无新鲜感,反正我一看日期这么旧就直接翻评论区

正文?既然是旧贴,懒得看


说真的,如果是想增加曝光度(从我这普通阅读者的角度来看),起码置顶个 7 天内的新帖,最好是 3 天内的,效果会好很多,因为不会有什么违和感,还会让人有一种“这个项目没死,不用炒冷饭,大家看,又有新 Update 新 feature 啦”的感觉

当然了,置顶旧贴是你的自由,反正“从普通阅读者的角度去看待与感受”并不是发帖者的义务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX