Quickstart Guide
This document provides a quick guide to setting up and running the security scanning infrastructure using Trivy and other related tools.
Prerequisites
Before you begin, make sure you have the following prerequisites installed in your environment:
- Kubernetes Cluster
- Helm 3.x
- Credential setup in HashiCorp Vault
- Access to OpenStack (for storing results)
Project Structure
The project structure is organized as follows:
.
├── cronjob
│ ├── configmap.yaml
│ └── trivy-cronjob.yaml
├── trivy-operator
│ └── values.yaml
└── trivy-reporter
└── values.yaml
Main Files
1. cronjob/configmap.yaml
This file defines a ConfigMap that is used to store configurations and scripts necessary for executing the CronJob that performs security scans using Trivy.
- Primary Use: Store scripts and configurations that will be used by the
CronJob. - Important: Ensure that the scripts stored in this
ConfigMapare correctly formatted and configured to run in the Kubernetes environment.
2. cronjob/trivy-cronjob.yaml
This file defines a CronJob in Kubernetes that is responsible for periodically running the security scan using Trivy.
- Schedule: The
CronJobis configured to run at specific intervals defined in the file. - Containers: It uses several containers, including
trivy-reports-getterfor fetching the reports andtrivy-reports-uploaderfor uploading the results to an external storage like OpenStack. - Configurations: Ensure that all configurations, including volumes and
initContainers, are correctly set up before deploying thisCronJob.
3. trivy-operator/trivy_results.json
This file contains an example JSON output generated by Trivy after performing a security scan.
- Usage: Used as an example or reference to analyze the results of the scans.
- Important: This file can be used to conduct local tests on scripts that process Trivy's scan results.
4. trivy-operator/values.yaml
This file contains specific configurations for deploying the trivy-operator using Helm.
- Configuration: Defines the values to customize the deployment of the Trivy operator in the Kubernetes cluster.
- Note: Ensure to customize this file according to your environment's needs before deploying.
5. trivy-reporter/values.yaml
This file contains specific configurations for the trivy-reporter tool.
- Purpose: Used to configure how reports should be generated and processed after Trivy performs a scan.
- Configuration: Customize this file according to the environment and the report you wish to generate.
Deployment
To deploy the security scanning infrastructure, follow the steps below:
-
Configure ConfigMaps and Secrets: Ensure all necessary
ConfigMapsandSecretsare properly created in your Kubernetes cluster.kubectl apply -f cronjob/configmap.yaml -
Deploy the CronJob: Deploy the
CronJobthat will run the periodic scans.kubectl apply -f cronjob/trivy-cronjob.yaml -
Deploy Trivy Operator: Use Helm to deploy the
trivy-operatorin your cluster.helm install trivy-operator trivy-operator/ -f trivy-operator/values.yaml -
Deploy Trivy Reporter: Use Helm to deploy the
trivy-reporterin your cluster.helm repo add trivy-dojo-report-operator https://telekom-mms.github.io/trivy-dojo-report-operator/
helm repo update
helm install chart-name trivy-dojo-report-operator/trivy-dojo-report-operator --values trivy-reporter/values.yaml