Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018BAUeCFpDkRD6tU5wGsc1C
41 lines
1.6 KiB
YAML
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
|