REST API Apache Knox + Ranger 级别授权

REST API Level authorization with Apache Knox + Ranger

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

感谢您的帮助

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

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

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

也就是说,Apache Knox 网关的可扩展性很强,您可以编写自己的授权提供程序或扩展 acls 提供程序来执行您想要的操作。只是不要忘记保护相同资源的其他路径。