Help en handleidingenAccount beveiliging › Veilig gebruik API tokens

Veilig gebruik API tokens

3 min leestijd · Account beveiliging

Een API-token is een sleutel die volledige programmatische toegang tot je account via de REST API geeft. Als hij lekt, kan een aanvaller hetzelfde doen als jij. De volgende aanbevelingen verkleinen het risico dat dit gebeurt.

Behandel het token als een wachtwoord

  • Plaats het token nooit in openbare repositories (GitHub, GitLab).
  • Stuur het token niet via Discord, Slack of e-mail bij het oplossen van problemen.
  • Sla het token op in een omgevingsvariabele of in een secrets-manager (HashiCorp Vault, AWS SSM Parameter Store, Doppler en dergelijke).
  • Gebruik in de CI/CD-pipeline (geautomatiseerd build/deploy-systeem) de functie "masked secret", zodat het token niet in leesbare vorm in de logs verschijnt.
Lijst met API-tokens met het tijdstip van laatste gebruik
Bij elk token zie je het tijdstip van laatste gebruik - een hulpmiddel bij rotatie en bij het opsporen van onverwachte activiteit.

Rotatie van tokens

Trek het oude token onmiddellijk in en genereer een nieuwe in elk van de volgende situaties:

  • Een werknemer die toegang had, vertrekt.
  • In het dashboard zie je bij elk token een tijdstempel Laatst gebruikt - als je activiteit ziet die je niet verwachtte, trek het token dan onmiddellijk in.
  • Minstens elke 90 dagen als routinematige hygiëne, ook al is er niets gebeurd.

Eén token = één doel

Plaats niet hetzelfde token in vijf verschillende scripts. Maak voor elke integratie een apart token aan:

  • epulzio_xxxxxxxxxxxxxxxx - alleen voor deployen via GitHub Actions
  • epulzio_xxxxxxxxxxxxxxxx - alleen voor Terraform of Pulumi (tools voor infrastructuurbeheer)
  • epulzio_xxxxxxxxxxxxxxxx - voor een Grafana-dashboard dat metrics ophaalt

Als één token lekt, trek je alleen de betrokken in en de andere integraties blijven draaien.

Waar het token veilig bewaren

OmgevingAanbevolen methode
Lokale CLIBestand ~/.config/epulzio/token met rechten chmod 600 (alleen jouw gebruiker leest het)
DockerDocker secret of --env-file (niet hardcoded via ENV in Dockerfile)
KubernetesObject Secret gemount als omgevingsvariabele of bestand
GitHub ActionsSettings -> Secrets -> EPULZIO_TOKEN
Cloud-functies (AWS Lambda, GCP Functions)AWS SSM Parameter Store of Google Secret Manager

Token vs. ondertekeningsgeheim voor webhooks

Voor het verifiëren van binnenkomende webhooks (meldingen die we je sturen) gebruik je een apart ondertekeningsgeheim (HMAC signing secret), niet het API-token. Het zijn twee verschillende dingen. Details vind je in het artikel Een API-token genereren.

Was deze handleiding nuttig?