아우라베이스 로고
아우라베이스문서
문서›Edge Functions›Secrets and environment

비밀 및 환경 변수

코드를 작성하지 않고 Stripe 키나 설정을 함수에 전달하는 방법과 플랫폼이 실제로 보호하는 것은 무엇입니까?

6분 읽기·레벨 중급·2026. 10. 12.에 개정됨
이 영어 텍스트는 프랑스어 원본에서 자동으로 생성되었으며 아직 검토되지 않았습니다.
이 페이지는 자동으로 번역되었습니다. 영어 버전은 권위가 있습니다.
#
쓰기

1. 변수 설정

모든 변수는 하나의 함수에 속합니다. 변수를 설정하려면 service_role 키가 필요합니다.

terminalbash
aura secrets set --function checkout STRIPE_SECRET_KEY=sk_live_… WEBHOOK_SECRET=whsec_…
aura secrets list --function checkout     # 값이 마스킹됩니다: 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 는 전체 변수 세트를 사용자가 보내는 목록으로 대체합니다. aura secrets set 및 unset는 현재 값을 읽고, 이름을 지정한 키를 변경하고 결과를 다시 씁니다.

재배포하면 비밀이 유지됩니다

aura functions deploy를 사용하여 새 코드를 배포하면 변수가 그대로 유지됩니다.

#
읽기

2. 함수에서 읽어보세요

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 })
  // ...`key`를 사용하여 Stripe 호출
  return Response.json({ ok: true })
})

호출할 때마다 변수를 읽습니다. 변경 사항은 다음 호출에 적용됩니다.

#
주입됨

3. 플랫폼이 추가하는 변수

변수가치
AURABASE_PROJECT_ID프로젝트 ID입니다. 항상 설정됩니다.
AURABASE_FUNCTION_NAME함수의 이름입니다. 항상 설정됩니다.
AURABASE_URL플랫폼 운영자가 정의하는 플랫폼 URL입니다.
AURABASE_ANON_KEY운영자가 정의하는 플랫폼 키.

이러한 이름은 재정의할 수 없습니다. 호스트 환경은 함수에 표시되지 않습니다. 실제 실행에서는 Deno.env.get('PATH')이 undefined을 반환했습니다.

함수에서 자신의 프로젝트를 호출하려면 service_role 키를 해당 함수의 비밀로 저장하고 이를 HTTP 요청의 apikey 헤더에 보냅니다. 절대로 사용자의 키를 전달하지 말고 브라우저에 service_role 키를 넣지 마십시오.

#
보호

4. 암호화되는 내용

경로저장 시 암호화됨
PUT /v1/functions/{name}/env예, 인 경우 서비스에 암호화 키가 구성되어 있습니다(FN_ENV_ENCRYPTION_KEY, AES-256-GCM). 이것이 없으면 값은 전송된 대로 저장되고 서비스는 시작 시 경고를 기록합니다.
aura secrets set / unset아니요: CLI는 전송된 값을 저장하는 PATCH를 통해 씁니다.
배포 요청의 env_vars아니요, 같은 이유입니다.

로컬 테스트에서는 키가 구성되지 않았기 때문에 PUT /env에 의해 작성된 값이 함수 정의에 의해 변경되지 않고 반환되었습니다.

암호화에 의존하기 전에 플랫폼 운영자에게 문의하세요

비밀이 암호화되는지 여부는 배포에 따라 다르며 PUT /env 경로만 암호화할 수 있습니다. CLI 경로는 이를 주어진 대로 저장합니다. CLI가 PUT /env을 사용할 때까지 프로덕션 비밀에 대해 위의 HTTP 호출을 사용하세요.

비밀을 다시 읽는 것도 제한됩니다. GET /v1/functions/{name}/env는 해독된 값을 반환하며 GET /v1/functions/{name}와 마찬가지로 service_role 키가 필요합니다. 공개 키는 403를 받습니다.

#
규칙

5. 따라야 할 규칙

  • index.ts에 비밀을 하드 코딩하지 마십시오. 함수의 소스 코드는 프로젝트에 저장되고 service_role 호출자에게 반환됩니다.
  • 비밀을 기록하지 마십시오. console.log의 출력은 런타임 로그로 끝납니다.
  • 작동하는 가장 좁은 키(마스터 키가 아닌 공급자의 제한된 키)를 사용하여 함수당 하나의 변수를 사용합니다.
  • 새 값을 설정하고 아무것도 재배포하지 않음으로써 키를 순환합니다. 다음 호출에서 이를 사용합니다.
마지막 업데이트 · 2026. 10. 12.