オーラベースのロゴ
オーラベースドキュメント
ドキュメント›Edge Functions›Secrets and environment

シークレットと環境変数

コードに記述せずに Stripe キーや設定を関数に渡す方法と、プラットフォームが実際に保護するもの。

6 分 読み取り·レベル 中間·2026/10/12 に改訂
この英語のテキストはフランス語のオリジナルから自動的に生成されたもので、まだレビューされていません。
このページは自動翻訳されました。英語版が正式です。
#
書く

1. 変数を設定する

すべての変数は 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 の出力は、ランタイムのログに記録されます。
  • 関数ごとに 1 つの変数を使用し、機能する最も狭いキー (マスター キーではなく、プロバイダーからの制限されたキー) を使用します。
  • 新しい値を設定し、何も再デプロイせずにキーをローテーションします。次の呼び出しでその値が使用されます。