# ============================================================================= # 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