當你在 Azure 容器應用程式 上執行 Azure Functions 時,你會處理兩種秘密類別:
| 類別 | 說明 | 使用者 |
|---|---|---|
| 應用程式層級祕密 | 配置值是函式程式碼在執行時讀取的值,例如資料庫連線字串、API 金鑰,以及觸發/綁定憑證。 | 你的程式碼與 Functions 執行階段的綁定。 |
| 功能存取鍵 | 認證憑證(存取金鑰)用以保護 HTTP 觸發的功能端點,包括主控金鑰、主機金鑰、功能金鑰及系統金鑰。 | 外部呼叫您 HTTP 函式的對象(如服務、webhook、開發人員)。 |
這兩類在 方向上有所不同:
| 應用程式層級祕密 | 功能存取鍵 | |
|---|---|---|
| 方向 | 傳出 - 您的函式會向其他服務驗證 | 傳入 - 呼叫端會向您的函式驗證 |
| 誰掌握著秘密 | 您的函式應用程式 | 呼叫者(webhook 提供者、服務、開發者) |
| 它所保護的是什麼 | 你的函數連接到的對象是什麼 | 誰可以呼叫你的 HTTP 端點 |
| 驗證者 | 目標服務 | Functions 執行階段環境 |
應用程式層級祕密
應用程式層級祕密是函式程式碼和繫結連線至外部服務所需的認證。 你可以用兩種方式存放:
| Option | 最適合用於 | Rotation | 審計 | Guide |
|---|---|---|---|---|
| 容器應用程式秘密 | 開發/測試,單一應用程式的簡單工作負載 | 說明書 | 僅限於活動記錄 | 儲存應用程式層級的秘密 |
| 金鑰保存庫參考資料 | 生產、多應用程式、合規 | 自動(無版本 URI) | Full 金鑰保存庫 診斷 | 儲存應用程式層級的秘密 |
小提示
為了簡化,建議先從容器應用程式的秘密開始。 當您需要集中管理、自動輪替或合規等級稽核時,請改用 金鑰保存庫 參考。
功能存取鍵
存取金鑰為 HTTP 端點提供輕量級的共享秘密認證。 當呼叫方無法提供 Microsoft Entra ID 令牌時,例如在使用第三方 webhook、服務對服務的通訊或開發過程中,請使用 存取金鑰。
設定 AzureWebJobsSecretStorageType 環境變數以選擇儲存後端:
| 後端 | 設定值 | 最適合用於 | Guide |
|---|---|---|---|
| Container Apps secret store | containerapps |
大多數工作負載 - 無外部依賴(建議) | 設定主機金鑰 |
| Azure Key Vault | keyvault |
集中治理與合規稽核 | 設定主機金鑰 |
| Azure Blob 儲存體 | blob |
舊有應用程式或現有 AzureWebJobsStorage 依賴 |
設定主機金鑰 |
| 本地檔案系統 | files |
不建議在容器應用程式上 使用——請見警告 | N/A |
請牢記以下後端考量:
- 執行時不會自動選擇容器應用程式的秘密儲存。 如果你沒有設定
AzureWebJobsSecretStorageType或設定為無法辨識的值,Functions 主機會在可用時AzureWebJobsStorage使用 Blob 儲存體。 - 保持
AzureWebJobsStorage設定以進行儲存健康檢查及依賴儲存的功能。 - 不要設定
AzureWebJobsSecretStorageType為files。 容器應用程式檔案系統是短暫的,因此當應用程式縮減到零、重啟或部署新版本時,後端儲存的金鑰會遺失。
下一步
選擇符合你想管理秘密類型的指南: