Pulsar security overview

As the central message bus for a business, Apache Pulsar is frequently used for storing mission-critical data. Therefore, enabling security features in Pulsar is crucial.

默认情况下,Pulsar 不配置加密、身份验证和授权。 任何客户端都可以通过纯文本 URL 服务向 Apache Pulsar 进行通信。 因此,我们必须确保通过这些纯文本 URL 服务访问 Pulsar 的都是受信任的客户端。 在这种情况下,您可以使用网络分段和 ACL 授权来限制可信 IP 的访问。 如果两者都没启用,那集群就是一个完全开放的状态,任何人都可以访问集群。

Pulsar 支持可插拔的身份认证机制。 Pulsar clients 利用这一机制对 broker 和 proxy 进行认证。 您还可以配置 Pulsar 来支持多种身份认证方式。

Pulsar broker 会在连接建立的时候进行身份认证。 认证通过后会建立连接,在之后的时间内,尽管连接并没有重新验证,主令牌将会被保存起来以便后续的授权。 Broker 会定期检查所有ServerCnx对象是否过期。 你能够通过在 broker 上设置参数authenticationRefreshCheckSeconds 来控制检查过期状态的频率。 默认情况下,authenticationRefreshCheckSeconds的值是60s。 当认证过期后,broker会强制这个连接重新进行身份认证。 如果身份认证失败,broker 将会断开此连接。

Broker 支持自动判断某个客户端是否支持刷新身份认证。 如果客户端支持自动刷新身份认证,当身份认证过期后,提供身份认证的 provider 会调用refreshAuthentication方法来启动这个刷新过程。 如果客户端不支持自动刷新身份认证,当身份认证过期后,broker 将会断开本客户端的连接。

您最好在您的 Apache Pulsar 生产环境中开启对组件的安全防护。

角色标识

In Pulsar, a role is a string, like admin or app1, which can represent a single client or multiple clients. 您可以使用这些角色来控制客户端生产或消费某些特定 topic 的权限,管理租户的配置等。

Apache Pulsar uses a Authentication Provider to establish the identity of a client and then assign a role token to that client. 这个角色标识用于 授权和 ACL ,确定了客户端被授权做什么。

身份验证提供商

当前 Pulsar 支持以下身份验证提供者: