Pulsarにおいて、認証プロバイダは特定のクライアントを識別しロールトークンと関連付けます。
ロールは単一または複数のクライアントを表す文字列で、
これらのクライアントは、特定のトピックに対してproduceまたはconsumeを行う権限、または特定のプロパティの設定を管理する権限が付与されます。
Pulsarのプロパティはテナントを示す識別子で、一般的にPulsarインスタンスの管理者またはセルフサービスのポータルなどによって提供されます。
$ bin/pulsar-admin properties create my-property \ --admin-roles my-admin-role \ --allowed-clusters us-west,us-east
このコマンドはクラスタus-west
とus-east
を利用可能な新規プロパティmy-property
を作成します。
ロールmy-admin-role
と識別されたクライアントは、このプロパティ上での全ての管理操作が許可されます。
プロパティ管理者は指定されたクラスタ内に複数ネームスペースを作成できます。
$ bin/pulsar-admin namespaces create my-property/us-west/my-namespace
作成後、このネームスペースの利用権限の付与ができます:
$ bin/pulsar-admin namespaces grant-permission \ my-property/us-west/my-namespace \ --role my-client-role \ --actions produce,consume
コマンド実行後、ロールmy-client-role
と識別されたクライアントは指定されたネームスペースのトピックを利用可能になります。
Pulsarでは、システムのスーパーユーザを特定のロールに割り当てることができます。
スーパーユーザは全てのプロパティとネームスペースに対する全ての管理操作、および全てのトピックに対する発行と購読が許可されます。
スーパーユーザはBrokerの設定ファイルconf/broker.conf
で設定されます:
superUserRoles=my-super-user-1,my-super-user-2
一般的に、スーパーユーザロールはadminクライアントやBroker間の認可で利用されます。
ジオレプリケーションにおいては、各Brokerが他クラスタのトピックに発行できる必要があります。