Pg_basebackup password in postgresql.auto.conf

wenn ich meine Slave Node mit pg_basebackup erstelle

export PGPASSWORD={{ vault_postgresql_rep_user_password }} && /usr/pgsql-14/bin/pg_basebackup -h {{ groups['pgmaster'][0] }} -U rep_user -D /var/lib/pgsql/14/data -P -R -Xs

landet mein Kennwort unverschlüsselt in postgresql.auto.conf

Gibt es eine Möglichkeit einen Slave einzurichten (und aktuell zu halten), ohne dass ich das PW plaintext auf der Platte habe?

du könntest es in .pgpass hinterlegen - allerdings auch dort im Klartext.

Verwende eine andere Authentisierungsmethode:

  • trust wäre “fast and loose”: einfach kein Paßwort verlangen.
    Das ist vielleicht akzeptabel, wenn man dem Standby unbedingt vertrauen kann.
  • cert ist eine einfache und angenehme Methode: man muß ssl aktivieren, auf dem Server ein signiertes Zertifikat, einen Private Key hinterlegen und ein CA-File hinterlegen, und der Client muß via sslcert und sslkey ein Client-Zertifikat mit Private Key haben, das von einer vom Server anerkannten Autorität signiert ist und dessen Common Name dem Datenbankuser entspricht. Solche Zertifikate kann man sich auch selber schnitzen, wenn das den Ansprüchen genügt. Statt eines Paßwortes ist es der Besitz des Private Key Files, der den Client authentisiert.
2 „Gefällt mir“

habe mich erstmal für trust entschieden, vielen Dank.

bzgl cert: ich glaube das würde bei mir nicht gehen. der rep_user ist ein DB Benutzer. Auf OS Ebene nicht bekannt…damit dieser Vorschlag funktionieren würde, müsste ich den rep_user auch auf dem OS anlegen, richtig?

Nein, dafür braucht man keinen Betriebssystem-User, und es sollte problemlos funktionieren.

Aber wenn trust gut genug ist, fein.

Dieses Thema wurde automatisch 60 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.