For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/containers-orchestration/managed-kubernetes/install-trivy.md.

Analyser les vulnérabilités et erreurs de configuration de votre OVHcloud Managed Kubernetes avec Trivy

Voir en Markdown

Découvrez comment analyser les vulnérabilités et erreurs de configuration de votre OVHcloud Managed Kubernetes avec Trivy

Objectif

Trivy est un outil qui analyse les vulnérabilités, secrets et erreurs de configuration des conteneurs et autres artefacts.

Trivy

Trivy détecte les vulnérabilités dans :

  • les images de conteneurs
  • les systèmes de fichiers
  • les dépôts Git (une GitHub Action existe)
  • les clusters Kubernetes
  • les fichiers Infrastructure as Code (IaC) Terraform et CloudFormation
  • ...

Trivy analyse également les secrets codés en dur, comme les mots de passe, clés d'API et tokens.

Trivy

Plus qu'une simple image de conteneur Docker, Trivy peut désormais analyser un large éventail de données différentes, comme des clusters Kubernetes.

Pour information, Trivy est un outil en lecture seule : il ne fait que récupérer des informations afin de vous aider à sécuriser et assainir votre cluster. Il ne modifie ni ne supprime aucune ressource sur un cluster Kubernetes.

Pour en savoir plus, consultez la documentation de Trivy.

Chez OVHcloud, nous tenons à vous fournir les meilleurs produits et services. La sécurité est pour nous une priorité, c'est pourquoi nous souhaitons vous faire découvrir Trivy, qui vous aidera à sécuriser votre OVHcloud Managed Kubernetes grâce à des rapports utiles.

Dans ce guide, vous allez :

  • installer la CLI Trivy ;
  • générer et exporter des rapports ;
  • installer l'opérateur Kubernetes Trivy.

Vous pouvez utiliser la fonction Réinitialiser le cluster dans la section Public Cloud de l' pour réinitialiser votre cluster avant de suivre ce tutoriel.

Prérequis

Ce tutoriel suppose que vous disposez déjà d'un cluster OVHcloud Managed Kubernetes fonctionnel, ainsi que de connaissances de base sur son fonctionnement.

De plus, suivez la documentation Déployer une application Hello World afin de disposer d'une application d'exemple en cours d'exécution sur votre cluster.

À ce stade, vous devriez disposer d'un cluster Kubernetes fonctionnel avec un déploiement et un pod hello-world comme ci-dessous :

$ kubectl get po,deploy
NAME                                          READY   STATUS    RESTARTS   AGE
pod/hello-world-deployment-559d658ffb-q5t7j   1/1     Running   0          35m

NAME                                     READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/hello-world-deployment   1/1     1            1           35m

En pratique

Installer la CLI Trivy

Vous pouvez installer la CLI Trivy sur votre machine à partir des binaires, des sources, HomeBrew, Arch Linux, Ubuntu, etc., et même l'utiliser directement depuis une image Docker.

Pour ce tutoriel, vous allez l'installer via HomeBrew :

brew install aquasecurity/trivy/trivy

Le résultat devrait ressembler à ceci :

$ brew install aquasecurity/trivy/trivy
Running `brew update --preinstall`...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
dtrx                                     glider                                   hatch                                    terramate                                yorkie
==> Updated Formulae
Updated 326 formulae.
==> New Casks
bili-downloader                                    roam-research                                      rustdesk                                           swiftcord
==> Updated Casks
Updated 194 casks.
==> Deleted Casks
crystax-ndk

==> Tapping aquasecurity/trivy
Cloning into '/opt/homebrew/Library/Taps/aquasecurity/homebrew-trivy'...
remote: Enumerating objects: 285, done.
remote: Counting objects: 100% (174/174), done.
remote: Compressing objects: 100% (64/64), done.
remote: Total 285 (delta 57), reused 158 (delta 52), pack-reused 111
Receiving objects: 100% (285/285), 40.87 KiB | 747.00 KiB/s, done.
Resolving deltas: 100% (92/92), done.
Tapped 1 formula (12 files, 54.2KB).
==> Downloading https://github.com/aquasecurity/trivy/releases/download/v0.28.1/trivy_0.28.1_macOS-ARM64.tar.gz
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/180687624/f79fc5e4-30f4-461f-be69-598e11d7b81d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJY
######################################################################## 100.0%
==> Installing trivy from aquasecurity/trivy
Warning: A newer Command Line Tools release is available.
Update them from Software Update in System Preferences or run:
  softwareupdate --all --install --force

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/all/.
You should download the Command Line Tools for Xcode 13.3.

