Accès et identités
Matrice d'accès
| Cible | Méthode | Autorité | Secret conservé où |
|---|---|---|---|
| VPS OVH | SSH par clé | Clé publique dans authorized_keys |
Clé privée uniquement sur le poste opérateur |
| Kubernetes | kubeconfig local | Certificat client K3s | Fichier local, jamais dans Git |
| GitHub | Compte GitHub | GitHub + MFA recommandé | Gestionnaire d'identifiants du poste |
| Git par Flux | Clé de déploiement SSH | Deploy key du dépôt | Secret flux-system dans Kubernetes |
| Interfaces techniques (Grafana, maintenance, portail admin) | GitHub OAuth | OAuth2 Proxy | Secrets Kubernetes hors Git |
| Stirling-PDF | Google OAuth | OAuth2 Proxy dédié | Secret Kubernetes hors Git |
| OVH / Cloudflare | Compte fournisseur | Fournisseur + MFA | Gestionnaire de mots de passe |
SSH vers les VPS
Utiliser des alias dans %USERPROFILE%\.ssh\config afin d'éviter les erreurs d'adresse :
Host homelab-gra-primary
HostName 213.32.65.236
User <utilisateur-administrateur>
IdentityFile ~/.ssh/<cle-privee>
Host homelab-sbg
HostName 152.228.237.203
User <utilisateur-administrateur>
IdentityFile ~/.ssh/<cle-privee>
Host homelab-gra-secondary
HostName 51.254.130.191
User <utilisateur-administrateur>
IdentityFile ~/.ssh/<cle-privee>
Ne jamais copier la clé privée sur un VPS. Après rotation, tester une seconde session avant de retirer l'ancienne clé publique.
Accès Kubernetes local
Le contexte attendu est ovh-primary :
kubectl config current-context
kubectl config get-contexts
kubectl --context ovh-primary get nodes
k9s --context ovh-primary
Le serveur du kubeconfig doit être joignable depuis le poste. Protéger le fichier avec les ACL Windows et ne jamais l'envoyer par mail ou le committer.
Contrôles et rotation
- Activer la MFA sur GitHub, OVH et Cloudflare.
- Révoquer immédiatement une clé perdue ou un ancien poste.
- Renouveler les secrets OAuth en mettant à jour le Secret Kubernetes hors Git.
- Vérifier les accès Git Flux après toute rotation de deploy key.
- Conserver au moins un accès de secours via la console OVH avant une modification SSH/UFW.
Diagnostic
ssh -vv homelab-gra-primary
kubectl auth can-i get pods --all-namespaces
kubectl -n flux-system get gitrepository flux-system
kubectl -n flux-system describe gitrepository flux-system