Een API-sleutel is een krachtige credential: iedereen die hem heeft, kan namens jou versturen. Met scoped permissies bepaal je al wat een key mag doen, en nu kun je ook bepalen vanwaar hij gebruikt mag worden. AhaSend API-sleutel ondersteunen een IP allow list, zodat een key alleen werkt als het verzoek van een bron-IP komt dat jij vertrouwt.
Wat het doet
De IP allow list beperkt welke IP-adressen met een bepaalde API-sleutel mogen authenticeren. Is de lijst leeg (de standaard), dan geldt er geen beperking en werkt de key overal vandaan. Zodra je één of meer adressen toevoegt, wordt elk verzoek vanaf een IP dat niet op de lijst staat geweigerd met een 403, op elk endpoint, ongeacht de scopes van de key.
Dat is defense in depth: zelfs als een key lekt, is hij onbruikbaar vanaf een adres dat jij niet hebt geautoriseerd.
Hoe het werkt
- Voeg losse IPv4- of IPv6-adressen toe, of CIDR-ranges, bijvoorbeeld
203.0.113.4,2001:db8::1of198.51.100.0/24. - Maximaal 100 entries per key. De allow-all ranges
0.0.0.0/0en::/0worden geweigerd, want een allow list die alles toelaat heeft geen zin. - Een lege lijst betekent geen beperking.
- Bescherming tegen jezelf buitensluiten: als je de allow list van een key probeert aan te passen naar een waarde die het IP uitsluit van waaruit je belt, wordt de wijziging geweigerd, zodat je jezelf niet per ongeluk de toegang ontneemt. (Een sub-account-key aanpassen vanuit het ouderaccount kent deze bescherming niet, zoals verwacht.)
- Het wijzigen van de allow list vereist een bevestiging dat jij het bent, zodat een gestolen sessie niet stilletjes de toegang kan verruimen.
Waar je het instelt
Je beheert de allow list op twee plaatsen:
- In het dashboard, in de IP Allow List-sectie wanneer je een API-sleutel aanmaakt of bewerkt (directe link).
- Via de Management API, met het veld
ip_allow_listop de create- en update-endpoints voor API-sleutel (ook voor de sub-account API-sleutel). De officiële Go SDK ondersteunt het eveneens.
Probeer het uit
De snelste manier om het in actie te zien is het scope-vrije ping-endpoint. Vanaf een toegelaten IP krijg je een normaal antwoord ("message":"pong"):
curl -i https://api.ahasend.com/v2/ping \
-H "Authorization: Bearer aha-sk-jouw-key"Staat je bron-IP niet op de allow list van de key, dan geeft dezelfde call een foutmelding, wat bevestigt dat de beperking actief is. Met curl -s https://api.ipify.org controleer je vanaf welk IP je belt.
Een paar best practices
- Gebruik CIDR-ranges voor blokken adressen in plaats van ze één voor één op te sommen.
- Combineer de allow list met scoped permissies en sandbox modus: beperk zowel wat de key mag doen als vanwaar hij gebruikt mag worden.
- Houd productie- en testkeys gescheiden, elk met hun eigen allow list.
IP allow lists zijn nu beschikbaar voor alle API-sleutel, op elk abonnement, zonder extra kosten.