Logo Aurabase
aurabasedocumenti
documenti›Edge Functions›Secrets and environment

Segreti e variabili d'ambiente

Come passare una chiave Stripe o qualsiasi impostazione a una funzione senza scriverla nel codice e cosa protegge effettivamente la piattaforma.

6 min letto·Livello intermedio·Revisionato il 12 ott 2026
Questo testo inglese è stato generato automaticamente dall'originale francese e non è stato ancora rivisto.
Questa pagina è stata tradotta automaticamente. Fa fede la versione inglese.
#
Scrivi

1. Impostare una variabile

Ogni variabile appartiene ad una funzione. L'impostazione delle variabili richiede una chiave service_role.

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # i valori sono mascherati: 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 sostituisce l'intero set di variabili con l'elenco inviato. aura secrets set e unset leggono i valori correnti, cambiano le chiavi nominate e riscrivono il risultato.

La ridistribuzione mantiene i tuoi segreti

La distribuzione del nuovo codice con aura functions deploy lascia le variabili intatte.

#
Leggi

2. Leggilo nella funzione

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 })
  // …chiama Stripe con `key`
  return Response.json({ ok: true })
})

Le variabili vengono lette ad ogni invocazione: una modifica si applica alla chiamata successiva.

#
Iniettato

3. Variabili aggiunte dalla piattaforma

VariabileValore
AURABASE_PROJECT_IDL'ID del progetto. Sempre impostato.
AURABASE_FUNCTION_NAMEIl nome della funzione. Sempre impostato.
AURABASE_URLL'URL della piattaforma, quando lo definisce l'operatore della piattaforma.
AURABASE_ANON_KEYUna chiave della piattaforma, quando l'operatore la definisce.

Non è possibile sovrascrivere questi nomi. L'ambiente dell'host non è visibile alla tua funzione: in un'esecuzione reale Deno.env.get('PATH') ha restituito undefined.

Per chiamare il tuo progetto da una funzione, memorizza una chiave service_role come segreto di quella funzione e inviala nell'intestazione apikey di una richiesta HTTP. Non inoltrare mai la chiave di un utente e non inserire mai una chiave service_role in un browser.

#
Protezione

4. Cosa è crittografato

PercorsoCrittografato a riposo
PUT /v1/functions/{name}/envSì, se il servizio ha una chiave di crittografia configurata (FN_ENV_ENCRYPTION_KEY, AES-256-GCM). Senza di esso, i valori vengono archiviati come inviati e il servizio registra un avviso all'avvio.
aura secrets set / unsetNo: la CLI scrive tramite PATCH, che memorizza i valori così come inviati.
env_vars in una richiesta di distribuzioneNo, stesso motivo.

Nel nostro test locale, un valore scritto da PUT /env è stato restituito invariato dalla definizione della funzione, perché non era configurata alcuna chiave.

Chiedi al tuo operatore della piattaforma prima di fare affidamento sulla crittografia

La crittografia dei segreti dipende dalla distribuzione e solo il percorso PUT /env può crittografarli. Il percorso CLI li memorizza come indicato. Fino a quando la CLI non utilizza PUT /env, utilizza la chiamata HTTP sopra per i segreti di produzione.

Anche la lettura dei segreti è limitata. GET /v1/functions/{name}/env restituisce i valori decrittografati e, come GET /v1/functions/{name}, richiede una chiave service_role. Una chiave pubblica riceve 403.

#
Regole

5. Regole da seguire

  • Non codificare mai un segreto in index.ts. Il codice sorgente di una funzione viene archiviato nel progetto e restituito a qualsiasi chiamante service_role.
  • Non registrare mai un segreto. L'output di console.log finisce nei log del runtime.
  • Utilizza una variabile per funzione, con la chiave più stretta che funziona (una chiave limitata del tuo provider, non la chiave principale).
  • Ruota una chiave impostando il nuovo valore e non ridistribuendo nulla: la chiamata successiva lo utilizza.
Ultimo aggiornamento · 12 ott 2026