Server erhalten ihre Secrets beim Start, im Arbeitsspeicher
Installieren Sie den crunu-Agenten auf einem Linux-Server, registrieren Sie ihn mit einem Einmalcode und geben Sie ihn frei, nachdem Sie seinen Fingerabdruck geprüft haben. Der Agent entschlüsselt nur die freigegebenen Umgebungen und übergibt sie beim Start an Ihre App.
- Registrierungscodes für den einmaligen Gebrauch
- Entschlüsselte Umgebungen nur im Arbeitsspeicher
- Läuft bei Ausfällen weiter, für die Lease-Zeit von standardmäßig 24 Stunden
Ein kleines Binary, drei Arten, es zu betreiben
Der Agent ist ein einzelnes statisches Binary für Linux und macOS, auf amd64 und arm64, geschrieben in Go nur mit der Standardbibliothek.
- MaschineEin Server, auf dem Ihre App läuft, meldet sich nach der Registrierung mit seinem eigenen Schlüssel an. Unter Linux läuft
crunu daemonals systemd-Dienst. - Service-TokenEin CI-Job meldet sich mit
CRUNU_TOKENan. Alles bleibt im Prozess, es werden keine Dateien geschrieben. - PersonWer entwickelt, führt
crunu loginmit Passwort, Secret Key und zweitem Faktor aus.crunu unlockhält die Schlüssel im Arbeitsspeicher,crunu lockbeendet das vorzeitig.
Registrieren, abgleichen, freigeben
Ein Admin legt die Maschine an und wählt ihre Umgebungen. Crunu stellt einen Registrierungscode für den einmaligen Gebrauch aus. Auf dem Server gibt crunu enroll den Fingerabdruck der Maschine aus, und der Admin gibt sie nach dem Abgleich frei.
- Ein Code, der einmal funktioniertStandardmäßig 15 Minuten gültig, höchstens 24 Stunden, optional an Adressen gebunden. Der Agent nimmt ihn nur über die Standardeingabe oder eine Umgebungsvariable an.
- Wiederverwendung löst eine Warnung ausLegt jemand einen bereits verwendeten Code vor, wird die Maschine als möglicherweise abgefangen markiert und eine Warnung verschickt.
- Auch Operatoren können dasEin Operator, der keine Werte sehen kann, legt Maschinen an und fragt Zugriff für sie an.
Ihre App startet mit ihren Variablen
crunu run startet das Programm mit einem sauberen Satz Umgebungsvariablen plus denen aus Crunu. Es leitet Signale weiter, gibt den Exit-Code des Programms zurück und startet es mit --restart on-change neu, wenn sich Werte ändern.
- Dateien, wenn Ihre App Dateien liest
crunu pullschreibt sie mit Modus 0600, behält die vorige Version als.prevund verweigert riskante Pfade wie.bashrcoder.ssh/. - Eine Datei für systemd
crunu pull --env-outschreibt die Variablen in eine Datei für eine ZeileEnvironmentFile=. - Die eigenen Zugangsdaten bleiben draußen
crunu rungibt seine eigenen Variablen wieCRUNU_TOKENnie an das gestartete Programm weiter.
| Code | Bedeutung |
|---|---|
| 0 | Erfolg |
| 3 | Maschine nicht registriert oder nicht angemeldet |
| 4 | Zugriff widerrufen oder Lease abgelaufen |
| 5 | Keine Verbindung und kein gültiger verifizierter Stand |
| 6 | Prüfung von Signatur oder Zertifikat fehlgeschlagen |
| 7 | Inhalte werden an diese Adresse nicht ausgeliefert |
Was der Agent im Hintergrund tut
Der Dienst meldet sich jede Minute beim Server und erneuert seine Lease alle 5 Minuten. Entschlüsselte Umgebungen liegen nur im Arbeitsspeicher und erreichen crunu run über einen lokalen Socket.
- Auch bei einem AusfallIst der Server nicht erreichbar, liefert der Agent den zuletzt verifizierten Stand, bis die Lease abläuft, standardmäßig nach 24 Stunden.
- Widerruf innerhalb von Minuten, solange onlineDer Agent löscht eine widerrufene Umgebung aus dem Arbeitsspeicher, sobald er das nächste Mal vom Server hört. Ohne Verbindung stoppt er, wenn die Lease endet.
- Er prüft, was der Server sendetSignaturen, Zertifikate, die Sperrliste und Rollbacks. Stimmt etwas nicht, verweigert er und beendet sich mit Code 6.
- Abgeschottet unter LinuxDer Prozess ist für andere Prozesse desselben Nutzers gesperrt, Core-Dumps sind aus, und der Dienst läuft in einer systemd-Sandbox.
Was eine Maschine trotzdem sehen kann
Eine Maschine ist ein legitimer Leser dessen, was Sie ihr freigeben. Halten Sie Freigaben klein und Leases kurz.
- Root sieht, was freigegeben istRoot auf diesem Server kann alles lesen, was der Maschine freigegeben ist. Geben Sie nur die Umgebungen und Dateien frei, die sie braucht.
- Laufende Prozesse behalten ihre VariablenEin Prozess, der gestartet wurde, bevor Sie die Maschine widerrufen haben, behält seine Umgebungsvariablen bis zum Neustart.
- Den Dienst gibt es nur unter LinuxUnter macOS ist der Agent ein Kommandozeilenwerkzeug ohne Hintergrunddienst. Eine Windows-Version gibt es nicht.
- Kein Kubernetes und keine SDKsApps erhalten ihre Werte über
crunu runoder als Dateien voncrunu pull.
Häufige Fragen
Noch etwas anderes? Schreiben Sie an support@crunu.com
Werden entschlüsselte Werte auf die Festplatte geschrieben?
Nicht von crunu run. Der Dienst hält entschlüsselte Umgebungen im Arbeitsspeicher und übergibt sie an den Prozess. Dateien werden nur geschrieben, wenn Sie crunu pull verwenden, mit Modus 0600.
Was passiert, wenn unser Crunu-Server ausfällt?
Der Agent liefert weiter den zuletzt verifizierten Stand, bis seine Lease endet, standardmäßig nach 24 Stunden.
Wie schnell wirkt der Widerruf einer Maschine?
Innerhalb von Minuten, solange die Maschine online ist. Der Agent meldet sich standardmäßig jede Minute und löscht widerrufene Umgebungen bei der nächsten Meldung aus dem Arbeitsspeicher. Ohne Verbindung stoppt er, wenn die Lease endet. Der Widerruf rotiert außerdem die Schlüssel der Umgebungen, die die Maschine hatte.
Kann eine Maschine die Umgebungen einer anderen lesen?
Nein. Jede Maschine hat ihre eigenen Schlüssel und ihre eigenen Freigaben.
Läuft der Agent unter Windows?
Nein. Er läuft unter Linux und macOS, auf amd64 und arm64.
Geben Sie noch heute einem Server seine Umgebung
Erstellen Sie ein Konto, legen Sie eine Maschine an und starten Sie Ihre App mit crunu run.