Secrets et credentials

Les secrets sont chiffrés au repos, jamais affichés en clair, jamais loggés. Distincts des variables d'environnement publiques.

Définir un secret

$ paas secrets:set STRIPE_SECRET_KEY=sk_live_xxx --app monsite
$ paas secrets:set DATABASE_PASSWORD=$(openssl rand -base64 32) --app monsite
✓ secret défini · jamais affiché en clair · audit logué

Récupérer un secret

Vous ne pouvez pas récupérer la valeur d'un secret une fois défini. Vous pouvez vérifier qu'il existe :

$ paas secrets:list --app monsite
NAME
STRIPE_SECRET_KEY
DATABASE_PASSWORD
JWT_SECRET

$ paas secrets:rotate STRIPE_SECRET_KEY --app monsite
✓ rotation programmée pour le prochain déploiement

Différence avec les config vars

Config vars (paas config:set)Secrets (paas secrets:set)
Visibilité dans le dashboardAffichée en clairMasquée (••••••)
Présence dans les logsPossibleFiltré automatiquement
RécupérableOuiNon, après définition
Audit finNonOui (qui, quand, depuis quelle IP)
Pour quoi ?NODE_ENV, LOG_LEVEL, FEATURE_FLAGSMots de passe, clés API, tokens

Rotation

Pour faire tourner un secret sans interrompre l'app :

$ paas secrets:set STRIPE_SECRET_KEY=sk_live_NEW --app monsite
# déclenche une nouvelle release rolling

Depuis un CI

Utilisez un token API avec scope secrets:write :

$ paas auth:tokens:create --scope secrets:write --app monsite

Audit

$ paas secrets:audit --app monsite --since 30d
# 14 events : 4 set, 2 rotate, 8 access (par les pods au démarrage)