Over ons 🤖

Laten we elkaar leren kennen

Vertel me de missie en visie

Leg het verhaal achter Mach8 uit

Hallo daar 👋

Hoe kunnen we je helpen?

Mijn gegevens mogen worden gebruikt om me op de hoogte te houden van relevant nieuws van Mach8

Implementatie & Techniek·6 min·4 mei 2025

Hoe gebruik je environment variables en secrets bij AI-applicaties?

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.

Wat zijn environment variables?

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.

Lokale development: het .env-bestand

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.

Productieomgeving: platform-level secrets

In productie gebruik je geen .env-bestanden maar de secrets-faciliteiten van je deployment platform:

  • Vercel: Environment Variables in het projectdashboard
  • Railway of Render: Environment Variables sectie in de projectinstellingen
  • AWS: Secrets Manager of Parameter Store
  • Google Cloud: Secret Manager
  • Kubernetes: Secrets resources

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.

Rotatie en herstel bij een lek

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:

  1. Revoke de gelekte key direct via het dashboard van de provider
  2. Genereer een nieuwe key
  3. Vervang de key in alle omgevingen die hem gebruiken
  4. Controleer de gebruikslogs van de provider op ongeautoriseerd gebruik
  5. Onderzoek hoe het lek is ontstaan en herstel het

Roteer keys regelmatig als preventieve maatregel, ook als er geen lek is. De meeste providers maken dit eenvoudig.

Secrets nooit in logs of foutmeldingen

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.

Secrets in CI/CD-pipelines

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:

  • GitHub Actions: Secrets in de repository of organisatie-instellingen, beschikbaar via ${{ secrets.MY_SECRET }}
  • GitLab CI: Variables in de project- of groepsinstellingen

Beperk welke branches en jobs toegang hebben tot welke secrets.

Conclusie

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.

Klaar om AI in te zetten?

Wij helpen je van strategie naar implementatie. Plan een vrijblijvend gesprek.

Plan een gesprek