Security and roles

基本的なパッケージのインストールと構成を超えて、 HARPを動作させるにはPostgresの権限が必要です。これらにより、コンセンサスレイヤーでノードステータスを維持するために必要に応じてPostgresまたはBDRに関する情報を収集できます。

Postgresのアクセス許可

次のいずれかの方法で、 node.dsn パラメーターで指定されたロールを作成します。

  • CREATE USER ...

  • CREATE ROLE ... WITH LOGIN

この構文により、ロールはデータベースにログインして診断情報を収集できます。

同様に、このロールのpg_hba.conf にエントリが存在する必要があります。これにはさまざまな方法があります。例として、すべてのデータベースホストが10.10.* のどこかにあるVPNサブネットを考えます。このような場合、最も簡単なアプローチは特定の行を追加することです。

#  TYPE     DATABASE    USER         ADDRESS         METHOD

hostssl    all         harp_user    10.10.1.1/16    scram-sha-256

注釈

この場合、現在非推奨の`md5` ではなく、より新しい`scram-sha-256` 認証を使用しています。 hostssl を指定して、SSL認証を要求することも選択しました。

BDRのアクセス許可

BDRノードには、特定のロールがHARP対応ユーザに付与されている場合にのみ表示されるメタデータとビューがあります。この場合、 HARPユーザーには以下が必要です。

GRANT bdr_monitor TO harp_user;

bdr_monitor BDRロールは、クラスターオペレーションに関する進行中の情報を維持するステータスモニタリングツールを対象としているため、 HARPに最適です。

BDRコンセンサス権限

dcs.driver 構成パラメーターがbdr に設定されている場合、 HARPはBDRをコンセンサスレイヤーとして使用します。そのため、現在 bdr_superuser ロールでのみ使用可能なAPIメソッドへのアクセスが必要です。これは、 HARP対応のユーザーが以下を必要とすることを意味します。

GRANT bdr_superuser TO foobar;

現在、 BDRコンセンサスモデルへのアクセスには、スーパーユーザーと同等の権限が必要です。

重要

BDRスーパーユーザーはPostgresスーパーユーザーではありません。 bdr_superuser ロールには、制限された機能、テーブル、ビュー、その他のオブジェクトへのアクセスなど、 BDRで昇格した権限が付与されるだけです。