Aller au contenu

Orchestration Zero Touch pour Harness.io

L'Orchestration Zero Touch (ZTP) pour Harness.io permet d'exécuter les workflows de vérification de sécurité à partir d'un pipeline Harness.io. Ce guide vous accompagne dans le processus de configuration de l'Orchestration Zero Touch pour Harness et tout ce que vous devez savoir à ce sujet.


Prérequis


Avant de commencer, assurez-vous d'avoir :

  • Intégré votre SCM (Azure DevOps, BitBucket, GitHub, GitLab) à BoostSecurity.
  • Créé une clé API Harness.io avec les permissions suivantes :
    • Voir les organisations : core_organization_view
    • Voir les pipelines : core_pipeline_view
    • Exécuter les pipelines : core_pipeline_execute
    • Voir les projets : core_project_view
    • Créer/modifier les secrets : core_secret_edit
  • Créé un pipeline Boost dans un projet Harness
    • Modèle de pipeline Harness utilisant cloud compute
    • Modèle de pipeline Harness utilisant un cluster K8s dédié
  • L'ID de l'organisation, l'ID du projet et l'ID du pipeline.

Étapes d'intégration Harness


  1. Repérez la barre latérale gauche, cliquez sur l'icône Paramètres et ouvrez l'onglet Intégration.
  2. Accédez aux Intégrations disponibles.
  3. Recherchez Harness et cliquez sur le bouton « Installer ».
  4. Dans l'onglet Access Token, fournissez les informations suivantes :

    • La clé API Harness
    • L'ID de l'organisation Harness
    • L'ID du projet Harness (champ de saisie du dépôt)
    • L'ID du pipeline Harness

    Intégration Pipeline Harness

  5. Cliquez sur suivant pour valider le pipeline. Cela provisionnera le BOOST_API_TOKEN dans les secrets du projet Harness et tentera de lancer le pipeline Boost que vous avez défini.

    Validation Pipeline Harness

  6. Une fois le pipeline validé avec succès, l'intégration est terminée

    Succès Pipeline Harness


Étapes d'intégration


  1. Accédez à la page Intégrations, sélectionnez votre intégration Bitbucket, puis cliquez sur l'onglet de configuration.

  2. Dans la colonne ZTP, vous remarquerez que le statut ZTP est défini sur Non défini. Cliquez sur le menu d'actions à côté du statut et sélectionnez Activer.

    Activer ZTP

  3. Dans l'assistant ZTP, la première étape consiste à accorder à Boost Security les permissions pour le flux Zero Touch sur votre organisation Bitbucket.

  4. À la deuxième étape, sélectionnez le pipeline Harness dans lequel l'Orchestration Zero Touch s'exécutera :

    Sélection du pipeline ZTP

  5. La configuration du pipeline est prête après une configuration réussie du pipeline CI !

    ZTP réussi

L'Orchestration Zero Touch est maintenant activée !!!


Activation du Boost advisor


Le Boost advisor vous permet de corriger les résultats avec l'IA depuis la vue des résultats de Boost Security. Pour les dépôts analysés par le pipeline Harness ZTP, Corriger avec l'IA déclenche un pipeline dans votre projet Harness : l'advisor s'exécute sur votre propre infrastructure de calcul Harness et ouvre une Pull Request avec le correctif dans le dépôt cible.