🍺  /opt/homebrew/Cellar/trivy/0.28.1: 5 files, 76.1MB, built in 1 second
==> Running `brew cleanup trivy`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

Après l'installation, vérifiez que la CLI trivy fonctionne correctement :

trivy version

Vous devriez obtenir un résultat similaire à celui-ci :

$ trivy version
Version: 0.50.1

La CLI Trivy est correctement installée sur votre machine ; vous pouvez désormais l'utiliser pour analyser votre cluster Kubernetes et afficher un rapport présentant les vulnérabilités et erreurs de configuration existantes.

Générer des rapports Trivy

La CLI trivy propose plusieurs commandes et sous-commandes ; en voici un extrait :

Scanning Commands
  aws         [EXPERIMENTAL] Scan AWS account
  config      Scan config files for misconfigurations
  filesystem  Scan local filesystem
  image       Scan a container image
  kubernetes  [EXPERIMENTAL] Scan kubernetes cluster
  repository  Scan a repository
  rootfs      Scan rootfs
  sbom        Scan SBOM for vulnerabilities and licenses
  vm          [EXPERIMENTAL] Scan a virtual machine image

Management Commands
  module      Manage modules
  plugin      Manage plugins

Utility Commands
  completion  Generate the autocompletion script for the specified shell
  convert     Convert Trivy JSON report into a different format
  help        Help about any command
  server      Server mode
  version     Print the version

Comme vous pouvez le constater, la CLI trivy propose de nombreuses commandes et options, car elle permet d'analyser les vulnérabilités dans les images de conteneurs, les systèmes de fichiers, les dépôts Git, les problèmes de configuration, etc. Pour ce tutoriel, nous allons nous concentrer sur la commande k8s (un alias de la commande kubernetes).

Lorsque vous exécutez trivy k8s, la commande fonctionne comme la commande kubectl. Ainsi, lorsque vous exécutez la CLI, elle recherche la configuration de votre cluster Kubernetes.

Commencez par demander à Trivy de générer un rapport de synthèse portant uniquement sur le namespace default.

Pour générer ce rapport, exécutez simplement la CLI :

trivy k8s -n default --report summary all

Cette commande exécute des tests sur tous les nœuds du namespace default et affiche un rapport de synthèse :

