diff --git a/docs/prerequisites/prerequisites-overview.md b/docs/prerequisites/prerequisites-overview.md index a3035bf7..890e6a5e 100644 --- a/docs/prerequisites/prerequisites-overview.md +++ b/docs/prerequisites/prerequisites-overview.md @@ -9,6 +9,7 @@ This section outlines the infrastructure requirements for deploying EOEPCA. Rath - **Storage**: Certain BBs need shared `ReadWriteMany` volumes. - **TLS**: For production, cert-manager or a similar mechanism is strongly recommended. - **(Optional) Object Storage**: E.g. MinIO or external S3. +- **(Optional) Security Scanner**: E.g. Trivy or NeuVector For more in-depth information about each requirement (including recommended solutions for production vs. development), see the respective pages: @@ -16,6 +17,7 @@ For more in-depth information about each requirement (including recommended solu - [Storage Requirements](storage.md) - [Ingress Controller Setup](../prerequisites/ingress/overview.md) - [TLS Management](tls.md) +- [Security Scanner](security-scanner.md) --- diff --git a/docs/prerequisites/security-scanner.md b/docs/prerequisites/security-scanner.md new file mode 100644 index 00000000..447470b6 --- /dev/null +++ b/docs/prerequisites/security-scanner.md @@ -0,0 +1,147 @@ +# EOEPCA+ Security Scanner Deployment Guide (Trivy) + +Running a security scanner is important for vulnerability management in an EOEPCA deployment, allowing you to detect when new vulnerabilities are published for both EOEPCA-published and third-party software artefacts present in your cluster. You can then take action such as updating image versions in your Helm configuration files. This is important even for freshly installed deployments as, whilst we will endeavour to update this guide and default image tags in our Helm charts to avoid vulnerable versions at each EOEPCA release, we do not do so in between releases. + +Security scanners can also assess your Kubernetes configuration. This guide aims to achieve a baseline level of good security configuration, but a scanner will help ensure that your cluster and your custom modifications meet your particiular security goals and policies. + +This guide and the EOEPCA project use Trivy, but alternatives such as NeuVector can be used instead. + +--- + +## Introduction + +This deployment uses Trivy Operator to run Trivy scans from within the Kubernetes cluster and save the results to custom resources. If you use ArgoCD then a UI plugin is available at https://github.com/mziyabo/argocd-trivy-extension that can display these results. Alternatively, you can view them with kubectl. + +--- + +## Prerequisites + +Before you begin, make sure you have the following: + +| Component | Requirement | Documentation Link | +| ---------------- | -------------------------------------- | ----------------------------------------------------------------- | +| Kubernetes | Cluster (tested on v1.32) | [Installation Guide](kubernetes.md) | +| Helm | Version 3.5 or newer | [Installation Guide](https://helm.sh/docs/intro/install/) | +| kubectl | Configured for cluster access | [Installation Guide](https://kubernetes.io/docs/tasks/tools/) | + +**Clone the Deployment Guide Repository:** + +```bash +git clone https://github.com/EOEPCA/deployment-guide +cd deployment-guide/scripts/trivy +``` + +**Validate your environment:** + +Run the validation script to ensure all prerequisites are met: + +```bash +bash check-prerequisites.sh +``` + +--- + +## Deployment Steps + +### Trivy Configuration + +Trivy will check that container images come from trusted registries. The list of trusted registries should be configured to match those you expect. The list below is sufficient for EOEPCA. + +```bash +kubectl create namespace trivy-system +cat <