Anvil CoderAnmelden

Sicherheit

Was fehlschlägt, wenn etwas fehlt

Anvil Coder ist an den Stellen, an denen es fremden Code ausführt und fremde Zugangsdaten verwaltet, bewusst so gebaut, dass eine fehlende Angabe zum Abbruch führt statt zu einer stillen Notlösung. Das ist die wichtigste Eigenschaft einer Sicherheitsarchitektur: nicht was sie im Normalfall tut, sondern was sie tut, wenn etwas fehlt.

Fünf Grenzen

Der Mandant ist Teil jeder Anfrage
Nicht ein Filter, den man vergessen kann, sondern Bestandteil des Datensatzes und der Anfrage: im betriebenen Dienst trägt jeder Zugriff auf die Fabrik seinen Mandanten mit, und die Daten einer Organisation sind für die Mitglieder einer anderen Organisation nicht vorhanden.
Auf den Claude-Pfaden: ohne Schlüssel kein Lauf
Auf den Claude-Pfaden läuft ohne den Schlüssel eurer Organisation nichts: der Dienst weist die Anfrage mit 401 ab. Bei den OpenAI-kompatiblen Anbietern wirkt der Schlüssel der Organisation als Übersteuerung eines konfigurierten Zugangs.
Schlüssel verschlüsselt abgelegt
Im betriebenen Dienst ist das erzwungen: ohne hinterlegten Schlüssel für die Ablage startet der Dienst gar nicht erst, die Zugangsdaten liegen verschlüsselt statt im Klartext. Wer selbst betreibt, muss diesen Schlüssel setzen — fehlt er, werden die Zugangsdaten unverschlüsselt abgelegt.
Bauen und Testen ohne Rechte
Wo der erzeugte Code im betriebenen Dienst gebaut und getestet wird, geschieht das in einem rechtelosen, wegwerfbaren Pod statt im Coordinator. Fremder Code wird dabei ausgeführt — deshalb dort, wo er nichts erreichen kann. Wer selbst betreibt, hat mit dem Alt-Pfad „analyzer=gradle“ eine Wahl, die genau das aufhebt: dort läuft der erzeugte Code im Coordinator-Prozess.
Der Repository-Zugang bleibt beim Coordinator
Der Worker sieht euren Repository-Token nicht. Er klont und pusht über eine undurchsichtige Adresse im Cluster; erst dort wird der Zugang eingesetzt. Was er dabei mitbringt, ist ein kurzlebiger Ausweis, den der Coordinator je Lauf ausstellt und der genau auf eure Organisation und euer Projekt lautet — ein fremder oder abgelaufener Ausweis wird abgewiesen. Der erzeugte Code kann sich keinen ausstellen: das Siegel liegt nicht bei ihm. Im betriebenen Dienst bricht der Start ausserdem ab, wenn dieses Siegel fehlt.

Warum „fehlschlagen“ die richtige Voreinstellung ist

Die bequeme Bauweise ist die umgekehrte: fehlt ein Schlüssel, nimm den allgemeinen; fehlt eine Mandantenangabe, zeig alles. Beide Bequemlichkeiten sind im Normalbetrieb unsichtbar und im Fehlerfall der Schaden selbst.

Anvil Coder entscheidet an den oben genannten Stellen andersherum: auf den Claude-Pfaden weist der Dienst eine Anfrage ohne den Schlüssel der Organisation mit 401 ab, und im betriebenen Dienst kommt keine Anfrage an die Fabrik ohne ihren Mandanten durch. Das ist im Aufbau lästiger — man merkt sofort, wenn etwas fehlt — und genau deshalb richtig.

Wo die Daten liegen

Der Betrieb läuft auf der Infomaniak Public Cloud in der Schweiz. Für Teams, die Datenhoheit begründen müssen, ist das kein Nebensatz, sondern häufig die erste Frage.

Die Modelle selbst liegen naturgemäss beim jeweiligen Anbieter. Die Anbindung ist austauschbar und deckt auch lokale Modelle über Ollama ab — welcher Anbieter läuft, entscheidet die Konfiguration des Betriebs. Für die verbrauchte Rechenzeit lässt sich ein Preis hinterlegen; ist er gesetzt, fliesst die Laufzeit in die Kostenrechnung ein. Ohne diese Angabe laufen lokale Modelle mit Kosten null.

Der Betrieb dahinter