Configuration de l'environnement Analyse statique AppScan 360°

Avant d'installer Analyse statique AppScan 360°, configurez votre environnement pour un déploiement optimal.

L'environnement dans lequel vous installez et déployez Analyse statique AppScan 360° requiert la configuration de certains outils prérequis pour des performances optimales :

ID HCL

Votre ID HCL associe votre compte à des licences valides et à un accès aux logiciels et au support. Il est nécessaire pour accéder au portail de licence et de téléchargement HCL et à HCL Harbor.

Pour obtenir des informations complètes sur la création d'un ID HCL et l'accès aux licences et aux logiciels, consultez ce document.

Système Linux

Un système Linux Ubuntu ou Red Hat Enterprise est requis pour lancer le déploiement. Le déploiement réel peut se faire dans un cluster Kubernetes distant (par exemple, un cluster dans Azure Kubernetes Service), mais le déploiement est initié à partir de cette machine Linux.

Plateforme centrale AppScan

Plateforme centrale AppScan est la base de l'expérience Plateforme centrale AppScan. Il rassemble l'interface utilisateur, les API et les composants de base du serveur.

Des instructions complètes pour l'installation et la configuration de Plateforme centrale AppScan sont disponibles ici.

Important : Installez Plateforme centrale AppScan avant de télécharger et de déployer Plateforme centrale AppScan.
Une fois l'installation terminée, rassemblez les informations suivantes à partir d'ASCP en enregistrant les informations dans un fichier local, le cas échéant :
  • Nom d'hôte du service ASCP

    Nom d'hôte (FQDN) du serveur ASCP. Par exemple, ascp.example.com.

  • Jeton d'authentification

    Le jeton d'authentification se trouve à l'emplacement suivant : <ascp-install-path>\Keys\AgentsApiKey.txt.

  • Certificat CA

    Le fichier de certificat se trouve à l'emplacement suivant : <ascp-install-path>\Certs\AppScan360_RootCA.crt.

  • Clé privée

    Le fichier de clé privée se trouve à l'emplacement suivant : <ascp-install-path>\Certs\AppScan360_RootCA.key.

Service de conteneur local

Un service de conteneur local capable de transférer des images vers un registre distant est nécessaire lors de l'installation d'Analyse statique AppScan 360° à partir d'un fichier d'archive téléchargé depuis le portail licence et de téléchargement HCL. Vous pouvez utiliser docker, un processus persistant qui gère les conteneurs, ou containerd, un runtime qui gère le cycle de vie d'un conteneur sur une machine physique ou virtuelle.

Kubectl

Kubectl est utilisé pour communiquer avec les clusters Kubernetes distants.

Des instructions complètes pour l'installation et la configuration de Kubectl sont disponibles ici.

Cluster Kubernetes

Le cluster se trouve à l'emplacement où résident les conteneurs d'agent Analyse statique AppScan 360° et où ils sont utilisés.

Par exemple, pour déployer un cluster Azure Kubernetes, l'utilisateur doit disposer d'un groupe de ressources pour gérer les ressources consommées par le cluster.

Remarques sur la configuration du cluster :
  • Par défaut, les pods AppScan 360° SAST preparer et analyzer nécessitent un minimum de 16 Go de mémoire.
  • Un fournisseur de stockage prenant en charge ReadWriteMany est requis. AKS fournit azurefile en tant que fournisseur de stockage, qui prend en charge ReadWriteMany. Si un fournisseur de stockage personnalisé comme longhorn doit être utilisé, assurez-vous qu'il prend en charge `ReadWriteMany.

Vérifier la communication entre la machine virtuelle et le cluster Kubernetes

Par exemple, si vous utilisez un cluster Azure Kubernetes :
  1. Connectez-vous à votre compte Azure :
    > azure login
  2. Pour vous connecter au cluster Kubernetes sur Azure :
    > az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>

    --resource-group est le groupe de ressources Azure de votre cluster. --name est le nom du cluster à connecter à votre interface de ligne de commande.

    La connexion au cluster fusionne votre jeton d'installation dans un fichier .kube/config de votre dossier d'accueil. Ce fichier de configuration sera créé s'il n'existe pas.

Keda

Installer et configurer Keda :
> helm repo add kedacore https://kedacore.github.io/charts
> helm repo update
> helm install keda kedacore/keda --namespace keda --create-namespace  

Contrôleur d'ingress

Déployer un contrôleur d'ingress.

Le contrôleur d'ingress recommandé est NGINX (dernière version). Cependant, si un contrôleur d'ingress est déjà présent dans le cluster, il n'est pas nécessaire d'en installer un nouveau.

Une adresse IP liée au nom DNS est requise. Cette adresse IP doit exister dans le groupe de ressources Kubernetes par défaut pour le déploiement AKS.

Remarque : L'annotation de service ici est destinée au contrôle d'état de l'équilibreur de charge Azure et doit être utilisée uniquement lors de l'installation d'un ingress sur un cluster AKS.
> helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx 
> helm repo update 
> helm install ingress-nginx ingress-nginx/ingress-nginx \ 
    --namespace ingress-nginx \ 
    --create-namespace \ 
    --set controller.service.loadBalancerIP=<ip-address> \ 
    --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz

L'installation d'un ingress NGINX peut être configurée pour la tolérance, nodeSelector, etc. Ces configurations peuvent être transmises à la commande de déploiement Helm d'ingress à l'aide de l'option -f. Les paramètres configurables sont les suivants :

Paramètre Description
controller.config.proxy-body-size Taille maximale autorisée dans le corps de la requête. La valeur doit être supérieure à la taille des données que vous essayez de transférer.
controller.config.proxy-connect-timeout Délai d'attente maximal pour établir une connexion avec un serveur proxy.
controller.config.proxy-read-timeout Définit un délai d'attente pour la lecture d'une requête au serveur proxy.
controller.config.proxy-send-timeout Définit un délai d'attente pour la transmission d'une requête au serveur proxy
controller.config.enable-access-log-for-default-backend Active l'accès via une connexion au back-end par défaut. Désactivé par défaut.
controller.config.ssl-redirect Définit la valeur globale des redirections (301) vers HTTPS si le serveur dispose d'un certificat TLS. La valeur par défaut est true.
controller.config.use-http2 Active ou désactive la prise en charge HTTP/2 dans les connexions sécurisées.
nodeSelector.kubernetes.io/os Type de système d'exploitation sur les nœuds pour l'exécution de l'ingress.
tolerations.key Tolérance aux pannes.

Cert-manager

Installez et configurez Cert-manager :
> helm repo add jetstack https://charts.jetstack.io
> helm repo update
> helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true

Helm

Helm est un ensemble de ressources qui facilite la configuration et l'utilisation des applications Kubernetes.

Les instructions complètes d'installation de l'interface de ligne de commande Helm sont disponibles ici.

Azure CLI

L'interface de ligne de commande Azure est un ensemble de commandes utilisées pour créer et gérer des ressources Azure.

Des instructions complètes pour l'installation de l'interface de ligne de commande Azure sont disponibles ici.