Aller au contenu principal

ggshield secret scan docker

Description

Scanner une image Docker après avoir exporté son système de fichiers et son manifeste avec la commande docker save.

ggshield secret scan docker [OPTIONS] NAME

ggshield tente de tirer l'image si elle n'est pas disponible localement.

Options

  • --docker-timeout SECONDS : timeout pour les commandes Docker.

    Par défaut : 360.

  • --source-uuid TEXT : identifiant de la source personnalisée dans GitGuardian. Si utilisé, des incidents seront créés et visibles dans le tableau de bord. Nécessite le scope scan:create-incidents.

  • --all-secrets : ne pas ignorer les secrets. La raison d'ignore possible est également affichée.

  • --instance URL : URL de l'instance à utiliser.

  • --with-incident-details : affiche tous les détails de l'incident du tableau de bord si trouvé (formats JSON et SARIF uniquement). Nécessite le scope incidents:read.

  • -b, --banlist-detector DETECTOR : exclut les résultats d'un détecteur.

  • --ignore-known-secrets : ignore les secrets déjà connus du tableau de bord GitGuardian.

  • --exclude PATTERNS : ne scanne pas les chemins qui correspondent aux patterns glob spécifiés.

  • --exit-zero : retourne un code de statut 0 (non-erreur), même si des incidents sont trouvés. Un code de statut d'erreur sera toujours retourné pour d'autres erreurs, comme les erreurs de connexion. Cette option peut également être définie avec la variable d'environnement GITGUARDIAN_EXIT_ZERO.

  • --show-secrets : affiche les secrets en clair au lieu de les masquer.

  • -o, --output PATH : redirige la sortie ggshield vers PATH.

  • --format [text|json|sarif] : format à utiliser pour la sortie.

  • --json : raccourci pour --format json.

Cette commande prend en charge toutes les options globales ggshield.

Exemples

$ ggshield secret scan docker gitguardian/ggshield

À propos du cache

Lors du scan d'une image Docker pour la première fois, ggshield stocke le DiffID des couches qui ont été trouvées propres dans un cache disque. Si la même image est scannée une deuxième fois, ggshield ignore le scan des couches connues comme propres. Cela peut grandement accélérer le scan d'images Docker volumineuses, puisque seules les couches modifiées sont re-scannées.

Ce cache dépend de la version du moteur de secrets GitGuardian. Lorsqu'une nouvelle version du moteur de secrets est déployée, toutes les couches sont re-scannées.

Lors de l'utilisation de ggshield secret scan docker dans un CI, il est important de conserver le répertoire de cache entre les exécutions CI, sinon le cache n'est jamais réutilisé. L'emplacement par défaut du cache ggshield dépend du système d'exploitation :

  • Linux : $XDG_CACHE_HOME/ggshield, ou ~/.cache/ggshield si $XDG_CACHE_HOME n'est pas défini
  • macOS : ~/Library/Caches/ggshield
  • Windows : %LOCALAPPDATA%\GitGuardian\ggshield\Cache

Alternativement, vous pouvez définir le répertoire de cache en utilisant la variable d'environnement $GG_CACHE_DIR.

Notez que le cache Docker se trouve dans un sous-répertoire docker du répertoire de cache.