Hoe bewaar ik API-sleutels en geheimen zonder ISO 27001 A.8.24 te schenden?
het heygrc team
Plaats de sleutel nooit in de broncode. Lees deze uit de omgevingsvariabelen of een beheerde geheimenopslag tijdens runtime, houd deze buiten de repository en de logs, en roteer elk geheim dat ooit is gecommit. ISO 27001 A.8.24 (en gewoon voorzichtigheid) verwacht dat sleutels worden beheerd, niet hardgecodeerd.
Lees geheimen uit een beheerde opslag
Laad referenties uit omgevingsvariabelen die worden ondersteund door een geheimenbeheerder (de geheimen van je platform, een vault, een cloud-KMS-ondersteunde configuratie), opgelost tijdens runtime. De code verwijst naar het geheim; deze bevat het nooit.
Houd ze buiten de repository en de logs
Een sleutel in de broncode komt in de repository, de geschiedenis, en elke clone en CI-cache terecht. Een sleutel in een logregel komt terecht waar je logs ook naartoe gaan. Geen van beide kan ongedaan worden gemaakt door de sleutel in een latere commit te verwijderen.
Roteer alles wat is gelekt
Als een geheim ooit is gecommit, behandel het dan als blootgesteld en roteer het. Het verwijderen ervan uit het huidige bestand verwijdert het niet uit de geschiedenis die al is verzonden.
- const key = "<the live key, pasted inline>"+ const key = process.env.PAYMENTS_SECRET_KEYconst client = new Payments(key)De sleutel wordt tijdens runtime uit een beheerde geheimenopslag gelezen in plaats van in de repository te staan.