Vous n'êtes pas identifié(e).
J'ai lu http://docs.postgresqlfr.org/8.3/auth-methods.html
Je cherche une solution à un problème générique:
Dans des shell scripts d'administration Pgsql,
nombreux divers et variés (sauvegardes, restauration diverses)
s'exécutant en batch, (crontab ou autre)
comment s'autentifier simplement en étant le plus sécurisé possible?
Actuellement je vois plusieurs méthodes simples à mettre en oeuvre que je comprends:
0. Utiliser le profil postgres ?
1. Pour user+passwd
1.1. Utiliser les variables de shell PGUSER et PGPASSWORD (exportées ou pas ?)
1.2. Mettre le mot de passe en clair dans le script pour chaque commande (comme pg_dump)
1.3. Mettre le mot de passe en clair dans un fichier lu en stdin par chaque commande
2. Ident-map
ecrire dans pg_ident.conf la map :
Exemple 21.2. Un fichier d'exemple pg_ident.conf
# CORRESPONDANCE NOMUTILISATEUR-IDENT NOMUTILISATEUR-PG
omicron bryanh bryanh
omicron ann ann
# bob a le nom d'utilisateur robert sur ces machines
omicron robert bob
# bryanh peut aussi se connecter en tant que guest1
omicron bryanh guest1
Dans le cas d'une Ident-map, il n'y a pas besoin de mot de passe
lors de l'exécution d'un script sous un profil mappé ?
Qui a utilisé cela ?
3. utiliser un fichier .pgpass par profil
http://docs.postgresqlfr.org/8.3/libpq-pgpass.html
Ca me semble peu sécurisé de disperser le mot de passe ainsi.
Qu'utilisez-vous dans vos crontab et autres job d'exploitation
Merci par avance pour vos commentaires !
Eko
Hors ligne
Ooops ! Je voulais commencer par un bonjour à tous ! :-!
Bonjour !
Hors ligne
En quoi est-ce peu sécurisé ? pour être utilisable par PostgreSQL, le fichier ne doit être lisible et modifiable que par l'utilisateur, donc c'est au contraire très sécurisé. Personne en dehors de l'utilisateur et de root ne peut lire ce fichier.
Guillaume.
Hors ligne
Deux points d'entrée.
Un fichier qui peut être lu par l'utilisateur est donc vulnérable aux attaques
qui se produiraient sous ce profil, sans que l'attaquent ait besoin d'être root.
Donc dans le cas de [.pgpass], sous quel profil vos scripts sont-ils exécutés ?
Hors ligne
Deux points d'entrée.
Un fichier qui peut être lu par l'utilisateur est donc vulnérable aux attaques
qui se produiraient sous ce profil, sans que l'attaquent ait besoin d'être root.
Aux attaques de quel type ?
Et où se trouve le deuxième point d'entrée ?
Donc dans le cas de [.pgpass], sous quel profil vos scripts sont-ils exécutés ?
Pour tout utilisateur, y compris postgres.
Guillaume.
Hors ligne
je voulais dire, sur une machine de production,
dans vos scripts shell sous crontab :
- sous quels profils les scripts sont-ils exécutés?
- comment sont-ils authentifiés ? (j'ai compris que Guillaume utilise et recommande [.pgpass])
- quelqu'un a-t-il utilisé ident_map ? cela permet bien de ne pas avoir à gérer user+password ?
Philippe
Hors ligne
Généralement, en ce qui me concerne, les scripts sont exécutés par l'utilisateur postgres.
Guillaume.
Hors ligne
je voulais dire, sur une machine de production,
dans vos scripts shell sous crontab :
- sous quels profils les scripts sont-ils exécutés?
- comment sont-ils authentifiés ? (j'ai compris que Guillaume utilise et recommande [.pgpass])
Souvent avec l'utilisateur postgres, parfois avec un utilisateur système différent. Cela dépend du besoin.
Mais, c'est toujours à l'aide du fichier .pgpass que je gère mes mots de passe.
SAS
Stéphane Schildknecht
Conseil, formations et support PostgreSQL
http://www.loxodata.com
Hors ligne