Résolution des problèmes liés au déploiement d'Analyse statique AppScan 360°

Si vous rencontrez des problèmes lors de l'installation ou de l'utilisation d'Analyse statique AppScan 360°, essayez de les résoudre à l'aide des informations suivantes :

Erreur renvoyée après l'exécution du script de déploiement

Dépendance cert-manager manquante

  • Erreur :
    Error: unable to build kubernetes objects from release manifest: [resource mapping not found for name:
    "analyzer-cert" namespace: "" from "": no matches for kind "Certificate" in version "cert-manager.io/v1"
    ensure CRDs are installed first, resource mapping not found for name: "ascp-adapter-cert" namespace: "" 
    from "": no matches for kind "Certificate" in version "cert-manager.io/v1"
  • Cause principale :

    Cette erreur se produit lorsque la dépendance du module complémentaire cert-manager n'est pas déployée sur le cluster. AppScan 360° SAST dépend du module complémentaire cert-manager pour le déploiement.

  • Solution :

    Vérifiez que cert-manager est déployé et en cours d'exécution sur votre cluster Kubernetes. Consultez la configuration système requise et les instructions de configuration de l'environnement.

Dépendance Keda manquante

  • Erreur :
    Error: unable to build kubernetes objects from release manifest: [resource mapping not found for name:
    "analyzer-hpa" namespace: "" from "": no matches for kind "ScaledObject" in version "keda.sh/v1alpha1"
    ensure CRDs are installed first, resource mapping not found for name: "ascp-adapter-hpa" namespace: "" 
    from "": no matches for kind "ScaledObject" in version "keda.sh/v1alpha1"
  • Cause principale :

    Cette erreur se produit lorsque la dépendance du module complémentaire Keda n'est pas déployée sur le cluster. AppScan 360° SAST dépend du module complémentaire Keda pour le déploiement.

  • Solution :

    Vérifiez que Keda est déployé et en cours d'exécution sur votre cluster Kubernetes. Consultez la configuration système requise et les instructions de configuration de l'environnement.

Ressource déjà utilisée ou impossible à recréer

  • Erreur :
    • Previous PVC storage not completely cleaned up.
    • Incomplete finalizers on pods.
    • Namespace stuck in termination state.
  • Cause principale :

    Les ressources d'un déploiement antérieur ne sont pas complètement nettoyées au cours du processus de suppression. Cela peut également se produire lorsque l'espace de noms est supprimé de force, ce qui prive des ressources de suivi sur le cluster.

  • Solution :
    La solution varie en fonction du type de problème de ressource :
    • Pour nettoyer un espace de noms bloqué à l'état de fin
      kubectl get namespace "hcl-appscan-sast" -o json | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" | kubectl replace --raw /api/v1/namespaces/hcl-appscan-sast/finalize -f-
    • Pour nettoyer un pod bloqué à l'état de fin

      kubectl delete pod <pod-name> --grace-period=0 --force --namespace <namespace>
    • Pour supprimer les ressources PV et PVC orphelines

      kubectl patch pv <pv-name> -p '{"metadata":{"finalizers":null}}'
      kubectl delete pv --grace-period=0 --force --namespace <namespace> <pv-name>
      kubectl patch pvc <pvc-name> -p '{"metadata":{"finalizers":null}}
      kubectl delete pvc --grace-period=0 --force --namespace <namespace> <pvc-name>

Paramètres requis non fournis

  • Erreurs :
    • ERROR: Authorization token is required for the deployment. Use the option '--auth-token' to specify the file path which contains the token.
    • ERROR: Authorization token file path specified for the option '--auth-token' does not exist. o ERROR: Rabbitmq password is required for the deployment. Use the option '--rabbitmq-pwd' to specify the file path which contains the password.
    • ERROR: Rabbitmq password file path specified for the option '--rabbitmq-pwd' does not exist.
    • ERROR: CA certificate & key are required for the deployment. Use the options '--cert, --cert-key' to specify the ca certificate and the private-key file paths.
    • ERROR: Certificate file path specified for the option '--cert' does not exist. 
    • ERROR: Certificate private key file path specified for the option '--cert-key' does not exist. 
    • ERROR: Configuration file path specified for the option '--config-file' does not exist.
  • Cause principale :

    Les paramètres requis par le script de déploiement ne sont pas fournis ou les valeurs fournies pour les options ne sont pas valides.

  • Solution :

    Vérifiez toutes les options requises par le script de déploiement et assurez-vous que des valeurs valides sont spécifiées pour les options.

Démarrage des pods impossible après l'exécution du script de déploiement

Après le déploiement, vous devez vous connecter au cluster pour vérifier que tous les pods AppScan 360° SAST sont opérationnels. Voici quelques exemples de problèmes de déploiement liés aux pods.

Erreurs liées aux ressources PV (PersistentVolume) et PVC (PersistentVolumeClaim)

Pour créer une ressource PVC, la taille de stockage requise doit être disponible sur le disque. Vérifiez que l'espace disque du stockage de données est suffisant pour prendre en charge la capacité requise. Une ressource PVC non provisionnée entraîne l'échec de la création des pods.

Remarque : L'utilisation de solutions de stockage cloud comme azurefile permet de bénéficier d'une grande capacité de stockage moyennant des frais.

Si les ressources PV et PVC existantes liées à AppScan 360° SAST ne sont pas complètement supprimées, aucun nouveau déploiement ne peut créer de ressources PV et PVC pour cause de collision de noms, ce qui entraîne l'échec de la création des pods.

  • Solution :

    Attendez quelques secondes après la suppression pour vous assurer que toutes les ressources PV et PVC ont bien été libérées avant de tenter un nouveau déploiement.

UC/Mémoire insuffisante pour la création des pods

En ce qui concerne les ressources des pods, un ensemble défini d'exigences s'applique à chacun des composants d'AppScan 360° SAST. Pour plus d'informations, consultez la section Exigences en matière de ressources.

La création des pods échoue si la limite minimale de ressources définie pour chaque pod n'est pas disponible sur le ou les pools de nœuds.

RabbitMQ non opérationnel

Le service RabbitMQ doit être opérationnel pour que les composants d'AppScan 360° SAST fonctionnent comme prévu. La mise en route du service RabbitMQ prend quelques minutes et le démarrage des pods AppScan 360° SAST peut échouer à plusieurs reprises pendant le déploiement de RabbitMQ. Si le service RabbitMQ ne parvient pas à démarrer, les pods AppScan 360° SAST échouent à leur tour.

Les pods ne sont pas déplacés vers l'état « prêt »
  • Erreur :
    • Startup probe failed: …
    • Readiness probe failed: …
  • Cause principale :

    Un ou plusieurs contrôles d'intégrité ont échoué pour le pod.

  • Solution :
    • Vérifiez que les composants dépendants fonctionnent et sont configurés correctement.
    • Exécutez la commande kubectl describe pod <pod-name> -n <namespace> pour plus de détails.
    • Pour plus d'informations, consultez les journaux des pods. Voir Dépannage des examens conteneurisés.

Echec de l'extraction d'image

Erreur :

failed to authorize: failed to fetch anonymous token: unexpected status: 401 Unauthorized

Cause principale :

Ce problème est dû au fait que le secret de registre AppScan 360° SAST n'a pas été créé ou que le secret de registre actuel contient des informations d'identification obsolètes.

Solutions :

Certificat expiré

Pour mettre à jour les certificats qui ont expiré :
  1. Réexécutez la commande de déploiement en fournissant le nouveau certificat et la clé privée correspondante.
  2. Supprimez les secrets suivants de l'espace de noms qui contient les certificats des composants internes. Les secrets sont automatiquement régénérés.
    kubectl delete secret sast-service-tls gateway-tls workflow-manager-tls scan-manager-tls preparer-tls analyzer-tls ascp-adapter-tls sast-service-rabbitmq-tls --namespace hcl-appscan-sast 
  3. Supprimez tous les pods de l'espace de noms. De nouveaux pods utilisant les secrets TLS nouvellement générés sont automatiquement créés.
    kubectl delete --all pods --namespace=hcl-appscan-sast

Echec du déploiement lors d'une nouvelle installation

Dans certaines situations, le déploiement d'AppScan 360° SAST sur un cluster sans déploiement SAST en cours peut échouer en raison d'opérations antérieures de retour arrière sur le cluster. Une mise à niveau ou une reconfiguration antérieure d'AppScan 360° SAST en sont des exemples.
Remarque : Le processus de déploiement gère automatiquement les échecs de mise à niveau et restaure automatiquement la version stable précédente du cluster. Ces instructions de dépannage s'appliquent uniquement aux nouvelles installations effectuées sur le cluster.

Erreur :

L'opération de déploiement de Helm échoue avec l'erreur générique ERROR: Deploy SAST services - failed. Installation aborted!

Cause principale :

Une tentative de mise à niveau précédente sur ce cluster a échoué en laissant d'anciens fichiers secrets sur le cluster. Ces fichiers empêchent le nouveau déploiement de créer des fichiers similaires nécessaires au nouveau déploiement.

Solution :

Exécutez la commande undeploy avant de tenter une nouvelle installation. Voir Suppression d'Analyse statique AppScan 360°

Service inaccessible

AppScan 360° SAST doit être accessible via le FQDN (https://<sast-ingress-fqdn>) fourni comme paramètre du script de déploiement. Voici quelques exemples d'erreurs qui peuvent rendre le service inaccessible via le FQDN :

Dépendance du contrôleur d'ingress manquante
  • Erreur :
    • Impossible d'accéder à ce site.
  • Cause principale :

    Cette erreur peut se produire lors d'une tentative d'accès à AppScan 360° SAST à partir du FQDN spécifié sur un navigateur, lorsque le contrôleur d'ingress n'est pas correctement installé ou configuré.

  • Solution :
    • Vérifiez que contrôleur d'ingress est déployé et en cours d'exécution sur votre cluster Kubernetes. Consultez la section des conditions préalables pour prendre connaissance des différentes dépendances requises.
    • Assurez-vous que l'adresse IP statique utilisée lors de la configuration du contrôleur d'ingress correspond au FQDN utilisé pour le déploiement.

      Pour ce faire, vous pouvez créer un jeu d'enregistrements sur votre outil de gestion DNS cloud ou mettre à jour le fichier /etc/hosts de la machine locale.

FQDN non approprié
  • Erreur :
    • Impossible d'accéder à ce site.
  • Cause principale :

    Le FQDN utilisé pour configurer l'ingress est différent de celui utilisé pour accéder au service. Un mappage IP/DNS incorrect peut ici constituer un autre problème. Si le FQDN utilisé est différent de la valeur mappée à l'adresse IP d'ingress, le service est inaccessible.

  • Solution :
    • Vérifiez que le FQDN utilisé pour accéder au service correspond à la valeur transmise au script de déploiement.
    • Vérifiez que la valeur du FQDN est mappée à l'adresse IP d'ingress dans le fichier /etc/hosts de votre machine locale ou dans la zone d'hôte du DNS cloud.
Connexion au cluster refusée
  • Erreur :
    Kubernetes cluster unreachable: Get "http://localhost:8080/version": dial tcp [::1]:8080: connect: connection refused
  • Cause principale :

    Le fichier config est manquant ou n'est pas configuré correctement pour accorder l'accès de kubectl au cluster.

  • Solution possible :
    • Assurez-vous que le fichier config existe dans .kube/config.

    • Assurez-vous que .kube/config est détenu par l'utilisateur actuel.

    • Assurez-vous que kube/config dispose des autorisations appropriées.

    • Exporter KUBECONFIG.

Service de passerelle non démarré

Déploiement réussi mais les pods ne démarrent pas
  • Erreur :
    • Le message d'erreur dépend ici de la cause principale
  • Cause principale :
    • Imagepullbackoff : Il s'agit de la raison la plus courante des échecs de pods. Une erreur se produit lorsque l'image ne peut pas être extraite du chemin référentiel/référentiel fourni.
    • UC insuffisante, mémoire insuffisante : Cette erreur se produit lorsque les valeurs minimales d'UC et de mémoire définies pour AppScan 360° SAST ne sont respectées par aucun nœud du pool de nœuds du cluster.
  • Solution :
    • Vérifiez que le référentiel fourni lors du déploiement contient les images en cours de déploiement.
    • Vérifiez que l'authentification du référentiel fournie est correcte. Le déploiement d'AppScan 360° SAST nécessite une authentification précise pour extraire les images du référentiel.
    • Vérifiez que le pool de nœuds dispose de suffisamment de mémoire et de ressources d'UC pour répondre aux exigences minimales définies lors du déploiement.
    • Pour plus d'informations, consultez les journaux d'erreurs des pods.
Déploiement réussi mais Workflow Manager ne démarre pas
  • Erreur :
    Failed to inject service URL to SAClientUtil ...
  • Cause principale :

    Problème de connectivité possible avec le serveur ASCP et échec subséquent de récupération de la clé publique.

  • Solution :
    • Vérifiez que le serveur ASCP est actif et en cours d'exécution.

    • Vérifiez que les informations du serveur, le jeton d'authentification, le certificat et la clé sont tous corrects.

    • Pour plus d'informations, consultez les journaux d'erreurs des pods.

Les examens sont à l'état « Initialisation » dans ASCP, mais ne vont jamais plus loin
  • Erreur :

    L'état de l'examen indique « Initialisation » et ne va pas plus loin.

  • Cause principale :

    Problème de connectivité possible entre ASCP et AppScan 360° SAST.

  • Solution :
    • Vérifiez que le serveur ASCP est configuré avec l'URL correcte AppScan 360° SAST.
    • Vérifiez que la machine serveur ASCP résout correctement le nom de domaine complet d'ingress de AppScan 360° SAST.
    • Pour plus de détails, consultez les journaux ASCP.