iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
Build on Google AI

將考國際證照的應用程式變成開源系列 第 33

deployment: 05-secrets-management.md

  • 分享至 

  • xImage
  •  

05-secrets-management.md

機密管理 (Secrets Management)

AI Agent Target: Defines the inventory of credential files, gitignore rules, and runtime secret management via secure storage.
Human Target: 如何在專案中安全地管理 API 金鑰、密碼與敏感設定。

必要憑證清單 (Required Credentials Inventory)

確保這些檔案存在於本地端,但 絕對不要 提交 (commit) 它們。

  • 根目錄:
    • secrets.json (所有外部 API 金鑰:OpenAI, Gemini 等)
  • android/:
    • key.properties (金鑰庫密碼)
    • local.properties (Android SDK 路徑)
    • play-store-credentials.json (Google Play 開發者 API 服務帳戶)
    • keystore/upload-keystore.jks (發布簽章金鑰)
  • scripts/:
    • service-account.json (Firebase Admin SDK 服務帳戶)

.gitignore 驗證清單

確保機密資料不會外洩的檢查清單:

  • [ ] secrets.json
  • [ ] *.jks
  • [ ] key.properties
  • [ ] service-account.json
  • [ ] play-store-credentials.json

執行期機密 (Runtime Secrets)

權杖 (Tokens) 與使用者工作階段透過 FlutterSecureStorage 安全地儲存在裝置上 (Android 上的 EncryptedSharedPreferences,iOS 上的 Keychain)。

Cloudflare Worker 機密

不應存在於前端應用程式中的敏感金鑰 (如 MongoDB URI 或 GitHub token) 會透過 wrangler secret put 注入 Cloudflare Worker 中。

secrets.json 範本

{
  "GEMINI_API_KEY": "AIzaSy...",
  "SUPABASE_SERVICE_ROLE_KEY": "eyJhbGci...",
  "MONGODB_URI": "mongodb+srv://..."
}

上一篇
deployment: web-deployment
下一篇
deployment : ci-cd-automation
系列文
將考國際證照的應用程式變成開源39
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言