$ trivy k8s -n default --report summary all
5 / 5 [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 2 p/s

Summary Report for kubernetes-admin@my-kube


Workload Assessment
┌───────────┬───────────────────────────────────┬────────────────────┬───────────────────┬───────────────────┐
│ Namespace │             Resource              │  Vulnerabilities   │ Misconfigurations │      Secrets      │
│           │                                   ├───┬───┬────┬───┬───┼───┬───┬───┬───┬───┼───┬───┬───┬───┬───┤
│           │                                   │ C │ H │ M  │ L │ U │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │
├───────────┼───────────────────────────────────┼───┼───┼────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ default   │ Deployment/hello-world-deployment │ 5 │ 7 │ 20 │ 2 │   │   │ 2 │ 4 │ 9 │   │   │   │   │   │   │
└───────────┴───────────────────────────────────┴───┴───┴────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN


Infra Assessment
┌───────────┬──────────┬───────────────────┬───────────────────┬───────────────────┐
│ Namespace │ Resource │  Vulnerabilities  │ Misconfigurations │      Secrets      │
│           │          ├───┬───┬───┬───┬───┼───┬───┬───┬───┬───┼───┬───┬───┬───┬───┤
│           │          │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │
└───────────┴──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN


RBAC Assessment
┌───────────┬──────────┬───────────────────┐
│ Namespace │ Resource │  RBAC Assessment  │
│           │          ├───┬───┬───┬───┬───┤
│           │          │ C │ H │ M │ L │ U │
└───────────┴──────────┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN

Comme vous pouvez le constater, dans notre namespace default, notre cluster OVHcloud Managed Kubernetes (avec une application « hello world » déployée) présente plusieurs vulnérabilités et erreurs de configuration.

Nous allons examiner plus en détail ces vulnérabilités et erreurs de configuration. Pour cela, demandez à Trivy de générer un rapport complet, toujours dans le namespace default.

Pour générer ce rapport complet, exécutez simplement la CLI :

trivy k8s -n default --report=all all

Vous devriez obtenir un rapport et une liste de vulnérabilités et d'erreurs de configuration comme ceci :

$ trivy k8s -n default --report=all all

5 / 5 [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 2 p/s

namespace: default, deployment: hello-world-deployment

Total: 34 (UNKNOWN: 0, LOW: 2, MEDIUM: 20, HIGH: 7, CRITICAL: 5)

┌───────────────┬────────────────┬──────────┬────────┬───────────────────┬───────────────┬──────────────────────────────────────────────────────────────┐
│    Library    │ Vulnerability  │ Severity │ Status │ Installed Version │ Fixed Version │                            Title                             │
├───────────────┼────────────────┼──────────┼────────┼───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ libbz2        │ CVE-2019-12900 │ CRITICAL │ fixed  │ 1.0.6-r6          │ 1.0.6-r7      │ bzip2: out-of-bounds write in function BZ2_decompress        │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-12900                   │
├───────────────┼────────────────┼──────────┤        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ libcrypto1.0  │ CVE-2018-0734  │ MEDIUM   │        │ 1.0.2p-r0         │ 1.0.2q-r0     │ openssl: timing side channel attack in the DSA signature     │
│               │                │          │        │                   │               │ algorithm                                                    │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2018-0734                    │
│               ├────────────────┤          │        │                   │               ├──────────────────────────────────────────────────────────────┤
│               │ CVE-2018-5407  │          │        │                   │               │ openssl: Side-channel vulnerability on SMT/Hyper-Threading   │
│               │                │          │        │                   │               │ architectures (PortSmash)                                    │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2018-5407                    │
│               ├────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│               │ CVE-2019-1547  │          │        │                   │ 1.0.2t-r0     │ openssl: side-channel weak encryption vulnerability          │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-1547                    │
│               ├────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│               │ CVE-2019-1551  │          │        │                   │ 1.0.2u-r0     │ openssl: Integer overflow in RSAZ modular exponentiation on  │
│               │                │          │        │                   │               │ x86_64                                                       │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-1551                    │
│               ├────────────────┤          │        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│               │ CVE-2019-1559  │          │        │                   │ 1.0.2r-r0     │ openssl: 0-byte record padding oracle                        │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-1559                    │
│               ├────────────────┼──────────┤        │                   ├───────────────┼──────────────────────────────────────────────────────────────┤
│               │ CVE-2019-1563  │ LOW      │        │                   │ 1.0.2t-r0     │ openssl: information disclosure in PKCS7_dataDecode and      │
│               │                │          │        │                   │               │ CMS_decrypt_set1_pkey                                        │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-1563                    │
├───────────────┼────────────────┼──────────┤        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
...
...
├───────────────┼────────────────┼──────────┤        ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ musl          │ CVE-2019-14697 │ CRITICAL │        │ 1.1.19-r10        │ 1.1.19-r11    │ musl libc through 1.1.23 has an x87 floating-point stack     │
│               │                │          │        │                   │               │ adjustment im ......                                         │
│               │                │          │        │                   │               │ https://avd.aquasec.com/nvd/cve-2019-14697                   │
├───────────────┤                │          │        │                   │               │                                                              │
│ musl-utils    │                │          │        │                   │               │                                                              │
│               │                │          │        │                   │               │                                                              │
│               │                │          │        │                   │               │                                                              │
└───────────────┴────────────────┴──────────┴────────┴───────────────────┴───────────────┴──────────────────────────────────────────────────────────────┘


namespace: default, deployment: hello-world-deployment (kubernetes)

Tests: 135 (SUCCESSES: 120, FAILURES: 15, EXCEPTIONS: 0)
Failures: 15 (UNKNOWN: 0, LOW: 9, MEDIUM: 4, HIGH: 2, CRITICAL: 0)

MEDIUM: Container 'hello-world' of Deployment 'hello-world-deployment' should set 'securityContext.allowPrivilegeEscalation' to false
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
A program inside the container can elevate its own privileges and run as root, which might give the program control over the container and node.

See https://avd.aquasec.com/misconfig/ksv001
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 namespace: default, deployment: hello-world-deployment:20-23
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  20 ┌                 - image: ovhplatform/hello
  21 │                   name: hello-world
  22 │                   ports:
  23 └                     - containerPort: 80
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
...
...
HIGH: deployment hello-world-deployment in default namespace should not set spec.template.spec.containers.ports.containerPort to less than 1024
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
The ports which are lower than 1024 receive and transmit various sensitive and privileged data. Allowing containers to use them can bring serious implications.

See https://avd.aquasec.com/misconfig/ksv117
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Le rapport peut être très volumineux. Ainsi, pour afficher uniquement les vulnérabilités et erreurs de configuration URGENTES dans un nouveau rapport, vous pouvez procéder comme suit :

$ trivy k8s --namespace default --report=all all --severity MEDIUM,HIGH,CRITICAL
5 / 5 [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 2 p/s

namespace: default, deployment: hello-world-deployment

Total: 32 (MEDIUM: 20, HIGH: 7, CRITICAL: 5)

...

namespace: default, deployment: hello-world-deployment (kubernetes)

Tests: 75 (SUCCESSES: 69, FAILURES: 6, EXCEPTIONS: 0)
Failures: 6 (MEDIUM: 4, HIGH: 2, CRITICAL: 0)

MEDIUM: Container 'hello-world' of Deployment 'hello-world-deployment' should set 'securityContext.allowPrivilegeEscalation' to false
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
A program inside the container can elevate its own privileges and run as root, which might give the program control over the container and node.

See https://avd.aquasec.com/misconfig/ksv001
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 namespace: default, deployment: hello-world-deployment:20-23
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  20 ┌                 - image: ovhplatform/hello
  21 │                   name: hello-world
  22 │                   ports:
  23 └                     - containerPort: 80
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
...
...


MEDIUM: container "hello-world" of deployment "hello-world-deployment" in "default" namespace should specify a seccomp profile
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
A program inside the container can bypass Seccomp protection policies.

See https://avd.aquasec.com/misconfig/ksv104
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────


HIGH: deployment hello-world-deployment in default namespace should not set spec.template.spec.containers.ports.containerPort to less than 1024
════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
The ports which are lower than 1024 receive and transmit various sensitive and privileged data. Allowing containers to use them can bring serious implications.

See https://avd.aquasec.com/misconfig/ksv117
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Enfin, pour cette partie, vous pouvez également analyser uniquement une ressource spécifique, par exemple un déploiement en particulier :

trivy k8s --namespace default --report=summary deployments/hello-world-deployment

Vous devriez obtenir un résultat comme celui-ci :

$ trivy k8s --namespace default --report=summary deployments/hello-world-deployment
1 / 1 [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 0 p/s

Summary Report for kubernetes-admin@my-kube


Workload Assessment
┌───────────┬───────────────────────────────────┬────────────────────┬───────────────────┬───────────────────┐
│ Namespace │             Resource              │  Vulnerabilities   │ Misconfigurations │      Secrets      │
│           │                                   ├───┬───┬────┬───┬───┼───┬───┬───┬───┬───┼───┬───┬───┬───┬───┤
│           │                                   │ C │ H │ M  │ L │ U │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │
├───────────┼───────────────────────────────────┼───┼───┼────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
│ default   │ Deployment/hello-world-deployment │ 5 │ 7 │ 20 │ 2 │   │   │ 2 │ 4 │ 9 │   │   │   │   │   │   │
└───────────┴───────────────────────────────────┴───┴───┴────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN


Infra Assessment
┌───────────┬──────────┬───────────────────┬───────────────────┬───────────────────┐
│ Namespace │ Resource │  Vulnerabilities  │ Misconfigurations │      Secrets      │
│           │          ├───┬───┬───┬───┬───┼───┬───┬───┬───┬───┼───┬───┬───┬───┬───┤
│           │          │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │ C │ H │ M │ L │ U │
└───────────┴──────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN


RBAC Assessment
┌───────────┬──────────┬───────────────────┐
│ Namespace │ Resource │  RBAC Assessment  │
│           │          ├───┬───┬───┬───┬───┤
│           │          │ C │ H │ M │ L │ U │
└───────────┴──────────┴───┴───┴───┴───┴───┘
Severities: C=CRITICAL H=HIGH M=MEDIUM L=LOW U=UNKNOWN

Exporter les rapports localement

Vous pouvez générer et enregistrer un rapport, pour tous vos namespaces, avec la commande -o

trivy k8s -A --report=summary all -o trivy-report.txt

Cela enregistre le rapport dans votre répertoire de travail :

$ trivy k8s -A --report=summary all -o trivy-report.txt

94 / 94 [------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 100.00% 3 p/s

$ ls -l trivy-report.txt
-rw-r--r--  1 avache  staff  7933 11 avr 14:02 trivy-report.txt

Installer l'opérateur Kubernetes Trivy

Trivy peut également s'exécuter comme un opérateur Kubernetes natif, conçu pour être utilisé dans des pipelines CI/CD.

Cet opérateur Kubernetes analyse en continu votre cluster Kubernetes à la recherche de problèmes de sécurité et génère des rapports de sécurité sous forme de ressources personnalisées (Custom Resources) Kubernetes. Il surveille les changements d'état de Kubernetes et déclenche automatiquement des analyses en réponse à ces changements, par exemple en lançant une analyse de vulnérabilités lors de la création d'un nouveau pod.

Pour ce tutoriel, nous utilisons le chart Helm de Trivy.

Ajoutez le dépôt Helm de Trivy :

helm repo add aqua https://aquasecurity.github.io/helm-charts/
helm repo update

Ces commandes ajoutent le dépôt Helm de Trivy à votre dépôt local de charts Helm et mettent à jour les dépôts de charts installés :

$ helm repo add aqua https://aquasecurity.github.io/helm-charts/
helm repo update
"aqua" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aqua" chart repository
Update Complete. ⎈Happy Helming!⎈

Installez la dernière version de Trivy avec la commande helm install :

helm install trivy-operator aqua/trivy-operator \
   --namespace trivy-system \
   --create-namespace \
   --set="trivy.ignoreUnfixed=true"

Cette commande installe la dernière version de l'opérateur Kubernetes Trivy, crée un nouveau namespace trivy-system et le configure pour analyser tous les namespaces, à l'exception de kube-system et trivy-system :

$ helm install trivy-operator aqua/trivy-operator \
   --namespace trivy-system \
   --create-namespace \
   --set="trivy.ignoreUnfixed=true"
NAME: trivy-operator
LAST DEPLOYED: Thu Apr 11 14:03:59 2024
NAMESPACE: trivy-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
You have installed Trivy Operator in the trivy-system namespace.
It is configured to discover Kubernetes workloads and resources in
all namespace(s).

Inspect created VulnerabilityReports by:

    kubectl get vulnerabilityreports --all-namespaces -o wide

Inspect created ConfigAuditReports by:

    kubectl get configauditreports --all-namespaces -o wide

Inspect the work log of trivy-operator by:

    kubectl logs -n trivy-system deployment/trivy-operator

Vous pouvez vérifier que le pod Trivy s'exécute correctement :

$ kubectl get pod -n trivy-system
NAME                              READY   STATUS    RESTARTS   AGE
trivy-operator-84b86599cb-tzmg4   1/1     Running   0          89s

Vous pouvez maintenant inspecter les VulnerabilityReports pour tous vos namespaces, avec la commande suivante :

kubectl get vulnerabilityreports --all-namespaces -o wide

Vous devriez obtenir un résultat comme celui-ci :

$ kubectl get vulnerabilityreports --all-namespaces -o wide
NAMESPACE       NAME                                                          REPOSITORY                               TAG                                        SCANNER   AGE   CRITICAL   HIGH   MEDIUM   LOW   UNKNOWN
default         replicaset-hello-world-deployment-c7584d4f5-hello-world       ovhplatform/hello                        latest                                     Trivy     34s   5          7      20       2     0
...
...

Vous pouvez vérifier vos déploiements pour repérer d'éventuelles vulnérabilités critiques, élevées, moyennes et faibles.

L'opérateur Kubernetes génère également des ConfigAuditReports :

kubectl get configauditreports --all-namespaces -o wide

Vous devriez obtenir un résultat comme celui-ci :

$ kubectl get configauditreports --all-namespaces -o wide
NAMESPACE       NAME                                                SCANNER   AGE     CRITICAL   HIGH   MEDIUM   LOW
default         replicaset-hello-world-deployment-c7584d4f5         Trivy     2m56s   0          3      4        9
default         service-hello-world                                 Trivy     3m50s   0          0      0        0
default         service-kubernetes                                  Trivy     3m44s   0          0      0        0
...

Grâce à l'opérateur Kubernetes, il est possible d'intégrer Trivy à votre pipeline CI/CD pour vérifier les vulnérabilités et erreurs de configuration du cluster. Cela permet également d'automatiser l'accès aux rapports, d'exporter les métriques des rapports de vulnérabilités vers Prometheus, d'ajouter des tableaux de bord dans Grafana, de configurer des alertes, etc.

Aller plus loin

  • Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

  • Échangez avec notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?