xpeditis2.0/infra/prod/.sops.yaml
2026-09-07 21:40:50 +02:00

41 lines
1.6 KiB
YAML

# =============================================================================
# Regles de chiffrement SOPS (age)
# =============================================================================
#
# Un seul mecanisme de secrets pour toute la prod : SOPS + age.
# Il couvre a la fois les Secrets Kubernetes (noeud app) ET les fichiers .env
# du noeud de donnees (Docker Compose) -- ce qu'un controleur type Sealed
# Secrets ne saurait pas faire.
#
# Generation de la cle (UNE SEULE FOIS, cf. docs/mise-en-prod/06-secrets-sops.md) :
# age-keygen -o ~/.config/sops/age/keys.txt
# grep 'public key' ~/.config/sops/age/keys.txt
#
# Puis remplacer AGE_RECIPIENT_PRIMARY ci-dessous par la cle publique (age1...).
# La cle PRIVEE ne quitte jamais : votre poste + le coffre-fort (1Password /
# Bitwarden) + le secret GitHub Actions SOPS_AGE_KEY.
#
# Ajoutez une 2e recipient (cle de secours, stockee hors ligne, sur papier ou
# YubiKey) : sans elle, perdre le poste = perdre tous les secrets de prod.
creation_rules:
# Secrets Kubernetes : on ne chiffre QUE les valeurs sous `data`/`stringData`,
# les metadonnees restent lisibles pour pouvoir relire un diff en revue.
- path_regex: k8s/.*\.sops\.yaml$
encrypted_regex: '^(data|stringData)$'
age: >-
AGE_RECIPIENT_PRIMARY,
AGE_RECIPIENT_BACKUP
# Fichiers d'environnement du noeud de donnees (docker compose) : tout chiffre.
- path_regex: (data-node|env)/.*\.sops\.(yaml|env)$
age: >-
AGE_RECIPIENT_PRIMARY,
AGE_RECIPIENT_BACKUP
# Filet de securite : tout autre .sops.yaml du dossier prod.
- path_regex: \.sops\.yaml$
age: >-
AGE_RECIPIENT_PRIMARY,
AGE_RECIPIENT_BACKUP