你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 容器应用 上管理 Azure Functions 的机密

在Azure 容器应用上运行Azure Functions时,可以使用两类机密:

类别 说明 使用者
应用级机密 函数代码在运行时读取的配置值,例如数据库连接字符串、API 密钥和触发器/绑定凭据。 代码和 Functions 运行时绑定。
函数访问密钥 保护 HTTP 触发的函数终结点的身份验证令牌(访问密钥),包括主密钥、主机密钥、函数密钥和系统密钥。 HTTP 函数的外部调用方(服务、Webhook、开发人员)。

这两个类别在方向上不同:

应用级机密 函数访问密钥
方向 出站 - 函数向其他服务进行身份验证 入站 - 调用方向函数进行身份验证
谁持有机密 你的函数应用 调用方(webhook 提供程序、服务、开发人员)
它保护的内容 函数连接到的内容 谁可以调用 HTTP 终结点
已验证 目标服务 Functions 运行时环境

应用级机密

应用级机密是函数代码和绑定连接到外部服务时所需的凭据。 可以通过两种方式存储它们:

选项 最适用于 旋转 审计 指南
容器应用机密 开发/测试、简单的单应用工作负载 手动 仅活动日志 存储应用级机密
密钥保管库 引用 生产、多应用、合规性 自动化(无版本 URI) 完整密钥保管库诊断 存储应用级机密

小窍门

为简单起见,请从容器应用机密开始。 需要集中管理、自动轮换或合规性等级审核时,请改用密钥保管库引用。

函数访问密钥

访问密钥为 HTTP 终结点提供轻型共享机密身份验证。 当调用方无法提供 Microsoft Entra ID 令牌(例如第三方 Webhook、服务到服务调用或开发期间)时,使用访问密钥

设置 AzureWebJobsSecretStorageType 环境变量以选择存储后端:

后端 设置值 最适用于 指南
容器应用密钥存储 containerapp 大多数工作负荷 - 无外部依赖项(建议 配置主机密钥
Azure 密钥保管库 keyvault 集中式治理、合规性审核 配置主机密钥
Azure Blob 存储 blob 旧版应用或现有 AzureWebJobsStorage 依赖项 配置主机密钥
本地文件系统 files 不建议在容器应用上使用 - 请参阅警告 N/A

注释

对于 Azure 容器应用上的 Functions,当未显式设置 AzureWebJobsSecretStorageType 时,平台默认使用 containerapp(容器应用机密存储)。 这意味着访问密钥由容器应用平台的本机机密存储默认管理。 如果您的工作负载需要不同的后端,可以通过将 AzureWebJobsSecretStorageType 设置为 keyvaultblob 来覆盖此默认设置。

警告

不要将 AzureWebJobsSecretStorageType 设置为 files. 在 Azure 容器应用中,文件系统是临时的。 使用 files 后端存储的主机密钥会在每次重启、缩减为零事件或修订版本部署时丢失。

后续步骤

选择与需要管理的机密类型匹配的指南: