Aura Logo
aurabasedocumentos
documentos›Edge Functions›Secrets and environment

Segredos e variáveis de ambiente

Como passar uma chave Stripe ou qualquer configuração para uma função sem escrevê-la no código e o que a plataforma realmente protege.

6 min lido·Nível intermediário·Revisado em 12 de out. de 2026
Este texto em inglês foi gerado automaticamente a partir do original em francês e ainda não foi revisado.
Esta página foi traduzida automaticamente. A versão em inglês é oficial.
#
Escreva

1. Defina uma variável

Cada variável pertence a uma função. A configuração de variáveis ​​precisa de uma chave service_role.

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # os valores são mascarados: 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 substitui todo o conjunto de variáveis pela lista que você envia. aura secrets set e unset leem os valores atuais, alteram as chaves que você nomeia e escrevem o resultado de volta.

A reimplantação mantém seus segredos

A implantação do novo código com aura functions deploy deixa as variáveis intactas.

#
Leia

2. Leia na função

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

As variáveis são lidas a cada chamada: uma alteração se aplica à próxima chamada.

#
Injetado

3. Variáveis que a plataforma adiciona

VariávelValor
AURABASE_PROJECT_IDA identificação do projeto. Sempre definido.
AURABASE_FUNCTION_NAMEO nome da função. Sempre definido.
AURABASE_URLA URL da plataforma, quando o operador da plataforma a define.
AURABASE_ANON_KEYUma chave de plataforma, quando o operador a define.

Você não pode substituir esses nomes. O ambiente do host não é visível para sua função: em uma execução real Deno.env.get('PATH') retornou undefined.

Para chamar seu próprio projeto a partir de uma função, armazene uma chave service_role como um segredo dessa função e envie-a no cabeçalho apikey de uma solicitação HTTP. Nunca encaminhe a chave de um usuário e nunca coloque uma chave service_role em um navegador.

#
Proteção

4. O que está criptografado

CaminhoCriptografado em repouso
PUT /v1/functions/{name}/envSim, se o serviço tiver uma chave de criptografia configurada (FN_ENV_ENCRYPTION_KEY, AES-256-GCM). Sem ele, os valores são armazenados conforme enviados e o serviço registra um aviso na inicialização.
aura secrets set / unsetNão: a CLI grava por meio de PATCH, que armazena os valores conforme enviados.
env_vars em uma solicitação de implantaçãoNão, pelo mesmo motivo.

Em nosso teste local, um valor escrito por PUT /env foi retornado inalterado pela definição da função, pois nenhuma chave foi configurada.

Pergunte ao operador da sua plataforma antes de confiar na criptografia

Se os segredos serão criptografados depende da implantação e somente o caminho PUT /env pode criptografá-los. O caminho CLI os armazena conforme especificado. Até que a CLI use PUT /env, use a chamada HTTP acima para segredos de produção.

A leitura dos segredos também é restrita. GET /v1/functions/{name}/env retorna os valores descriptografados e, como GET /v1/functions/{name}, requer uma chave service_role. Uma chave pública recebe 403.

#
Regras

5. Regras a seguir

  • Nunca codifique um segredo em index.ts. O código-fonte de uma função é armazenado em seu projeto e retornado para qualquer chamador service_role.
  • Nunca registre um segredo. A saída de console.log termina nos logs do tempo de execução.
  • Use uma variável por função, com a chave mais restrita que funcione (uma chave restrita do seu provedor, não a chave mestra).
  • Gire uma chave definindo o novo valor e não reimplantando nada: a próxima chamada a utilizará.
Última atualização · 12 de out. de 2026