Kuberenetes + Casbin 权限插件: K8s-Gatekeeper - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Casbin
V2EX    Kubernetes

Kuberenetes + Casbin 权限插件: K8s-Gatekeeper

  •  
  •   Casbin
    PRO
    2022-08-15 10:35:22 +08:00 6722 次点击
    这是一个创建于 1151 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 具有以下优点:

    • 简单易用,写几行 ACL 总比写一堆代码来实现要省事得多
    • 允许配置热更新。如果用编写代码实现 Admission Webhook 准入控制,每次规则变更你必须重新上线一个新的 Webhook ;而使用 K8s-Gatekeeper 则没有上述烦恼,只需一到两条 kubectl 命令,准入规则即可热更新
    • Casbin K8s-Gatekeeper 十分灵活强大,规则可以任意制定,凡是可以从 kubectl get 看到的某种 K8s 资源的属性,都可以作为 ACL 准入规则使用的属性
    • 从上层屏蔽了复杂的 K8s Admission Webhook 实现;相比于编写代码实现功能,你甚至不需要真正了解 K8s Admission Webhook 是什么,如何工作,怎么配置,只需要知道 Casbin K8s-Gatekeeper 可以实现对 K8s 资源的增删改查操作的准入和拦截,并编写 Casbin ACL ,即可完成你的目标。全世界都知道 K8s 复杂难学,使用 Casbin K8s-Gatekeeper 你就不用花时间学那么多了
    • 有人维护。Casbin K8s-Gatekeeper 由 Casbin 社区开发与维护,搞不懂的可以在 Github, QQ 联系我们,会有人为您解答疑问

    联系我们

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

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


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

    当然了,置顶旧贴是你的自由,反正“从普通阅读者的角度去看待与感受”并不是发帖者的义务
    sampeng
        5
    sampeng  
       119 天前
    天天在这污染视线。认真做产品不好吗?标记推广不行吗?真的越做越臃肿。。干脆自己写了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2825 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 13:35 PVG 21:35 LAX 06:35 JFK 09:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86