在 Azure 容器應用程式上管理 Azure Functions 的秘密

當你在 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。 容器應用程式檔案系統是短暫的,因此當應用程式縮減到零、重啟或部署新版本時,後端儲存的金鑰會遺失。

下一步

選擇符合你想管理秘密類型的指南: