Set-OPS-Public/exemples/vault.exemple.yml
Daniel Allaire 627ef00ec7 la console d exploitation devient un service, et elle n avait aucune serrure
Le GUI n a aucune authentification : GET / sert la page a qui la demande, jeton
ecrit dedans, et POST /api exige ce jeton que la page vient de donner. Le jeton
garde contre le CSRF, pas contre un visiteur — la seule serrure est
--hote 127.0.0.1. Ce qu il offre a qui entre : deployer, creer, raser, editer le
plan. La fabric entiere.

Le service reste donc sur la boucle locale. Ce qui est publie est un nginx local
qui authentifie d abord : oidc par defaut (oauth2-proxy, donc un groupe
d annuaire qu on revoque sans deploiement), locale en repli pour un ecosysteme
sans annuaire. L authentification est posee au niveau du server, pas d un
location.

La sonde console-ops mesure une SERRURE : une requete anonyme doit etre REFUSEE.
Un 200 y est la pire des reponses, et il ne fait echouer personne.

P54 a attrape une contrainte ratee : serveur_ops est insemine par le SITE, qui
ne detient pas la voute du locataire. Le role ne nomme donc aucune voute — il
declare un parametre, et la couche qui detient le secret le remplit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Crgis8CxCWkAGFA1ecBz3q
2026-09-14 19:27:28 -04:00

70 lines
2.7 KiB
YAML

---
# Voûte UNIQUE de l'instance — TOUS les secrets, un seul fichier, un seul mot de passe.
#
# Installation (un seul inventaire par instance : « production » dans le modèle socle) :
# 1. Copier ce gabarit vers la voûte de l'instance :
# cp exemples/vault.exemple.yml instance/inventories/production/group_vars/all/vault.yml
# 2. Renseigner les valeurs, puis chiffrer :
# ansible-vault encrypt instance/inventories/production/group_vars/all/vault.yml
# 3. Éditer ensuite sans jamais déchiffrer sur disque :
# ansible-vault edit instance/inventories/production/group_vars/all/vault.yml
#
# Ne JAMAIS versionner le fichier vault.yml (couvert par .gitignore).
# Le GUI ne stocke ni n'affiche ces valeurs : il n'en montre que les NOMS
# (panneau « Intrants de base »). Le mot de passe du vault est saisi au déploiement.
# --- Accès API Proxmox (clonage des VM) ---
proxmox_api_token_id: ""
proxmox_api_token_secret: ""
# --- AC / PKI interne (step-ca) ---
vault_step_ca_password: ""
vault_step_ca_fingerprint: ""
vault_step_ca_provisioner_password: ""
# --- Identité (LDAP / SSO) ---
vault_openldap_admin: ""
vault_ldap_sssd: ""
vault_keycloak_admin: ""
# --- Bases de données ---
vault_postgresql_keycloak: ""
vault_bd_keycloak: ""
vault_bd_forgejo: ""
vault_bd_icingadb: ""
# --- Forge (Forgejo) ---
vault_forgejo_admin: ""
vault_forgejo_secret_key: ""
vault_forgejo_internal_token: ""
# --- Observabilité / divers ---
vault_grafana_admin: ""
vault_redis: ""
# LA CONSOLE DE SUPERVISION, QUAND ELLE S'AUTHENTIFIE SEULE.
#
# `serveur_icingaweb2_auth: locale` — le mode d'un SITE, qui n'a ni annuaire ni Keycloak.
# nginx demande ce mot de passe à l'entrée, Icinga Web 2 croit le nom que nginx lui passe.
# Inutile en mode `ldap` ou `external` : le rôle ne l'exige que dans le mode qui s'en sert.
vault_icingaweb2_admin: ""
# LA CONSOLE D'EXPLOITATION, QUAND ELLE S'AUTHENTIFIE SEULE.
#
# `serveur_ops_gui_auth: locale` — le repli d'un ecosysteme SANS annuaire (un SITE).
# Un ecosysteme qui a Keycloak reste en `oidc` et laisse cette cle VIDE : la console
# lance des deploiements et peut raser, un mot de passe partage devant ce pouvoir est un
# accident qui attend.
vault_setops_gui_admin: ""
# LE COMPTE DE METRIQUES DE POSTGRESQL — lecture seule, role `pg_monitor`.
#
# Il ne lit que les vues de statistiques : pas une ligne de donnee applicative. Faire
# tourner l'exportateur en `postgres` serait donner les cles de la base pour lire des
# compteurs.
#
# VIDE = PAS D'EXPORTATEUR DU TOUT. Le role ne le pose pas, ne cree pas le compte, et
# Prometheus ne derive aucune cible. Degrader, jamais deviner — et surtout jamais un mot
# de passe par defaut.
vault_pg_exportateur: ""