Exécution en production (Open Source)
Utilisation en production (avec Docker compose)
Le fichier docker-compose.yml de ce dépôt est pleinement fonctionnel pour évaluer DefectDojo dans votre environnement local.
Bien que Docker Compose soit l’une des méthodes d’installation prises en charge pour déployer une instance conteneurisée de DefectDojo en environnement de production, le fichier docker-compose.yml n’est pas destiné à une utilisation en production sans être préalablement personnalisé selon votre situation particulière.
Consultez Exécution avec Docker Compose pour plus d’informations sur l’exécution de DefectDojo avec Docker Compose.
Exigences système
Il est recommandé d’utiliser un serveur de base de données dédié plutôt que la base de données PostgreSQL préconfigurée. Cela améliorera significativement les performances de DefectDojo.
Taille de l’instance
Avec une base de données séparée, les recommandations minimales pour exécuter DefectDojo sont :
- 2 vCPU
- 8 Go de RAM
- 10 Go d’espace disque (rappelez-vous que votre base de données n’est pas ici -- donc ce que vous prévoyez pour votre O/S devrait suffire). Vous pourriez allouer un disque différent de celui de votre OS's pour des améliorations de performance potentielles.
Sécurité
Vérifiez la configuration nginx et les autres aspects d’exécution tels que les en-têtes de sécurité, afin de vous conformer à vos exigences de conformité.
Remplacez la clé de chiffrement AES256 &91a*agLqesc*0DJ+2*bAbsUZfR*4nLw dans docker-compose.yml par une clé unique pour votre instance.
Cette clé de chiffrement est utilisée pour chiffrer les clés API et autres identifiants stockés dans Defect Dojo pour se connecter à des outils externes tels que SonarQube. Une clé peut être générée de différentes façons, par exemple à l’aide d’un gestionnaire de mots de passe ou d’openssl :
openssl rand -base64 32 DD_CREDENTIAL_AES_256_KEY: "${DD_CREDENTIAL_AES_256_KEY:-<PUT THE GENERATED KEY HERE>o}"Sauvegarde des fichiers
Dans les deux cas (base de données dédiée ou conteneurisée), si vous êtes en auto-hébergement, il est recommandé de mettre en place et de créer des sauvegardes périodiques de vos données.
Fichiers multimédias
Les fichiers multimédias correspondant aux fichiers téléversés, y compris les modèles de menace et les acceptations de risque, sont stockés dans un volume docker. Ce volume doit être sauvegardé régulièrement.
Ajustements de performance
uWSGI
Par défaut (sauf en mode ptvsd à des fins de débogage), uWSGI
gère 16 connexions simultanées.
En fonction de vos paramètres de ressources, vous pouvez ajuster :
DD_UWSGI_NUM_OF_PROCESSESpour le nombre de processus créés. (par défaut 4)DD_UWSGI_NUM_OF_THREADSpour le nombre de threads dans ces processus. (par défaut 4)
Par exemple, vous pourriez avoir 4 processus avec 6 threads chacun, ce qui donne 24 connexions simultanées.
Celery worker
Par défaut, un seul worker celery mono-processus est créé. Lors du stockage d’un grand nombre de Constatations ou de l’exécution d’imports volumineux, il peut être utile d’ajuster ces paramètres pour éviter une pénurie de ressources.
Les variables suivantes peuvent être modifiées pour augmenter les performances du worker, tout en conservant un seul conteneur celery.
DD_CELERY_WORKER_POOL_TYPEvous permet de passer àprefork. (par défautsolo)
Lorsque vous activez prefork, les variables ci-dessous doivent
être utilisées. Consultez le fichier
Dockerfile.django-* pour les références internes.
DD_CELERY_WORKER_AUTOSCALE_MINvaut 2 par défaut.DD_CELERY_WORKER_AUTOSCALE_MAXvaut 8 par défaut.DD_CELERY_WORKER_CONCURRENCYvaut 8 par défaut.DD_CELERY_WORKER_PREFETCH_MULTIPLIERvaut 128 par défaut.
Vous pouvez exécuter la commande suivante pour voir la configuration :
docker compose exec celerybeat bash -c "celery -A dojo inspect stats"
et voir ce qui est en vigueur.
Import asynchrone : obsolète
Cette fonctionnalité a été supprimée dans la version 2.47.0