Accéder au contenu principal Passer au contenu complémentaire

Sécuriser les informations sensibles dans les paramètres de contexte envoyés par les moteurs distants

Masquez ou chiffrez les informations sensibles contenues dans les paramètres de contexte lorsque vos moteurs distants les envoient pour les exécutions ou les logs des tâches.

Les paramètres de connexion inclus dans le contexte d'un Job contiennent souvent des informations sensibles. Configurez vos moteurs pour masquer ou chiffrer ces informations lors de la communication de ces informations pour les exécutions ou les logs des tâches.

Chiffrement de secrets dans les paramètres de contexte

À partir de la version 2.12.9 du moteur distant (Remote Engine), vous pouvez chiffrer les paramètres de type mot de passe contenus dans le contexte d'une tâche de Job.

Une fois cette fonctionnalité activée, les moteurs distants chiffrent ces paramètres lors de leur passage aux Jobs pour exécution.

Procédure

  1. Arrêtez votre moteur.
  2. Ouvrez le fichier <RemoteEngineInstallationDirectory>/etc/org.talend.ipaas.rt.jobserver.client.cfg pour ajouter la propriété suivante afin de chiffrer les paramètres de contexte de type mot de passe, lorsque Talend Remote Engine traite le contexte pour le Job à exécuter.

    Exemple

    job.ctx.params.file.sensitive.values.encrypted=true
    Sans cette propriété, votre moteur gère le paramètre de type mot de passe comme si du plein texte, comme pour les autres paramètres de contexte.
  3. Sauvegardez le fichier.

Masquer les informations sensibles de connexion dans les logs d'exécution des tâches, dans Talend Management Console

À partir de la version 2.12.3 du moteur distant, si elles sont affichées dans les logs de Talend Management Console, les informations de connexion sont automatiquement masquées. Ces informations peuvent contenir des paramètres de connexion verrouillés dans Talend Management Console, comme l'hôte, le numéro de port ou encore l'identifiant.

About this task

Si la version de votre moteur est comprise entre 2.10.8 et 2.12.2, ces informations ne sont pas automatiquement masquées. Vous devez effectuer les opérations suivantes pour configurer Talend Remote Engine pour les masquer dans les logs. Sinon, ignorez cette section.

Procedure

  1. Dans Talend Management Console, vérifiez que les paramètres de connexion à masquer dans les logs ont bien été verrouillés.
    Pour plus d'informations concernant les connexions dans Talend Management Console et le verrouillage d'un paramètre de connexion, consultez Définir des connexions personnalisées.
  2. Sur la machine où est installé votre moteur distant, parcourez votre système jusqu'au dossier <RemoteEngineInstallationDirectory>/etc et ouvrez le fichier org.talend.ipaas.rt.jobserver.client.cfg.
  3. Définissez la propriété job.log.msg.sensitive.hidden :
    job.log.msg.sensitive.hidden=true
  4. Sauvegardez le fichier.

Results

Cette modification est prise en compte directement, sans redémarrage du moteur. Les paramètres de connexion verrouillés sont masqués dans les logs d'exécution de la tâche dans Talend Management Console, par exemple :
Capture d'écran présentant les informations sensibles de connexion masquées.
Troubleshooting:

Masquer des informations sensibles de connexion peut augmenter l'utilisation du processeur et de la mémoire. C'est notamment le cas lorsque vous masquez de nombreuses informations alors que de nombreux logs se trouvent en mémoire.

Pour atténuer ce pic, ajustez les paramètres suivants :

  1. Parcourez votre système jusqu'au dossier <RemoteEngineInstallationDirectory>/etc et ouvrez le fichier org.talend.ipaas.rt.jobserver.client.cfg.
  2. Ajustez les valeurs comme suit :
    Le tableau suivant présente les paramètres utilisés pour ajuster la taille des lignes de log et le nombre d'événements de logs stockés :
    Paramètre Description
    job.log.msg.size.max Sa valeur par défaut est de 10000 caractères, taille maximale autorisée pour chaque ligne de log.

    En diminuant cette valeur pour limiter la taille de chaque ligne de log à gérer, vous tronquez chaque ligne de log afin de réduire la consommation de ressources.

    Si vous ne souhaitez pas tronquer vos logs, pensez à ajouter des ressources supplémentaires à votre moteur.

    job.log.msg.buffer.size.max Ce paramètre configure le nombre maximal d'événements de log pouvant être stockés de manière temporaire dans la mémoire, avec une valeur par défaut de 10000.

    Lorsque de nombreux événements de logs simultanés se produisent, cette taille maximale peut être atteinte, ce qui conduit à une perte de données de log. Pour empêcher cette perte, augmentez la taille de la mémoire tampon, et, de la même manière, allouez davantage de ressources mémoire à votre moteur.

    Note InformationsNote: Pour alléger la charge de la mémoire et du processeur, vous pouvez ajouter un paramètre thread.timeout permettant de spécifier le temps maximal d'exécution du traitement des logs avant expiration. La valeur par défaut est de 5 minutes, après lesquelles le traitement des logs s'arrête et les informations de contexte sont nettoyées. En diminuant cette valeur, vous libérez les ressources plus régulièrement. Cependant, gardez à l'esprit que les logs non traités sont perdus. Si ce risque vous incommode, pensez à ajouter des ressources à votre moteur.
    Lorsqu'un événement d'expiration timeout se produit, il est enregistré dans le log comme événement WARN. Une entrée de log de cet événement se présente comme suit :
    Force cleanup context for empty streamSet, executionId {}
  3. Chaque caractère nécessite deux octets de mémoire. Ainsi, lorsque vous calculez les ressources supplémentaires nécessaires au traitement des logs, le calcul est le suivant :
    • Pour 2 000 caractères sur chaque ligne de log et 2 000 événements de log, 80 Mo de mémoire sont requis.
    • Pour 20 000 caractères sur chaque ligne de log et 5 000 événements de log, 200 Mo de mémoire sont requis.
    • Pour 20 000 caractères sur chaque ligne de log et 20 000 événements de log, 800 Mo de mémoire sont requis.

    Après l'augmentation de l'allocation dans la machine hôte, si votre moteur a été déployé en tant que service système, personnalisez également la configuration de la JVM dans le fichier <RemoteEngineInstallationDirectory>/etc/talend-remote-engine-wrapper.conf.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.