Protégez les données sensibles en masquant, chiffrant ou encodant les champs de journal lors de la collecte.
Exemple
Le tableau suivant compare un journal brut stocké dans SLS avec et sans le plugin de masquage des données.
|
Journal brut |
Sans plugin |
Avec plugin |
|
Contenu : "[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]" |
Contenu : "[{'account':'1812213231432969','password':''}, {'account':'1812213685634','password':''}]" |
Plugins de sécurité des données
Les plugins de sécurité des données suivants sont disponibles.
|
Paramètre |
Type |
Description |
|
masquage des données |
natif |
Masque les champs de journal. |
|
masquage des données |
extension |
Remplace les données sensibles par une chaîne spécifiée ou un hachage MD5. |
|
chiffrement de champ |
extension |
Chiffre le contenu des champs spécifiés. |
|
encodage et décodage des données |
extension |
Effectue le décodage Base64, l'encodage Base64 et l'encodage MD5 sur les données. |
Point d'entrée
Pour utiliser un plugin Logtail pour le traitement des journaux, ajoutez-le lors de la création ou de la modification d'une configuration Logtail. Pour plus d'informations, consultez Présentation.
Différences entre les plugins natifs et les plugins d'extension
Plugins natifs : écrits en C++ pour des performances supérieures.
Plugins d'extension : écrits en Go pour un écosystème plus riche et une plus grande flexibilité. Utilisez-les pour les journaux métier complexes que les plugins natifs ne peuvent pas traiter.
-
Limitations de performance des plugins d'extension
Les plugins d'extension entraînent une consommation accrue de ressources par LoongCollector, principalement au niveau du CPU. Ajustez les paramètres de LoongCollector dans Gestion de la configuration si nécessaire.
Si les données brutes dépassent 5 Mo/s, évitez les combinaisons de plugins complexes. Utilisez un plugin d'extension pour le traitement de base, puis déléguez le reste à Transformation des données.
-
Limitations de la collecte de journaux
Les plugins d'extension traitent les journaux textuels en mode ligne, de sorte que les métadonnées au niveau du fichier, telles que
__tag__:__path__et__topic__, sont stockées dans chaque entrée de journal.-
L'ajout de plugins d'extension affecte les fonctionnalités liées aux tags :
La requête contextuelle et LiveTail ne sont pas disponibles sauf si vous ajoutez une configuration d'agrégateurs.
Le champ
__topic__est renommé en__log_topic__. Si vous ajoutez une configuration d'agrégateurs, les champs__topic__et__log_topic__sont tous deux présents dans les journaux. Si vous n'avez pas besoin du champ__log_topic__, vous pouvez utiliser le plugin de suppression de champ pour le supprimer.Les champs tels que
__tag__:__path__ne disposent plus d'un index de champ natif. Vous devez créer un index de champ pour eux.
Plugin de masquage des données (natif)
Le plugin de masquage des données masque les données sensibles dans les journaux.
Configuration
|
Paramètre |
Description |
|
Original Field |
Le champ qui stocke le contenu du journal brut avant l'analyse. |
|
Data Masking Method |
La méthode de masquage. Valeurs valides :
|
|
Replacement String |
La chaîne qui remplace le contenu sensible. Ce paramètre est requis uniquement lorsque Data Masking Method est défini sur const. |
|
Content Expression that Precedes Replaced Content |
Une expression régulière utilisée pour localiser les données sensibles en faisant correspondre le contenu qui les précède. L'expression doit être conforme à la syntaxe RE2. |
|
Content Expression to Match Replaced Content |
Une expression régulière qui fait correspondre le contenu sensible à masquer. L'expression doit être conforme à la syntaxe RE2. |
|
Replace All Matched Content |
|
Plugin de désensibilisation des données
Le plugin processor_desensitize remplace les données sensibles dans les journaux par une chaîne spécifiée ou un hachage MD5.
Limitations
Configuration basée sur un formulaire : prise en charge lors de la collecte de journaux textuels et de la sortie standard des conteneurs.
Configuration basée sur JSON : non prise en charge pour la collecte de journaux textuels.
Configuration
Les versions 1.3.0 et ultérieures de Logtail prennent en charge le plugin processor_desensitize.
Formulaire
Définissez processor type sur Data Masking. Le tableau suivant décrit les paramètres associés.
-
Paramètres
Paramètre
Description
Original Field
Le nom du champ de journal.
Data Masking Method
La méthode utilisée pour la désensibilisation des données. Valeurs valides :
-
String Replacement : remplace le contenu sensible par une chaîne. Vous pouvez spécifier la chaîne cible à l'aide du paramètre Replacement String.
-
md5 : remplace le contenu sensible par son hachage MD5.
Sensitive Data Content
La méthode d'extraction du contenu sensible. Valeurs valides :
-
Field Text : remplace la valeur entière du champ cible.
-
Use Regular Expression : utilise une expression régulière pour extraire le contenu sensible.
Replacement String
La chaîne utilisée pour remplacer le contenu sensible.
Requis si Data Masking Method est défini sur String Replacement.
Regex to Match Sensitive Content Prefix
L'expression régulière pour faire correspondre le préfixe du contenu sensible.
Requis si Sensitive Data Content est défini sur spécification basée sur regex.
Regex to Match Sensitive Content
L'expression régulière pour faire correspondre le contenu sensible.
Requis si Sensitive Data Content est défini sur spécification basée sur regex.
-
-
Exemple de configuration
Remplacez la valeur entière du champ cible par une chaîne.
-
Journal brut
"password" : "123abcdefg" Configuration du plugin Logtail : définissez le type de processeur sur désensibilisation des données, puis définissez les paramètres suivants : champ source sur
password, méthode de désensibilisation sur remplacement de chaîne, contenu des données sensibles sur champ complet et chaîne de remplacement sur********.-
Résultat du traitement
"password":"********"
-
JSON
Définissez type sur processor_desensitize. Le tableau suivant décrit les paramètres au sein de l'objet detail.
-
Paramètres
Paramètre
Type
Obligatoire
Description
SourceKey
String
Oui
Le nom du champ de journal.
Method
String
Oui
La méthode utilisée pour la désensibilisation des données. Valeurs valides :
-
const : remplace le contenu sensible par une chaîne. Vous pouvez utiliser le paramètre ReplaceString pour spécifier la chaîne cible.
-
md5 : remplace le contenu sensible par son hachage MD5.
Match
String
Non
La méthode d'extraction du contenu sensible. Valeurs valides :
-
full (par défaut) : remplace la valeur entière du champ cible.
-
regex : utilise une expression régulière pour extraire le contenu sensible.
ReplaceString
String
Non
La chaîne utilisée pour remplacer le contenu sensible.
Requis si Method est défini sur const.
RegexBegin
String
Non
L'expression régulière pour faire correspondre le préfixe du contenu sensible.
Requis si Match est défini sur regex.
RegexContent
String
Non
L'expression régulière pour faire correspondre le contenu sensible.
Requis si Match est défini sur regex.
-
-
Exemples de configuration
-
Exemple 1
Pour remplacer la valeur entière du champ cible par une chaîne, définissez Method sur const et Match sur full.
-
Journal brut
"password" : "123abcdefg" -
Configuration du plugin Logtail
{ "type" : "processor_desensitize", "detail" : { "SourceKey" : "password", "Method" : "const", "Match" : "full", "ReplaceString": "********" } } -
Résultat du traitement
"password":"********"
-
-
Exemple 2
Pour utiliser une expression régulière afin de spécifier le contenu sensible et le remplacer par son hachage MD5, définissez Method sur md5 et Match sur regex.
-
Journal brut
"content" : "[{'account':'1234567890','password':'abc123'}]" -
Configuration du plugin Logtail
{ "type" : "processor_desensitize", "detail" : { "SourceKey" : "content", "Method" : "md5", "Match" : "regex", "RegexBegin": "'password':'", "RegexContent": "[^']*" } } -
Résultat du traitement
"content":"[{'account':'1234567890','password':'e99a18c428cb38d5f260853678922e03'}]"
-
-
Plugin de chiffrement de champ
Le plugin processor_encrypt chiffre le contenu des champs spécifiés.
Configuration
Formulaire
Définissez Processor Type sur Field Encryption. Le tableau suivant décrit les paramètres associés.
|
Paramètre |
Description |
|
Original Field |
Les champs sources à chiffrer. Vous pouvez ajouter plusieurs champs. |
|
AccessKey Pair |
La clé de chiffrement. Elle doit être une chaîne hexadécimale de 64 caractères. |
|
Initialization Vector |
Le vecteur d'initialisation pour le chiffrement. Il doit être une chaîne hexadécimale de 32 caractères. La valeur par défaut est |
|
Storage Path |
Le chemin vers le fichier contenant les paramètres de chiffrement. S'il n'est pas spécifié, le plugin utilise le Chemin du fichier des paramètres Entrée de la configuration Logtail. |
|
Retain Raw Data If Processing Fails |
Si vous sélectionnez cette option, le système conserve la valeur du champ source si le chiffrement échoue. Si cette option n'est pas sélectionnée, la valeur du champ est remplacée par |
JSON
Définissez type sur processor_encrypt. Le tableau suivant décrit le paramètre detail.
|
Paramètre |
Type |
Obligatoire |
Description |
|
|
Tableau de chaînes |
Oui |
Les champs sources à chiffrer. |
|
|
Objet |
Oui |
Les paramètres de chiffrement. |
|
|
String |
Oui |
La clé de chiffrement. Elle doit être une chaîne hexadécimale de 64 caractères. |
|
|
String |
Non |
Le vecteur d'initialisation pour le chiffrement. Il doit être une chaîne hexadécimale de 32 caractères. La valeur par défaut est |
|
|
String |
Non |
Le chemin vers le fichier contenant les paramètres de chiffrement. S'il n'est pas spécifié, le plugin utilise le Chemin du fichier des paramètres Entrée de la configuration Logtail. |
|
|
Booléen |
Non |
Indique s'il faut conserver la valeur source en cas d'échec du chiffrement.
|
Plugin d'encodage et de décodage des données
Les plugins processor_base64_encoding, processor_base64_decoding et processor_md5 encodent et décodent les valeurs des champs.
Limitations
Configuration basée sur un formulaire : disponible lors de la collecte de journaux textuels et de la sortie standard des conteneurs.
Configuration basée sur JSON : non prise en charge pour la collecte de journaux textuels.
Encodage Base64
Décodage Base64
Encodage MD5
Références
-
Gérez les configurations de pipeline Logtail à l'aide de l'API :
-
Configurez les plugins de traitement dans la console :