Aller au contenu principal

Masquage des données sensibles

Lors de la lecture ou de l'export d'un environnement ou d'une ressource (YAML téléchargé, snapshot d'activité), les valeurs sensibles présentes dans les champs extra des environnements et des ressources sont automatiquement masquées. Cela empêche la fuite de données sensibles dans les fichiers exportés, les logs et les diffs de l'historique d'activité.


Champs masqués

Le masquage s'applique récursivement à tout objet de configuration. Les noms de clés reconnus comme sensibles sont :

CléExemples de contexte
keyagentOptions.key
passwordauthTokenParams.password, oauth2.password
clientSecretoauth2.clientSecret
passbasicAuth.pass, proxy.pass
secrethmac.secret, jwt.secret
privateKeyjwt.privateKey

La clé originale est supprimée et remplacée par masked_<clé>.


Format de masquage

Valeur texte ordinaire

  • Valeur ≥ 6 caractères : abc***xyz (3 premiers + *** + 3 derniers caractères)
  • Valeur < 6 caractères : abc*** (3 premiers caractères + ***)

Exemple :

# Avant
oauth2:
clientSecret: my-super-secret-value

# Après (lecture API ou export YAML)
oauth2:
masked_clientSecret: my-***lue

Valeur PEM (certificats / clés)

Les blocs PEM sont détectés automatiquement (présence de -----BEGIN). Ils sont masqués un par un. Les lignes -----BEGIN …----- et -----END …----- sont préservées ; seul le contenu base64 interne est masqué. Les métadonnées éventuellement présentes entre les blocs (ex. Bag Attributes, subject=, issuer=) sont également conservées telles quelles.

info

Les exemples ci-dessous utilisent la notation YAML |- (bloc littéral, qui conserve les sauts de ligne). La bibliothèque de sérialisation utilisée en interne peut produire la notation >- (bloc replié, qui remplace les lignes vides par des sauts de lignes) pour certaines valeurs, sans que cela soit configurable. Le résultat est moins lisible car parsemé de lignes vides mais reste un YAML valide et en appliquant un parsing YAML, la valeur contenue dans le bloc replié >-, correspond à la valeur présentée dans les exemples ci-dessous.

Clé privée :

masked_key: |-
-----BEGIN RSA PRIVATE KEY-----
MII***xyz
-----END RSA PRIVATE KEY-----

Comportement à l'import

attention

Lors d'un import, laissez les clés masked_<x> telles quelles si vous ne souhaitez pas modifier leur valeur. Les supprimer sans les remplacer par la clée réelle avec la bonne valeur entraînerait la perte de la valeur correspondante en base.

Lors d'un import YAML, le système distingue fonctionne de cette manière :

SituationComportement
Clé masked_<x> dans le YAML importé, sans clé réelle <x>La valeur existante en base est conservée (pas d'écrasement)
Clé réelle <x> dans le YAML importé, sans clé masquée masked_<x>La valeur importée est utilisée (mise à jour normale)
Clé masked_<x> sans valeur existante en baseLa clé est ignorée (aucune écriture)
Clé réelle <x> et clé masked_<x> toutes deux présentesLa clé réelle <x> a la priorité (mise à jour normale)
Ni masked_<x> ni <x> présentes dans le YAML importéLa clé est supprimée de la configuration en base

Ainsi, réimporter un YAML exporté sans le modifier ne modifie pas les données sensibles en base.


Comment modifier une valeur sécurisée

  1. Exporter l'environnement (téléchargement YAML depuis le portail ou via l'API REST).

  2. Dans le YAML exporté, remplacer la clé masked_<x> par la clé réelle <x> avec la nouvelle valeur en clair :

    # Remplacer
    masked_clientSecret: my-***lue
    # Par
    clientSecret: ma-nouvelle-valeur-secrete
    info

    Au sein de l'environnement ou de la ressource modifiée, veillez à laisser les autres configurations telles quelles pour qu'elles ne soient pas supprimées.

  3. Réimporter le YAML modifié.