Naar de inhoud

Servers krijgen hun secrets bij het opstarten, in het geheugen

Installeer de crunu-agent op een Linux-server, schrijf de server in met een eenmalige code en keur hem goed nadat je de vingerafdruk hebt gecontroleerd. De agent ontsleutelt alleen de omgevingen die je toekent en geeft ze door aan je app wanneer die start.

  • Eenmalige inschrijfcodes
  • Ontsleutelde omgevingen alleen in het geheugen
  • Werkt door bij storingen zolang de lease loopt, standaard 24 uur
Voorbeeld. Kiteline is een fictief bedrijf.

Eén kleine binary, drie manieren om hem te draaien

De agent is één statische binary voor Linux en macOS, op amd64 en arm64, geschreven in Go met alleen de standaardbibliotheek.

  • MachineEen server die je app draait, logt na de inschrijving in met een eigen sleutel. Op Linux draait crunu daemon als systemd-service.
  • ServicetokenEen CI-job logt in met CRUNU_TOKEN. Alles blijft in het proces en er worden geen bestanden geschreven.
  • PersoonEen ontwikkelaar voert crunu login uit met wachtwoord, Secret Key en een tweede factor. crunu unlock houdt de sleutels in het geheugen, crunu lock maakt daar eerder een eind aan.

Lees de documentatie

Inschrijven, vergelijken, goedkeuren

Een admin voegt de machine toe en kiest de omgevingen. Crunu geeft een eenmalige inschrijfcode uit; op de machine zelf toont crunu enroll de vingerafdruk, en de admin vergelijkt die en keurt de machine dan goed.

  • Een code die één keer werktStandaard 15 minuten geldig, maximaal 24 uur, en desgewenst gebonden aan adressen. De agent accepteert de code alleen via standaardinvoer of een omgevingsvariabele.
  • Hergebruik geeft een waarschuwingWordt een al gebruikte code nog eens aangeboden, dan wordt de machine gemarkeerd als mogelijke onderschepping en gaat er een waarschuwing uit.
  • Ook een Operator kan ditEen Operator ziet geen waarden, maar kan wel machines toevoegen en er toegang voor aanvragen.

Lees de documentatie

Voorbeeld. Kiteline is een fictief bedrijf.

Je app start met zijn variabelen

crunu run start het programma met een schone set omgevingsvariabelen, aangevuld met die uit Crunu. De opdracht stuurt signalen door, geeft de exitcode van het programma terug en herstart het met --restart on-change zodra waarden veranderen.

  • Bestanden, als je app bestanden leestcrunu pull schrijft ze met rechten 0600, bewaart de vorige versie als .prev en weigert riskante paden zoals .bashrc of .ssh/.
  • Eén bestand voor systemdcrunu pull --env-out schrijft de variabelen naar één bestand voor een regel EnvironmentFile=.
  • Eigen toegangsgegevens blijven erbuitencrunu run geeft zijn eigen variabelen, zoals CRUNU_TOKEN, nooit door aan het gestarte programma.
Exitcodes van crunu
CodeBetekenis
0Gelukt
3Machine niet ingeschreven, of niet ingelogd
4Toegang ingetrokken of lease verlopen
5Geen verbinding en geen geldige geverifieerde staat
6Controle van handtekening of certificaat mislukt
7Inhoud wordt niet aan dit adres geleverd

Lees de documentatie

Wat de agent op de achtergrond doet

De service maakt elke minuut contact met de server en vernieuwt zijn lease elke 5 minuten. Ontsleutelde omgevingen staan alleen in het geheugen en bereiken crunu run via een lokale socket.

  • Bij een storingIs de server onbereikbaar, dan levert de agent de laatst geverifieerde staat tot de lease afloopt, standaard na 24 uur.
  • Binnen enkele minuten ingetrokken, mits onlineDe agent wist een ingetrokken omgeving uit het geheugen zodra hij weer contact heeft met de server. Offline stopt hij wanneer de lease afloopt.
  • De agent controleert wat de server stuurtHandtekeningen, certificaten, de intrekkingslijst en een mogelijke rollback. Klopt iets niet, dan weigert hij en stopt hij met exitcode 6.
  • Afgeschermd op LinuxAndere processen van dezelfde gebruiker kunnen niet bij het proces, core dumps staan uit en de service draait in een systemd-sandbox.

Lees de documentatie

Voorbeeld. Kiteline is een fictief bedrijf.

Wat een machine nog wel ziet

Een machine is een rechtmatige lezer van alles wat je eraan toekent. Geef zo weinig mogelijk toegang en houd leases kort.

  • Root ziet wat is toegekendRoot op die server kan alles lezen wat aan de machine is toegekend. Ken alleen de omgevingen en bestanden toe die nodig zijn.
  • Draaiende processen houden hun variabelenEen proces dat al draaide voordat je de machine introk, houdt zijn omgevingsvariabelen tot het opnieuw start.
  • De service is er alleen voor LinuxOp macOS is de agent een opdrachtregeltool zonder achtergrondservice. Er is geen Windows-build.
  • Geen Kubernetes of SDK’sApps krijgen hun waarden via crunu run of via bestanden van crunu pull.

Alle bekende beperkingen

Veelgestelde vragen

Iets anders? Mail naar support@crunu.com

Worden ontsleutelde waarden naar schijf geschreven?

Niet door crunu run. De service houdt ontsleutelde omgevingen in het geheugen en geeft ze door aan het proces. Bestanden worden alleen geschreven als je crunu pull gebruikt, met rechten 0600.

Wat gebeurt er als onze Crunu-server uitvalt?

De agent blijft de laatst geverifieerde staat leveren tot de lease afloopt, standaard na 24 uur.

Hoe snel werkt het intrekken van een machine?

Binnen enkele minuten, zolang de machine online is. De agent maakt standaard elke minuut contact met de server en wist ingetrokken omgevingen bij het volgende contact uit het geheugen. Offline stopt hij wanneer de lease afloopt. Intrekken roteert ook de sleutels van de omgevingen die de machine had.

Kan een machine de omgevingen van een andere machine lezen?

Nee. Elke machine heeft eigen sleutels en eigen toegangsrechten.

Draait de agent op Windows?

Nee. Hij draait op Linux en macOS, op amd64 en arm64.

Geef vandaag één server zijn omgeving

Maak een account aan, voeg een machine toe en start je app met crunu run.

Gratis tijdens de vroege toegang. Lees het beveiligingsmodel