Aurabase-Logo
AurabasisDokumente
Dokumente›Edge Functions›Secrets and environment

Geheimnisse und Umgebungsvariablen

Wie man einen Stripe-Schlüssel oder eine beliebige Einstellung an eine Funktion übergibt, ohne sie in den Code zu schreiben, und was die Plattform tatsächlich schützt.

6 Min. gelesen·Ebene Mittelstufe·Überarbeitet am 12.10.2026
Dieser englische Text wurde automatisch aus dem französischen Original generiert und wurde noch nicht überprüft.
Diese Seite wurde automatisch übersetzt. Maßgeblich ist die englische Version.
#
Schreiben

1. Legen Sie eine Variable fest

Jede Variable gehört zu einer Funktion. Das Setzen von Variablen erfordert einen service_role-Schlüssel.

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # Werte werden maskiert: STRIPE_SECRET_KEY sk_l***
aura secrets unset --function checkout WEBHOOK_SECRET
terminalbash
curl -X PUT "$AURA_URL/v1/functions/checkout/env" \
  -H "apikey: $AURA_SERVICE_ROLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vars":[{"key":"STRIPE_SECRET_KEY","value":"sk_live_…"}]}'

PUT /env ersetzt den gesamten Variablensatz durch die von Ihnen gesendete Liste. aura secrets set und unset lesen die aktuellen Werte, ändern die von Ihnen benannten Schlüssel und schreiben das Ergebnis zurück.

Eine erneute Bereitstellung bewahrt Ihre Geheimnisse

Durch die Bereitstellung von neuem Code mit aura functions deploy bleiben die Variablen unberührt.

#
Lesen

2. Lesen Sie es in der Funktion

aurabase/functions/checkout/index.tstypescript
Deno.serve(async (req) => {
  const key = Deno.env.get('STRIPE_SECRET_KEY')
  if (!key) return new Response('STRIPE_SECRET_KEY is not set', { status: 500 })
  // …Stripe mit „key“ aufrufen
  return Response.json({ ok: true })
})

Variablen werden bei jedem Aufruf gelesen: Eine Änderung gilt für den nächsten Aufruf.

#
Injiziert

3. Variablen, die die Plattform hinzufügt

VariabelWert
AURABASE_PROJECT_IDDie Projekt-ID. Immer eingestellt.
AURABASE_FUNCTION_NAMEDer Name der Funktion. Immer eingestellt.
AURABASE_URLDie Plattform-URL, wenn der Plattformbetreiber sie definiert.
AURABASE_ANON_KEYEin Plattformschlüssel, wenn der Bediener ihn definiert.

Sie können diese Namen nicht überschreiben. Die Umgebung des Hosts ist für Ihre Funktion nicht sichtbar: In einem echten Lauf hat Deno.env.get('PATH') undefined zurückgegeben.

Um Ihr eigenes Projekt von einer Funktion aus aufzurufen, speichern Sie einen service_role-Schlüssel als Geheimnis dieser Funktion und senden Sie ihn im apikey-Header einer HTTP-Anfrage. Leiten Sie niemals den Schlüssel eines Benutzers weiter und geben Sie niemals einen service_role-Schlüssel in einen Browser ein.

#
Schutz

4. Was ist verschlüsselt?

PfadIm Ruhezustand verschlüsselt
PUT /v1/functions/{name}/envJa, , wenn für den Dienst ein Verschlüsselungsschlüssel konfiguriert ist (FN_ENV_ENCRYPTION_KEY, AES-256-GCM). Ohne sie werden die Werte wie gesendet gespeichert und der Dienst protokolliert beim Start eine Warnung.
aura secrets set / unsetNein: Die CLI schreibt über PATCH, wodurch die gesendeten Werte gespeichert werden.
env_vars in einer BereitstellungsanforderungNein, aus demselben Grund.

In unserem lokalen Test wurde ein von PUT /env geschriebener Wert von der Funktionsdefinition unverändert zurückgegeben, da kein Schlüssel konfiguriert wurde.

Fragen Sie Ihren Plattformbetreiber, bevor Sie auf Verschlüsselung setzen

Ob Geheimnisse verschlüsselt werden, hängt von der Bereitstellung ab und nur der Pfad PUT /env kann sie verschlüsseln. Der CLI-Pfad speichert sie wie angegeben. Bis die CLI PUT /env verwendet, verwenden Sie den obigen HTTP-Aufruf für Produktionsgeheimnisse.

Auch das Zurücklesen von Geheimnissen ist eingeschränkt. GET /v1/functions/{name}/env gibt die entschlüsselten Werte zurück und erfordert wie GET /v1/functions/{name} einen service_role-Schlüssel. Ein öffentlicher Schlüssel erhält 403.

#
Regeln

5. Zu befolgende Regeln

  • Kodieren Sie niemals ein Geheimnis in index.ts fest. Der Quellcode einer Funktion wird in Ihrem Projekt gespeichert und an jeden service_role-Aufrufer zurückgegeben.
  • Protokollieren Sie niemals ein Geheimnis. Die Ausgabe von console.log landet in den Protokollen der Laufzeit.
  • Verwenden Sie eine Variable pro Funktion mit dem engsten Schlüssel, der funktioniert (ein eingeschränkter Schlüssel Ihres Anbieters, nicht der Hauptschlüssel).
  • Drehen Sie einen Schlüssel, indem Sie den neuen Wert festlegen und nichts erneut bereitstellen: Der nächste Aufruf verwendet ihn.
Zuletzt aktualisiert · 12.10.2026