Déploiement de clusters Analyse statique AppScan 360°
tar.gz
) téléchargé depuis le portail licence et de téléchargement HCL. Chaque groupement contient un script (sast-service.sh
) qui permet de simplifier les étapes de déploiement.- Déploiement de Analyse statique AppScan 360° à l'aide de graphiques Helm de HCL Harbor
- Déploiement d'Analyse statique AppScan 360° à partir d'un fichier d'archive
- Intégration avec ASCP
- Configuration de l'ingress AppScan 360° SAST
- Reconfiguration d'Analyse statique AppScan 360°
- Options de commande de déploiement
- Exemples
- Accéder à AppScan 360° SAST après le déploiement
Déploiement de Analyse statique AppScan 360° à l'aide de graphiques Helm de HCL Harbor
- 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 le nom d'hôte du serveur ASCP.
Par exemple,
ascp.example.com
- 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'authentification de l'utilisateur à partir de
Par exemple,
registry-token.txt
.
et enregistrez-le dans un fichier. - 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é. - Identifiez le fournisseur de stockage à utiliser.
Azure prend en charge
azurefile
, mais si d'autres fournisseurs de stockage doivent être utilisés, assurez-vous qu'ils prennent en chargeReadWriteMany
. - Exécutez le script AppScan 360° SAST avec des options pour déployer le cluster localement. Exemple :
> ./sast-service.sh --install --ingress-host <sast-ingress-fqdn> \ --server <ascp-fqdn> \ --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry-user <harbor-username> \ --registry-token registry-token.txt \ --storage-class azurefile \ --ingress-class nginx
Remarque :- Fournissez des droits d'exécution sur les fichiers de scripts. Par exemple,
chmod -R +x sast-service.sh scripts/*
. - Utilisez l'option
-f
pour spécifier le chemin d'accès à un fichier YAML avec des valeurs personnalisées, 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 Age analyzer-<pod-id>
1/1 En cours d'exécution X X ascp-adapter-<pod-id>
1/1 En cours d'exécution X X gateway-<pod-id>
1/1 En cours d'exécution X X preparer-<pod-id>
1/1 En cours d'exécution X X sast-service-rabbitmq-0
1/1 En cours d'exécution X X scan-manager-<pod-id>
1/1 En cours d'exécution X X workflow-manager--<pod-id>
1/1 En cours d'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.example.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-token-file>
: Fichier contenant le jeton d'authentification de l'utilisateur du registre. Par exemple :--registry-token ./registry-token.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 le nom d'hôte du serveur ASCP.
Par exemple,
ascp.example.com
- 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é. - Identifiez le fournisseur de stockage à utiliser.
Azure prend en charge
azurefile
, mais si d'autres fournisseurs de stockage doivent être utilisés, assurez-vous qu'ils prennent en chargeReadWriteMany
. - Exécutez le script AppScan 360° SAST avec des options pour déployer le cluster localement. Exemple :
> ./sast-service.sh --install --ingress-host <sast-ingress-fqdn> \ --server <ascp-fqdn> --cert AppScan360_RootCA.crt \ --cert-key AppScan360_RootCA.key \ --auth-token AgentsApiKey.txt \ --rabbitmq-password rabbitmq-pwd.txt \ --registry <registry-name> \ --registry-user <registry-username> \ --registry-token <registry-token-file> \ --storage-class azurefile \ --ingress-class nginx \ --load-images
Remarque : Utilisez l'option-f
pour spécifier le chemin d'accès à un fichier YAML avec des valeurs personnalisées, 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-sast
par 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 Age analyzer-<pod-id>
1/1 En cours d'exécution X X ascp-adapter-<pod-id>
1/1 En cours d'exécution X X gateway-<pod-id>
1/1 En cours d'exécution X X preparer-<pod-id>
1/1 En cours d'exécution X X sast-service-rabbitmq-0
1/1 En cours d'exécution X X scan-manager-<pod-id>
1/1 En cours d'exécution X X workflow-manager--<pod-id>
1/1 En cours d'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.example.com
).
Intégration avec ASCP
L'URL d'entrée de Analyse statique AppScan 360° doit être configurée dans ASCP pour une intégration réussie entre les composants AppScan 360°. L'URL peut être configurée lors de l'installation ou de la reconfiguration du serveur ASCP, ou en tant qu'étape après l'installation.
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 commande de déploiement
Paramètre | Description | Valeur par défaut | Obligatoire |
---|---|---|---|
-h |-help |
Affiche les commandes disponibles et l'utilisation appropriée. | ||
-i |--install |
Déployez AppScan 360° SAST. Cet indicateur n'attend aucune valeur d'option. | N/A | Oui |
-s |--server hostname |
Fournit le nom d'hôte du serveur ASCP (FQDN). Le serveur ASCP est configuré dans le cadre de l'installation de la plateforme AppScan 360° et permet à l'utilisateur de lancer un examen Analyse statique AppScan 360°. | Oui | |
-cc |--cert cert-file-path |
Pour configurer TLS et HTTPS, fournissez un chemin d'accès complet à un fichier de certificat signé. | Oui | |
-ck |--cert-key key-file-path |
Indiquez le chemin d'accès correspondant à la clé privée pour le certificat spécifié. | Oui | |
-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 ASCP. | Oui | |
-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é. | Oui | |
-sc |--storage-class name |
permet aux utilisateurs de configurer le fournisseur de stockage à utiliser pour toutes les exigences de stockage AppScan 360° SAST. Exemples : local-path , azurefile et longhorn . |
Oui | |
-r |--registry registry |
Nom du registre pour charger les images. Remarque : Pour les déploiements cloud qui utilisent un fichier 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. | Oui, sauf lors du déploiement pendant l’utilisation d’un fichier archive dans un cluster Kubernetes local (K3S, par exemple). | |
-rt , --registry-token token-file-path |
Chemin d'accès à un fichier contenant le jeton d'authentification 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. |
Oui, sauf lors du déploiement pendant l’utilisation d’un fichier archive dans un cluster Kubernetes local (K3S, par exemple). | |
-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 |
Non |
-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. | Non |
-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. | Non |
-n |--namespace |
L'espace de noms où AppScan 360° SAST est déployé. | hcl-appscan-sast |
Non |
-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 . |
N/A | Non |
-ih |--ingress-host hostname |
Un nom de domaine complet (FQDN) pour l'accès à l'ingress AppScan 360° SAST après le déploiement. Si le nom de domaine complet fourni ne peut pas être résolu dans le DNS, assurez-vous que le fichier |
sast.example.com |
Non |
-ic |--ingress-class name |
Le contrôleur d'ingress est utilisé pour exposer l'AppScan 360° SAST par le biais du service de passerelle. Si cela n'est pas spécifié, aucun contrôleur d'entrée n'est configuré. | Non | |
-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. | |
-verbose |
Génère des messages complets relatifs au déploiement dans la console. | Non |
Exemples
> az login ...
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry-user hcl-harbor-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefile
> az login ...
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry appscanregistry.azurecr.io \
--registry-user azure-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class azurefile \
--load-images
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry-user hcl-harbor-user \
--registry-token ./registry-token.txt \
--ingress-class nginx \
--storage-class local-path
> ./sast-service.sh --install \
--ingress-host test.sast.example.com \
--server test.ascp.example.com \
--cert ./AppScan360_RootCA.crt \
--cert-key ./AppScan360_RootCA.key \
--auth-token ./AgentsApiKey.txt \
--rabbitmq-password ./rabbitmq-pwd.txt \
--registry docker.io \
--ingress-class nginx \
--storage-class local-path \
--load-images
Accéder à AppScan 360° SAST après le déploiement
> https://<appscan sast url>/swagger-ui/index.html
—auth-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