Een gelekte API-key kan leiden tot onverwachte kosten, misbruik van je account of blootstelling van gevoelige data. Het correct beheren van secrets is geen optie maar een basisvereiste voor elke AI-applicatie die serieus genomen wil worden.
Van alle beveiligingsfouten die we bij AI-projecten tegenkomen, is een hardcoded API-key in de broncode de meest voorkomende. Het is begrijpelijk: het is snel en het werkt. Maar zodra die code op GitHub staat of gedeeld wordt, is de sleutel gecompromitteerd. Dit artikel legt uit hoe je het goed doet.
Environment variables zijn configuratiewaarden die buiten je applicatiecode worden opgeslagen en beschikbaar gesteld door de omgeving waarin de applicatie draait. Ze worden doorgaans als sleutel-waardeparen gedefinieerd, zoals OPENAI_API_KEY=sk-....
Je leest ze in code via process.env.OPENAI_API_KEY (Node.js) of os.environ.get("OPENAI_API_KEY") (Python). De waarden staan niet in je code maar worden geïnjecteerd door het besturingssysteem, een deployment platform of een secrets manager.
Voor lokale development gebruik je een .env-bestand in de root van je project. Dat bestand bevat alle variabelen die je lokaal nodig hebt:
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
DATABASE_URL=postgresql://localhost:5432/mydb
Laad dit bestand met een bibliotheek: dotenv in Node.js of python-dotenv in Python. Voeg het bestand altijd toe aan .gitignore. Nooit committen, nooit delen, nooit in je codebase laten staan.
Maak altijd een .env.example-bestand met de namen van alle variabelen maar zonder waarden. Dit bestand commit je wél, zodat nieuwe teamleden weten welke variabelen ze moeten instellen.
In productie gebruik je geen .env-bestanden maar de secrets-faciliteiten van je deployment platform:
Deze systemen slaan je secrets versleuteld op en injecteren ze als environment variables bij het opstarten van je applicatie. Zorg dat alleen de omgevingen die de secrets nodig hebben er toegang toe hebben.
API-keys lekken soms. Dat kan via een publieke GitHub-commit, een screenshot, een logbestand of een gecompromitteerde machine. Het is goed om een herstelplan klaar te hebben:
Roteer keys regelmatig als preventieve maatregel, ook als er geen lek is. De meeste providers maken dit eenvoudig.
Een veelgemaakte fout is het onbedoeld loggen van secrets. Als je een request logt die een authorization-header bevat, of als je de volledige environment dump logt bij een fout, kunnen secrets in je logbestanden terechtkomen.
Zorg voor filtering in je logging-configuratie en wees bewust van wat je logt. Gebruik nooit console.log(process.env) of print(os.environ) in productie.
Veel teams gebruiken CI/CD-tools zoals GitHub Actions, GitLab CI of Jenkins. Ook hier geldt: secrets nooit als plaintext in de configuratiebestanden. Gebruik de secrets-faciliteiten van het platform:
${{ secrets.MY_SECRET }}Beperk welke branches en jobs toegang hebben tot welke secrets.
Het correct beheren van environment variables en secrets is een van de eenvoudigste stappen die je kunt zetten om je AI-applicatie veiliger te maken. Bij Mach8 werken we met gestructureerde secret-management als standaard bij elk project, niet als afterthought.
Wil je meer weten over hoe Mach8 AI-applicaties veilig en beheersbaar opzet? Bekijk onze AI-agents service of neem contact op.
Wij helpen je van strategie naar implementatie. Plan een vrijblijvend gesprek.
Plan een gesprek