Een ontwikkelaar pusht .env.production “tijdelijk” om de blokkering van een collega te deblokkeren. Privérepository – vervolgens een consultantfork, een lek in GitHub Actions-logboeken of een repository die per ongeluk openbaar is gemaakt. AWS- en Stripe-sleutels voor altijd actief in de git-geschiedenis. Als u de commit terugdraait, wordt niet ingetrokken wat de crawlers al hebben geïndexeerd.
Implementatiegeheimen (API-sleutels, databasewachtwoorden, berichtentokens) bevinden zich niet in de repository. Punt. De operationele vraag is waar ze wonen en hoe ze zich zonder paniek wenden.
Niet-onderhandelbare regels
Plaats .env* in .gitignore en controleer in de continue integratie of een commit mislukt als er een geheim patroon wordt gedetecteerd. Onderhoud een .env.example zonder waarden - alleen documentatie van vereiste sleutels. Plan de rotatie na vertrek, verdacht lek of einde dienst. Pas minste privilege toe: AWS-sleutel beperkt tot een actie, niet tot globale beheerder. Stuur nooit geheimen in URL's, Sentry of trackingtickets.
| Anti-patroon | Vervanging |
|---|---|
.env in git | Geheimen smeden + serverbestand |
| Prod-sleutel in staging | Speciale testaccounts |
| Geheim in Docker-afbeelding | Runtime-injectie |
| Sleutel delen via berichten | Gedeelde teamkluis |
Per omgeving
In local houdt elke ontwikkelaar een persoonlijke .env bij, nooit vastgelegd. Gebruik bij continue integratie versleutelde geheimen van GitHub of GitLab; injecteren bij implementatie via SSH of platform-API. In serverproductie: een /var/www/.env-bestand met machtigingen gereserveerd voor het implementatieaccount, of een systemd-omgevingsbestand buiten de webroot. Op beheerd platform, gecodeerde dashboardomgevingsvariabelen met audittrail. Koppel met CI/CD small project zonder de omgeving in uitgebreide modus te loggen.
Proactieve detectie
Scan met gitleaks of truffelhog in pre-commit of CI. Schakel GitHub-geheimdetectie in als de repository openbaar wordt. Controleer elk kwartaal wie toegang heeft tot productiesleutels.
Rotatie zonder onderbreking
Gebruik API-sleutels voor dubbele activering wanneer de provider dit toestaat (bijvoorbeeld Stripe). Voor de basis: secundaire gebruiker, schakelaar voor verbindingsreeks, intrekking van de oude. Documenteer de bestelling – test eerst in de pre-productie.
De top: de privéstorting is geen kluis
Zie KMS-sleutelbeheer voor gevoelige belastingen die verder gaan dan .env.
Beslis en ga vooruit zonder blinde vlek
Scan eerst de git-geschiedenis met gitleaks of iets soortgelijks. Trek alle blootgestelde of twijfelachtige sleutels in en roteer ze, niet alleen de laatste commit. Centraliseer continue integratiegeheimen en onderhoud een up-to-date .env.example. Houd pre-productie- en productie-ID's strikt gescheiden. Vorm het team: bewaar nooit geheimen in een ticket of chat. Vergelijk platformhosts met gedocumenteerd geheimbeheer via de overzicht.
Veelgestelde vragen
.env per ongeluk gepleegd?
Intrekken en onmiddellijk draaien — het ongedaan maken van git commit is onvoldoende, de geschiedenis blijft geheim.
Geheimen in CI?
Gecodeerde geheimen van de smederij, nooit weergegeven in logboeken, zelfs niet tijdens het debuggen.
Dezelfde .env-staging en productie?
Nee – afzonderlijke testsleutels en livesleutels, indien mogelijk afzonderlijke cloudaccounts.
Kluis vereist?
Nee voor een klein team; forge secrets plus .env-server zijn vaak voldoende voor maximaal tien gedeelde geheimen.
Het niet langer verbergen van sleutels in de repository betekent accepteren dat git geen kluis is — en dat rotatie een functie is, geen straf.
