Aller au contenu principal

Synchronisation de secrets

La commande sync-secrets permet à ggscout de recevoir des secrets depuis votre plateforme GitGuardian et de les écrire directement dans vos Secrets Managers intégrés. Cela offre un moyen sécurisé de provisionner dans vos coffres les secrets découverts ailleurs.

Fonctionnement de sync-secrets

  1. GitGuardian identifie les secrets non vaultés dans vos sources surveillées
  2. Vous marquez les secrets à vaulter depuis la plateforme GitGuardian
  3. ggscout reçoit les instructions de synchronisation depuis GitGuardian lors de l'exécution de sync-secrets
  4. ggscout écrit les secrets vers les intégrations de destination configurées

Exemple de workflow

  1. Découverte du secret : GitGuardian trouve un secret divulgué dans votre code. Grâce à l'inventaire fourni par ggscout, vous pouvez voir que ce secret n'est pas vaulté.
  2. Revue sur la plateforme : l'équipe de sécurité examine le secret dans la plateforme GitGuardian
  3. Marquage pour vaulting : l'équipe marque le secret pour le déplacer vers HashiCorp Vault
  4. Synchronisation automatique : la commande sync-secrets de ggscout reçoit l'instruction
  5. Écriture dans le vault : le secret est écrit en toute sécurité au chemin spécifié dans Vault
  6. Confirmation : la plateforme GitGuardian est notifiée du vaulting réussi

Prérequis

Pour utiliser la commande sync-secrets, vous avez besoin de :

  • Un jeton d'API GitGuardian avec le scope nhi:write-vault — voir GitGuardian Authentication pour les instructions de configuration
  • Une intégration configurée en mode read/write ou write — seules certaines intégrations prennent en charge l'écriture
  • Des permissions d'écriture appropriées dans votre Secrets Manager de destination

Utilisation de la commande

# Write secrets from GitGuardian directly into your destination integration
ggscout sync-secrets config.toml

La commande sync-secrets est généralement exécutée selon une planification (chaque minute en production) afin que les secrets soient synchronisés rapidement lorsqu'ils sont demandés depuis la plateforme GitGuardian.

Prise en charge de l'écriture par intégration

Toutes les intégrations ne prennent pas en charge l'écriture de secrets. Le tableau ci-dessous indique celles qui prennent en charge la commande sync-secrets :

Type d'intégrationNom de l'intégrationÉcriture prise en chargeNotes
Secrets ManagersHashiCorp Vault (hashicorpvault)✅ OuiLecture/écriture complète
AWS Secrets Manager (awssecretsmanager)✅ OuiLecture/écriture complète
CyberArk Secrets Manager SaaS (cyberarksaas)✅ OuiLecture/écriture complète
CyberArk Secrets Manager Self-Hosted (cyberarkselfhosted)✅ OuiLecture/écriture complète
Akeyless (akeyless)✅ OuiLecture/écriture complète
Delinea Secret Server (delineasecretserver)✅ OuiLecture/écriture complète
Azure Key Vault (azurekeyvault)❌ NonLecture seule
Google Secret Manager (googlesecretsmanager)❌ NonLecture seule
Systèmes CI/CDGitLab CI (gitlabci)❌ NonLecture seule
InfrastructureKubernetes (kubernetes)❌ NonLecture seule
info

Les intégrations qui ne prennent pas en charge l'écriture peuvent toujours être utilisées pour la découverte et la surveillance de secrets avec les commandes fetch et fetch-and-send.

Exemple de configuration

Pour activer l'écriture, définissez le mode de l'intégration sur read/write ou write :

[sources.my-vault]
type = "hashicorpvault"
vault_address = "https://vault.example.com"
mode = "read/write" # Enables both reading and writing
# ... other configuration options

Considérations de déploiement

Planification

La commande sync-secrets doit s'exécuter fréquemment pour garantir un provisionnement rapide des secrets :

  • Production : toutes les minutes (* * * * *)
  • Développement : toutes les 5 minutes (*/5 * * * *)

Gestion des erreurs

ggscout gère élégamment divers scénarios d'erreur :

  • Erreurs de permissions : journalisées avec des détails pour le débogage
  • Already exists : peut être configuré comme récupérable ou non récupérable
  • Problèmes réseau : logique de retry avec backoff exponentiel
  • Données invalides : messages d'erreur clairs pour la résolution de problèmes

Résolution de problèmes

Problèmes courants

Échecs d'authentification

  • Vérifiez que le jeton d'API GitGuardian a le scope nhi:write-vault
  • Vérifiez que les identifiants de l'intégration disposent des permissions d'écriture

Permission Denied

  • Examinez les policies du vault et assurez-vous d'avoir l'accès en écriture sur les chemins cibles
  • Vérifiez les permissions du service account dans les environnements cloud

Secret Already Exists

  • Configurez la politique de gestion d'erreur pour les secrets dupliqués
  • Examinez les paramètres de versioning du vault

Connectivité réseau

  • Assurez-vous que ggscout peut joindre à la fois la plateforme GitGuardian et le vault de destination
  • Vérifiez les règles de pare-feu et les politiques réseau

Mode debug

Activez le logging debug pour un dépannage détaillé :

ggscout sync-secrets config.toml --verbose debug

Cela fournit des informations détaillées sur :

  • Les appels API vers la plateforme GitGuardian
  • Les tentatives d'authentification
  • Les opérations d'écriture vers les vaults de destination
  • Les détails d'erreur et stack traces