
Environment-Variable
Eine Environment-Variable ist ein benannter Wert, den das Betriebssystem außerhalb eines Programms bereithält und den das Programm beim Start abfragen kann. So lassen sich Einstellungen und Passwörter ändern, ohne den Programmcode selbst anzufassen.
Jedes Programm auf einem Computer läuft in einer Umgebung. Diese Umgebung ist eine Liste von Werten, die das Betriebssystem verwaltet und dem Programm beim Start mitgibt. Jeder Eintrag dieser Liste hat einen Namen und einen Inhalt, zum Beispiel den Namen SPRACHE und den Inhalt „deutsch“. Genau so ein Eintrag heißt Environment-Variable. Das Programm kann diese Werte lesen und sich danach richten. Der Vorteil: Man ändert das Verhalten des Programms, ohne den Text zu ändern, aus dem das Programm gebaut wurde.
Warum Passwörter nicht in den Quelltext gehören
Fast jede Software braucht Angaben, die nicht überall gleich sind. Auf dem Laptop eines Entwicklers liegt die Datenbank woanders als auf dem Server im Rechenzentrum. Schreibt man solche Angaben fest in den Quelltext, also in die vom Menschen geschriebenen Anweisungen, braucht man für jede Umgebung eine eigene Fassung des Programms. Das ist mühsam und fehleranfällig. Mit Environment-Variablen genügt eine einzige Fassung, die sich je nach Umgebung anders verhält.
Noch wichtiger ist der Sicherheitsaspekt. Zugangsdaten wie API-Schlüssel sind Passwörter, mit denen ein Programm sich bei einem fremden Dienst anmeldet. Ein Schlüssel für ein KI-Modell etwa kostet bei jeder Nutzung echtes Geld. Steht so ein Schlüssel im Quelltext, landet er mit hoch, sobald jemand den Code auf eine öffentliche Plattform wie GitHub lädt. Solche Unfälle passieren regelmäßig, und automatische Suchprogramme finden die Schlüssel innerhalb von Minuten. Liegt der Schlüssel dagegen in einer Environment-Variable, verlässt er den jeweiligen Rechner nie.
Ein verbreiteter Irrtum ist trotzdem, Environment-Variablen seien ein Tresor. Sie sind es nicht. Wer Zugriff auf den laufenden Prozess oder den Server hat, kann sie meist auslesen. Sie schützen also vor Weitergabe, nicht vor Einbruch.
Von der Shell bis in den Container
Gesetzt werden Environment-Variablen meist in der Kommandozeile, also dem Textfenster, in dem man Befehle direkt eintippt. Unter Linux und macOS schreibt man dort etwa export API_KEY=abc123, unter Windows heißt der Befehl set. Startet man danach ein Programm, erbt es diese Werte automatisch. Das Programm fragt sie über eine eingebaute Funktion ab, in der Sprache Python zum Beispiel über os.environ. Findet es nichts, greift meist ein voreingestellter Standardwert.
Weil das Eintippen bei vielen Werten lästig wird, legen Entwickler oft eine Datei namens .env an. Darin steht pro Zeile ein Name und ein Wert. Ein kleines Hilfsprogramm liest die Datei beim Start ein und setzt die Variablen daraus. Diese Datei wird bewusst von der Versionsverwaltung ausgeschlossen, also von dem System, das alle Codeänderungen speichert und teilt. Genau dadurch bleibt sie lokal.
Wichtig ist die Reichweite: Environment-Variablen gelten nur für den Prozess, der sie erhalten hat, und für dessen Unterprozesse. Schließt man das Terminalfenster, sind sie weg, sofern man sie nicht dauerhaft hinterlegt hat. Genau diese Kurzlebigkeit macht sie für Server praktisch, die bei jedem Neustart frisch konfiguriert werden.
Wo sie in KI-Projekten auftauchen
Wer zum ersten Mal ein KI-Modell über eine Schnittstelle anspricht, stolpert fast sicher über eine Environment-Variable. Die Anleitungen von Anbietern wie OpenAI oder Anthropic beginnen typischerweise mit dem Satz, man solle OPENAI_API_KEY oder ANTHROPIC_API_KEY setzen. Die Programmbibliothek sucht diesen Namen dann von allein. Fehlt er, bricht das Programm mit einer Fehlermeldung ab, die genau darauf hinweist.
Auch außerhalb kleiner Bastelprojekte ist das der Standard. In Docker-Containern, also abgeschlossenen Verpackungen für Software, werden Konfiguration und Zugangsdaten fast ausschließlich über Environment-Variablen hineingereicht. Cloud-Anbieter bieten dafür eigene Eingabefelder in ihrer Verwaltungsoberfläche an. Für besonders heikle Werte gibt es zusätzlich sogenannte Secret-Manager, die Geheimnisse verschlüsselt speichern und erst beim Start ausliefern.
In Nachrichten tauchen Environment-Variablen meist dann auf, wenn etwas schiefging. Berichte über geleakte API-Schlüssel oder offen im Netz erreichbare .env-Dateien sind keine Seltenheit. Die Technik selbst ist unspektakulär und Jahrzehnte alt. Sie ist aber die Stelle, an der bei vielen Projekten die Sicherheit entschieden wird.