Aller au contenu

TP 8. Des credentials de base de données à la demande

Énoncé de travail pratique

Les commandes ne figurent pas dans les énoncés : elles se construisent à partir du chapitre déclencheur indiqué ci-dessous. Le laboratoire et le livret de corrections ne sont pas encore publiés. Voir les limites du livrable

Chapitre déclencheur : 19. Durée : 2 h.

Objectifs

Mettre en service le moteur Database sur PostgreSQL de bout en bout : compte de gestion au moindre privilège, connexion vérifiée, rotation du compte racine, rôle dynamique dont le SQL est la politique, rôle statique géré, puis constater la révocation réelle et le comportement pendant une indisponibilité de Vault.

Prérequis

TP 7 terminé. Chapitre 19 lu. Conteneur pg-01 démarré avec le schéma fourni.

Étapes

1. Préparer la cible. Sur pg-01, créez le compte de gestion vault-mgr avec exactement les droits nécessaires : créer, modifier et supprimer des rôles, accorder ce que les rôles accorderont, et pas le rôle de superutilisateur. Créez également le compte de secours d'administration, hors Vault, et vérifiez qu'il fonctionne : cette vérification précède l'étape 3, et l'ordre n'est pas négociable.

2. Configurer la connexion. Déclarez la connexion pg-billing avec le gabarit d'identifiants dans l'URL, la vérification TLS complète vers la base, et la liste fermée des rôles autorisés. Expliquez en commentaire pourquoi le gabarit n'est pas décoratif.

3. Tourner le compte de gestion. Exécutez la rotation du compte racine du moteur. Constatez ensuite que le mot de passe saisi à l'étape 2 ne fonctionne plus, y compris pour vous.

4. Le rôle dynamique. Créez billing-app avec ses instructions de création et de révocation : compte avec échéance, droits de lecture et d'écriture sur le schéma applicatif, aucun droit de définition de structure, révocation explicite avant suppression. Durée par défaut d'une heure, plafond de vingt-quatre heures.

5. Consommer et vérifier. Demandez des credentials. Côté base, retrouvez le compte créé, sa date de validité et ses droits. Connectez-vous avec, effectuez une lecture, puis tentez une opération de définition de structure et constatez le refus.

6. Révoquer pour de vrai. Révoquez le bail et constatez, côté base, que le compte a disparu. Comparez cette révocation à celle d'un token du TP 5 et formulez la différence en une phrase.

7. Le rôle statique. Créez le compte permanent billing_batch sur la base, prenez-le en gérance avec une rotation périodique, et lisez sa valeur courante. Vérifiez que la prise en gérance a immédiatement changé le mot de passe.

8. Éprouver la panne. Arrêtez le service Vault. Constatez que les credentials déjà obtenus continuent de fonctionner sur la base, qu'aucun nouveau ne peut être obtenu, et attendez l'échéance d'un bail pour observer ce que fait la base seule.

9. Nettoyer les orphelins. Après redémarrage, listez côté base les comptes créés par Vault et comparez-les aux baux existants. Traitez les écarts.

Résultats attendus

Un moteur configuré dont personne ne connaît le mot de passe de gestion, un rôle dynamique produisant des comptes uniques et bornés dans le temps, une révocation qui supprime réellement le compte, un rôle statique dont le mot de passe tourne sans humain, et l'observation documentée du comportement pendant une panne.

Erreurs possibles et diagnostic

La configuration échoue à la connexion : la vérification TLS ne trouve pas l'autorité de la base, ce qui est un défaut de configuration et non une raison de désactiver la vérification. La rotation du compte racine casse le moteur : le gabarit d'identifiants était absent de l'URL, et le mot de passe s'y trouvait en dur. La révocation d'un bail échoue : le compte dynamique possède un objet dans la base, relisez les instructions de création. Aucun compte n'apparaît côté base : la liste des rôles autorisés ne contient pas votre rôle.

Questions

  1. Vous avez vérifié le compte de secours avant la rotation. Décrivez la situation dans laquelle vous vous seriez trouvé en inversant l'ordre.
  2. Que se passe-t-il exactement, côté base et côté Vault, à l'échéance d'un bail pendant que Vault est arrêté ?
  3. Le rôle statique géré résout un problème et pas un autre. Lesquels ?