【问题标题】:REST API Level authorization with Apache Knox + Ranger使用 Apache Knox + Ranger 进行 REST API 级别授权
【发布时间】:2021-03-02 18:55:14
【问题描述】:

我正在 django REST 框架中开发一个服务器应用程序,该框架又使用 apache knox REST API 来处理 spark 会话(创建会话、获取会话、取消会话......)。 Apache Knox 支持服务级别授权,但我需要 API 级别授权来授权用户是否有权调用给定的 REST API。有人建议我使用 Apache Ranger,但它不支持 REST API 授权。有没有办法让 Knox 和 Ranger 一起工作以实现 REST API 级别授权?

感谢您的帮助

【问题讨论】:

    标签: apache-ranger apache-knox


    【解决方案1】:

    REST API 授权可能不是您想要的——尽管它可以很容易地映射到它。这里的设计是一种分层的安全方法。网关在边缘提供服务级别授权。更细粒度的授权应该在资源本身或更靠近资源本身可用。 Ranger 插件存在于整个生态系统中,无论资源路径如何,都可以执行相同的策略。考虑到 Knox 网关只是访问代理资源的一种方式,并且在集群中可以直接访问相同的资源,这表明在网关处强制执行是不够的。但是,如果外部参与者根本无法访问服务,您可以通过更细粒度的权限检查来限制外部参与者对系统内的资源征税。

    也就是说,Apache Knox 网关是非常可扩展的,您可以编写自己的授权提供程序或扩展 acls 提供程序来做您想做的事情。只是不要忘记保护通向相同资源的其他路径。

    【讨论】:

      【解决方案2】:

      目前 Apache Ranger 不支持 spark 授权。您现在必须依赖 spark ACL。

      但是,有一个为 spark sql 提出的feature request,因此将来您可以将其用于其他 spark sql 操作,但对于创建、获取、取消等操作,您必须依赖 spark ACL

      【讨论】:

      • 感谢@rikamamanus 的回答。我可以设法改进 KNOX 的 Ranger 插件,以便能够对 REST API 进行方法级授权。
      猜你喜欢
      • 2021-03-06
      • 2022-01-06
      • 1970-01-01
      • 2018-07-30
      • 2014-05-09
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多