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コンセンサスモデルへのアクセスはスーパーユーザ同等のパーミッションを必要とします。
重要
BDRスーパーユーザーはPostgresスーパーユーザーではありません*。 `bdr_superuser`ロールには、制限された機能、テーブル、ビュー、およびその他のオブジェクトへのアクセスなど、 BDR内での昇格された特権が付与されるだけ自分自身。