Déploiement de clusters Analyse statique AppScan 360°
Les clusters Analyse statique AppScan 360° peuvent être déployés sur Azure. Les graphiques sont accessibles depuis Harbor ou depuis une installation locale à partir du fichier d'archive tar.gz. Chaque groupement contient un script (sast-service.sh) qui permet de simplifier les étapes de déploiement.
Déploiement d'Analyse statique AppScan 360° à partir de graphiques Helm
- Assurez-vous que vous êtes connecté au bon cluster Kubernetes.
Vérifiez que vous disposez du fichier de configuration de cluster approprié dans le dossier
.kube. - Obtenez l'adresse URL de service du serveur ASCP (
agents-api).Par exemple,
https://ascp.appscan.com:5000 - Récupérez les fichiers de jeton d'authentification, de certificat et de clé privée du serveur ASCP sur la machine actuelle.
- Le jeton d'authentification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--auth-token. Par exemple,--auth-token AgentsApiKey.txt. - Le certificat d'autorité de certification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--cert. Par exemple,--cert AppScan360_RootCA.crt. - La clé privée peut être spécifiée pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--cert-key. Par exemple,--cert-key AppScan360_RootCA.key.
- Le jeton d'authentification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
- Obtenez le jeton d'interface de ligne de commande de HCL Harbor pour le compte utilisateur et enregistrez-le dans un fichier.
Par exemple,
registry-token.txt. - Créez un fichier pour stocker le mot de passe RabbitMQ.Par exemple,
rabbitmq-pwd.txt. Ce mot de passe est configuré dans RabbitMQ lorsqu'il est installé.Remarque : Une fois configuré, ce mot de passe ne peut pas être modifié. - Exécutez le script AppScan 360° SAST avec des options pour déployer le cluster localement ou sur Azure :
> ./sast-service.sh --install --cloud azure \ --ingress-host <sast-ingress-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --server-url https://<ascp-fqdn>:<agents-api-port> \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry-user <harbor-username> \ --registry-token registry-token.txt \ --storage-class azurefile \ --ingress-class nginxRemarque :- Fournissez des droits d'exécution sur les fichiers de scripts. Par exemple,
chmod -R +x sast-service.sh scripts/*. - Utilisez l'option
-fpour spécifier le chemin d'accès à un fichier YAML avec des paramètres personnalisés, comme décrit dans la section Paramètres de configuration du déploiement. Par exemple,-f values.yaml.
- Fournissez des droits d'exécution sur les fichiers de scripts. Par exemple,
- Vérifiez la réussite du déploiement :Où
> kubectl get pods -n <NAMESPACE><NAMESPACE>correspond à l'espace de noms sur lequel AppScan 360° SAST est installé. La valeur par défaut esthcl-appscan-sast. - Vérifiez que tous les pods associés à AppScan 360° SAST sont opérationnels, comme suit :
Nom du pod Prêt Statut Redémarrage Âge analyzer-<pod-id>1/1 Exécution X X ascp-adapter-<pod-id>1/1 Exécution X X gateway-<pod-id>1/1 Exécution X X preparer-<pod-id>1/1 Exécution X X sast-service-rabbitmq-01/1 Exécution X X scan-manager-<pod-id>1/1 Exécution X X workflow-manager--<pod-id>1/1 Exécution X X - Assurez-vous qu'AppScan 360° SAST est accessible à partir d'un navigateur à l'aide de l'adresse URL
https://<sast-ingress-fqdn>.(Par exemple, https://sast.appscan.com)
Déploiement d'Analyse statique AppScan 360° à partir d'un fichier d'archive
tar.gz :- Pour charger les images de conteneur dans ACR ou tout autre registre de votre choix, fournissez les informations d'identification du registre au script de déploiement à l'aide des options de paramètre suivantes :Remarque : Les images de conteneur AppScan 360° SAST doivent être chargées dans un registre distant compatible OCI.
--registry <registry>: Registre pour le transfert des images de conteneur. Exemple :appscanregistry.azurecr.io, docker.io.--registry-user <registry-username>: Nom d'utilisateur du registre pour l'authentification.--registry-token <registry-password-file>: Fichier contenant le mot de passe de l'utilisateur du registre. Par exemple :--registry-token ./registry-.txt--load-images: Cette option indique que les images de conteneur doivent être chargées à partir du système de fichiers dans le registre. Les images de conteneur peuvent se trouver dans le cheminsast-service-base/images/*.image.
- Assurez-vous que vous êtes connecté au bon cluster Kubernetes.
Vérifiez que vous disposez du fichier de configuration de cluster approprié dans le dossier
.kube. - Obtenez l'adresse URL de service du serveur ASCP (
agents-api).Par exemple,
https://ascp.appscan.com:5000 - Récupérez les fichiers de jeton d'authentification, de certificat et de clé privée du serveur ASCP sur la machine actuelle.
- Le jeton d'authentification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--auth-token. Par exemple,--auth-token AgentsApiKey.txt. - Le certificat d'autorité de certification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--cert. Par exemple,--cert AppScan360_RootCA.crt. - La clé privée peut être spécifiée pour le déploiement d'AppScan 360° SAST à l'aide de l'option
--cert-key. Par exemple,--cert-key AppScan360_RootCA.key.
- Le jeton d'authentification peut être spécifié pour le déploiement d'AppScan 360° SAST à l'aide de l'option
- Créez un fichier pour stocker le mot de passe RabbitMQ.Par exemple,
rabbitmq-pwd.txt. Ce mot de passe est configuré dans RabbitMQ lorsqu'il est installé.Remarque : Une fois configuré, ce mot de passe ne peut pas être modifié. - Exécutez le script AppScan 360° SAST avec des options pour déployer le cluster localement ou sur Azure :
> ./sast-service.sh --install --cloud azure \ --ingress-host <sast-ingress-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --server-url https://<ascp-fqdn>:<agents-api-port> \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry-user <harbor-username> \ --registry-token registry-token.txt \ --storage-class azurefile \ --ingress-class nginxRemarque : Utilisez l'option-fpour spécifier le chemin d'accès à un fichier YAML avec des paramètres personnalisés, comme décrit dans la section Paramètres de configuration du déploiement. Par exemple,-f values.yaml. - Vérifiez la réussite du déploiement :Où
> kubectl get pods -n <NAMESPACE><NAMESPACE>correspond à l'espace de noms sur lequel AppScan 360° SAST est installé.hcl-appscan-sastpar défaut. - Vérifiez que tous les pods associés à AppScan 360° SAST sont opérationnels, comme suit :
Nom du pod Prêt Statut Redémarrage Âge analyzer-<pod-id>1/1 Exécution X X ascp-adapter-<pod-id>1/1 Exécution X X gateway-<pod-id>1/1 Exécution X X preparer-<pod-id>1/1 Exécution X X sast-service-rabbitmq-01/1 Exécution X X scan-manager-<pod-id>1/1 Exécution X X workflow-manager--<pod-id>1/1 Exécution X X - Assurez-vous qu'AppScan 360° SAST est accessible à partir d'un navigateur à l'aide de l'adresse URL
https://<sast-ingress-fqdn>.(Par exemple, https://sast.appscan.com)
Configuration de l'ingress AppScan 360° SAST
Pour configurer l'ingress fourni afin d'utiliser https, utilisez une annotation nginx.ingress.kubernetes.io/backend-protocol pour indiquer comment NGINX doit communiquer avec le service back-end :
- Paramètre
global.ingress.additionalAnnotations - Description
Liste des annotations à configurer dans l'ingress Analyse statique AppScan 360°.
- Exemple
nginx.ingress.kubernetes.io/backend-protocol: HTTPS
Reconfiguration d'Analyse statique AppScan 360°
Après le déploiement initial d'Analyse statique AppScan 360°, les utilisations suivantes du script de déploiement reconfigurent les clusters Kubernetes à l'aide des dernières options de déploiement spécifiées. Il n'est pas nécessaire de supprimer les clusters.
Namespace 'hcl-appscan-sast' already exists. The SAST deployment will be upgraded.Options de déploiement
- L'installation locale utilise
local-pathcomme fournisseur de stockage, où les artefacts d'examen sont stockés. - Le script de déploiement accepte les informations confidentielles par le biais de fichiers texte. Par exemple, pour un jeton de registre ou un mot de passe RabbitMQ.
- Pour personnaliser l'installation, fournissez un fichier de configuration au format de fichier
yaml.
| Paramètre | Description | Valeur par défaut | Requise |
|---|---|---|---|
-i, --install |
Déployez AppScan 360° SAST. Cet indicateur n'attend aucune valeur d'option. | Non applicable | Yes |
-l ,--local, -c, --cloud |
Spécifiez l'instance Kubernetes locale ou l'installation cloud.
|
-l |
Yes |
-n, --namespace |
Espace de noms du conteneur. | hcl-appscan-sast |
Yes |
-f, --config-file yaml-file-path |
Configurez ou personnalisez le déploiement du conteneur avec un fichier yaml spécifiant les détails de la configuration. Voir Paramètres de configuration du déploiement pour plus d'informations sur la configuration du fichier yaml. |
Non applicable | Non |
-ih|--ingress-host hostname |
Nom d'hôte accessible pour l'ingress. AppScan 360° SAST nécessite l'exécution d'un contrôleur d'ingress sur le cluster. Pour les clusters cloud, un nom d'hôte accessible au public configuré sur la zone d'hôte des fournisseurs cloud. Pour un déploiement local, n'importe quel nom dns peut être utilisé. Remarque : Pour une installation locale, ajoutez un nom |
||
-cc, --cert cert-file-path |
Pour configurer TLS et HTTPS, fournissez un chemin d'accès complet à un fichier de certificat signé. Lorsqu'il est laissé vide, TLS est désactivé et HTTP est utilisé. | HTTP | |
-ck, --cert-key key-file-path |
Indiquez le chemin d'accès correspondant à la clé privée pour le certificat spécifié. | Si un certificat signé est fourni. | |
-su, --server-url url |
Adresse URL et numéro de port du service API du serveur ASCP. Le serveur ASCP est configuré dans le cadre de l'installation de la plateforme AppScan 360 et permet à l'utilisateur de lancer un examen SAST. | ||
-at|--auth-token token |
Autorisation de connexion ASCP avec les services SAST. Il facilite également les communications et les échanges entre les services de plateforme ASCP et AppScan 360° SAST. | Yes | |
-p |--rabbitmq-passwords pwd-file-path |
Spécifie le chemin d'accès au fichier du mot de passe de l'utilisateur RabbitMQ. Remarque : Une fois configuré, le mot de passe RabbitMQ ne peut pas être modifié. | Yes | |
-r , --registry registry |
Nom du registre pour charger les images. Remarque : Pour les déploiements cloud qui utilisent des fichiers .zip d'archive contenant des images SAST, un registre accessible par le registre cloud K8S doit être fourni pour garantir que l'extraction d'images est possible pendant le déploiement. |
|
|
-ru, --registry-user username |
Nom d'utilisateur du registre fourni. | ||
-rt, --registry-token token-file-path |
Chemin d'accès à un fichier contenant le jeton d'interface de ligne de commande de l'utilisateur pour le registre spécifié. Remarque : Pour des raisons de sécurité, le jeton ne peut être fourni qu'à l'aide d'un fichier. |
||
-ro|-repo|--repository repository |
Chemin d'accès au référentiel permettant de localiser les images et les graphiques Helm. | appscan360-sast/sast-service |
|
-v, --version |
Version d'AppScan 360° SAST à télécharger. | Par défaut, la version du script utilisée pour le déploiement actuel est utilisée. | Requis lors du téléchargement depuis Harbor. |
-t, --tag image-tag |
Version d'AppScan 360° SAST à installer. Lorsqu'elle n'est pas spécifiée, la dernière version du référentiel ou de l'archive est utilisée. | Dernière version disponible | Yes |
-ic|--ingress-class name |
Le contrôleur d'ingress est utilisé pour exposer l'AppScan 360° SAST par le biais du service de passerelle. Vous devez fournir le nom du contrôleur d'ingress installé dans le cluster. | Yes | |
-sc|--storage-class |
Configurez le fournisseur de stockage à utiliser pour toutes les exigences de stockage AppScan 360° SAST. |
|
|
-x, --load-images |
Lors du téléchargement d'une archive à partir de FNO, ce paramètre indique que les images de conteneur doivent être chargées à partir du système de fichiers et transférées vers le registre de conteneur spécifié. Cette option doit être utilisée pour les déploiements en mode étanche uniquement. | Non | |
-verbose |
Génère des messages complets relatifs au déploiement dans la console. |
Exemples
> ./sast-service.sh -i -l -ih sast.appscan.com \
-cc ./config/appscan.crt -ck ./config/appscan.key \
-su https://asop.appscan.com:1234 -st ./config/server.token \
-ru appscan-user@hcl.com -rt ./config/registry.token \
-pwd ./config/sast.pwd --rabbitmq-password ./config/rabbitmq.pwd> az login ...
> ./sast-service.sh --install \
--cloud azure \
--ingress-host test.sast.appscan.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--server-url https://test.asop.appscan.com:5000 \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry appscanregistry.azurecr.io
--registry-user registryuser \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefileAccès aux conteneurs après le déploiement
> https://<appscan sast url>/swagger-ui/index.htmlauth-token. Vous pouvez extraire le jeton à l'aide de la commande suivante :> kubectl get secrets -n hcl-appscan-sast sast-service-secret -o jsonpath="{.data.SAST_AUTH_TOKEN}" | base64 -d