← 戻る

Firebase Cloud Functions でのシークレット管理


概要

Firebase Cloud Functions のシークレット(API キー、Webhook URL など)は Google Cloud Secret Manager で一元管理する。

登録方法

# シークレットを登録
firebase functions:secrets:set SECRET_NAME

# ユーザー入力を促される(パスト可能)
# または CI/CD で:
firebase functions:secrets:set SECRET_NAME --data "secret-value"

関数での使用

// functions/src/index.ts
import * as functions from 'firebase-functions/v2';

export const sendMail = functions.https.onCall(
  {
    secrets: ['SLACK_WEBHOOK_URL', 'SENDGRID_API_KEY']
  },
  async (request, context) => {
    const webhookUrl = process.env.SLACK_WEBHOOK_URL;
    const apiKey = process.env.SENDGRID_API_KEY;

    // 処理...
  }
);

取得方法

デプロイ後、シークレット値を確認する場合:

firebase functions:secrets:access SECRET_NAME

ベストプラクティス

  • secrets 配列に列挙する → 必要な値のみロード、セキュリティ向上
  • Git リポジトリにはコミットしない → Secret Manager で一元管理
  • 環境別に別々のシークレット → dev / prod で切り分け

注意

Astro + CF Functions へ移行する場合は wrangler secrets に移行する。