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
- GitGuardian identifie les secrets non vaultés dans vos sources surveillées
- Vous marquez les secrets à vaulter depuis la plateforme GitGuardian
- ggscout reçoit les instructions de synchronisation depuis GitGuardian lors de l'exécution de
sync-secrets - ggscout écrit les secrets vers les intégrations de destination configurées
Exemple de workflow
- 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é.
- Revue sur la plateforme : l'équipe de sécurité examine le secret dans la plateforme GitGuardian
- Marquage pour vaulting : l'équipe marque le secret pour le déplacer vers HashiCorp Vault
- Synchronisation automatique : la commande
sync-secretsde ggscout reçoit l'instruction - Écriture dans le vault : le secret est écrit en toute sécurité au chemin spécifié dans Vault
- 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/writeouwrite— 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égration | Nom de l'intégration | Écriture prise en charge | Notes |
|---|---|---|---|
| Secrets Managers | HashiCorp Vault (hashicorpvault) | ✅ Oui | Lecture/écriture complète |
AWS Secrets Manager (awssecretsmanager) | ✅ Oui | Lecture/écriture complète | |
CyberArk Secrets Manager SaaS (cyberarksaas) | ✅ Oui | Lecture/écriture complète | |
CyberArk Secrets Manager Self-Hosted (cyberarkselfhosted) | ✅ Oui | Lecture/écriture complète | |
Akeyless (akeyless) | ✅ Oui | Lecture/écriture complète | |
Delinea Secret Server (delineasecretserver) | ✅ Oui | Lecture/écriture complète | |
Azure Key Vault (azurekeyvault) | ❌ Non | Lecture seule | |
Google Secret Manager (googlesecretsmanager) | ❌ Non | Lecture seule | |
| Systèmes CI/CD | GitLab CI (gitlabci) | ❌ Non | Lecture seule |
| Infrastructure | Kubernetes (kubernetes) | ❌ Non | Lecture seule |
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