Cela fonctionne pour tous les SCM analysés par votre projet Harness (Azure DevOps, Bitbucket, GitHub et GitLab), y compris plusieurs SCM derrière le même projet Harness. Configurez-le une seule fois par projet Harness.

  1. Créez le pipeline advisor dans la même organisation et le même projet Harness que le pipeline de scan Boost, avec l'identifiant boostsecurity_advisor. L'identifiant doit correspondre exactement ; le nom d'affichage est libre. Boost Security ne crée ni ne met jamais à jour ce pipeline.

    Partez de cet exemple. Lorsque vous créez le pipeline dans Pipeline Studio, Harness renseigne automatiquement les identifiants de l'organisation et du projet.

    • Les quatre lignes BOOST_<SCM>_TOKEN peuvent toutes rester : l'advisor lit uniquement le token du SCM du dépôt et ignore les autres. Harness ne fait pas échouer l'exécution si un secret n'existe pas, mais la valeur transmise est alors imprévisible ; le secret doit donc exister pour chaque SCM analysé par ce projet.
    • Les lignes de passerelle BOOST_LLM_* sont facultatives : une variable de projet non définie est transmise comme vide, et l'advisor l'ignore. Elles ne sont nécessaires que pour utiliser une passerelle LLM. L'ID client et le secret OAuth2 ne sont transmis que lorsque la variable de projet BOOST_LLM_OAUTH_TOKEN_URL est définie : sinon, la command les supprime, car un secret qui n'existe pas transmet une valeur imprévisible.
    • L'image ubuntu:24.04 et sa ligne apt-get sont actuellement requises.
    • Boost Security renseigne l'entrée payload lorsqu'il déclenche l'exécution. Vous ne devez jamais la définir vous-même.

    Une fois créé, le pipeline affiche son identifiant dans la vue YAML de Pipeline Studio :

    Pipeline advisor dans Pipeline Studio

    Il apparaît également dans la liste des pipelines du projet :

    Pipeline advisor dans la liste des pipelines

  2. Créez les secrets dans le projet Harness :

    Secret Valeur
    BOOST_API_TOKEN Déjà créé par Harness ZTP. Le pipeline le transmet à l'advisor sous le nom BOOST_API_KEY.
    BOOST_GITHUB_TOKEN, BOOST_GITLAB_TOKEN, BOOST_AZURE_DEVOPS_TOKEN ou BOOST_BITBUCKET_TOKEN Un token de ce SCM avec un accès en écriture, pour pousser une branche et ouvrir une Pull Request.
    BOOST_LLM_KEY La clé API de votre fournisseur LLM, ou de votre passerelle LLM.

    Le token SCM est défini par fournisseur SCM, et non par dépôt ou par organisation : un seul secret BOOST_<SCM>_TOKEN sert pour tous les dépôts de ce fournisseur dans le projet Harness. Créez-le pour chaque SCM analysé par ce projet ; les secrets des autres SCM ne sont pas nécessaires. Pour créer le token lui-même, suivez le guide Boost advisor correspondant à votre SCM, en ne conservant que son token, puisque le secret se nomme ici BOOST_<SCM>_TOKEN au lieu de BOOST_SCM_TOKEN : Azure DevOps, Bitbucket, GitHub ou GitLab.

    Le pipeline lit chaque secret par son ID ; donnez donc à chaque secret le nom indiqué dans le tableau ci-dessus comme ID :

    Secrets de l'advisor dans le projet Harness

  3. Créez la variable BOOST_LLM_MODEL dans le projet Harness. Il s'agit d'une variable de projet, et non d'un secret, contenant le nom du modèle LLM. L'exemple la lit avec <+variable.BOOST_LLM_MODEL> ; pour une variable au niveau de l'organisation ou du compte, utilisez plutôt <+variable.org.BOOST_LLM_MODEL> ou <+variable.account.BOOST_LLM_MODEL>.

    Variable BOOST_LLM_MODEL dans le projet Harness

    Pour que l'advisor appelle le LLM via votre propre passerelle compatible OpenAI, consultez Comment utiliser une passerelle LLM avec Corriger avec l'IA.


Erreurs de Corriger avec l'IA


Lorsque Corriger avec l'IA ne parvient pas à démarrer le pipeline advisor, la boîte de dialogue Corriger avec l'IA affiche Échec du déclenchement de la correction par l'IA et montre l'une des erreurs suivantes :

  • Pipeline introuvable : « Impossible de démarrer la correction par l'IA. Le pipeline Harness boostsecurity_advisor est introuvable ; créez-le dans <org>/<project>. », avec les identifiants de votre organisation et de votre projet Harness. Le pipeline advisor n'existe pas à cet endroit, ou son identifiant ne correspond pas. Créez-le comme décrit à l'étape 1.

    Erreur de pipeline introuvable

  • Temporairement indisponible : Harness a limité le débit de la requête ou a rencontré une erreur serveur. Réessayez plus tard.

  • Erreur de déclenchement : Harness a refusé l'exécution. L'erreur contient le message de Harness, qui en indique la raison.