Une règle qu'aucune garde ne vérifie finit par ne plus être vraie — c'est ce qui était arrivé aux 28 lignes d'intégration recopiées. Chaque rôle serveur_* porte un meta/authentification.yml, confronté à son code par P29. web-sso 5, socle-identite 2 (keycloak/openldap : ils SONT la chaîne d'identité), ldap-direct 2, interne-sans-auth 2, sans-auth-humaine 12. La preuve refuse l'oubli ET le mensonge. Éprouvée par sabotage sur sept cas : déclaration supprimée, portée inventée, secours retiré, posture de formulaire retirée, raison retirée, ldap-direct mensonger, réglage retiré des defaults. Les deux derniers passaient dans la première version : - le mensonge passait à cause d'un commentaire. Je cherchais le mot « ldap » dans le rôle, et serveur_grafana/defaults/main.yml contient « désactiver quelqu'un dans LDAP » : de la prose validait une déclaration fausse. La preuve exige maintenant un indice nommé — variable <rôle>_oidc / <rôle>_ldap, ou URI ldap:// - le réglage retiré passait parce que le gabarit citait encore la variable alors que plus rien ne lui donnait de valeur. La preuve lit defaults/main.yml en YAML et exige que la clé y soit définie, pas mentionnée. Elle a aussi forcé une valeur : oauth2-proxy était déclaré « formulaire local fermé » alors qu'il n'a aucun compte local. D'où formulaire_local: aucun, qui distingue « il n'y en a jamais eu » de « il y en a un, il est fermé ». Correction d'une note de la veille : Prometheus et Loki ne sont PAS exposés publiquement (aucun expose au plan). Seuls six groupes le sont. Le risque est intra-tenant, pas frontalier. Les deux lacunes sont comptées à chaque exécution, pas masquées. AFF-111, D-42. 29 preuves OK, ansible-lint (production) sur 375 fichiers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_step_ca
Autorité de certification interne Smallstep step-ca avec provisioner ACME,
pour émettre les certificats internes (client_pki est le client ACME).
Rôle
- Ajoute le dépôt apt officiel Smallstep (clé + source deb822) et installe
step-ca+step-cli. - Crée l'utilisateur système
stepetSTEPPATH=/etc/step-ca. - Déploie les mots de passe (CA et provisioner) depuis Vault.
- Initialise l'AC une seule fois (
step ca init, standalone + provisioner ACME), garde-foucreates: config/ca.json. - Déploie l'unité systemd durcie officielle et démarre le service.
Secrets requis (Vault)
Obligatoires dès l'installation :
serveur_step_ca_password: "{{ vault_step_ca_password }}"
serveur_step_ca_provisioner_password: "{{ vault_step_ca_provisioner_password }}"
À placer dans instance/inventories/production/group_vars/serveur_step_ca/vault.yml (chiffré),
les variables en clair référençant ces secrets dans .../serveur_step_ca/main.yml.
Variables principales
| Variable | Défaut | Rôle |
|---|---|---|
serveur_step_ca_nom |
Set-OPS Internal CA |
Nom de l'AC |
serveur_step_ca_dns |
FQDN + IP | SAN/DNS du certificat de l'AC |
serveur_step_ca_adresse |
:8443 |
Adresse d'écoute |
serveur_step_ca_provisioner |
admin@exemple.internal |
Provisioner JWK admin |
serveur_step_ca_acme |
true |
Ajoute un provisioner ACME |
Notes
- La ligne
step ca initutilise les drapeaux documentés par Smallstep ; selon la version destep-cliinstallée, un ajustement mineur peut être nécessaire. L'init ne s'exécute qu'une fois (présence deconfig/ca.json). - L'unité systemd provient de la doc de production Smallstep (sandboxing systemd).
- Émission/renouvellement côté clients : voir le futur rôle
client_pki(ACME).
Hors périmètre
- Sauvegarde/HA de l'AC, RA (registration authority), rotation des clés racine.