You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无人值守的Azure Function中获取用户名和密码

Azure Function PowerShell 7 安全存储运行凭证的可行方案

推荐方案:Azure Key Vault + 系统托管标识

这是Azure官方推荐的生产级凭证管理方案,全程无明文暴露、无需手动维护凭证生命周期:

  • 第一步:创建Azure Key Vault实例,将需要用到的用户名、密码分别作为独立机密存入Key Vault,也可根据需求直接存储结构化凭证信息
  • 第二步:进入Azure Function配置页,开启系统分配的托管标识,开启后Azure会自动为该Function实例生成无需人工维护的身份凭证
  • 第三步:回到Key Vault的访问控制(IAM)配置,为上述托管标识授予密钥机密读取者权限,遵循最小权限原则,无需分配额外权限
  • 第四步:在Azure Function的应用设置中,新增对应配置项,值填写Key Vault机密引用,格式为@Microsoft.KeyVault(SecretUri=<对应机密的完整URI>),无需填写明文凭证
  • 第五步:PowerShell代码中直接读取环境变量即可获取解密后的凭证内容,示例代码如下:
# 从应用配置环境变量读取明文凭证(Azure后台自动通过托管身份从Key Vault拉取解密,不会暴露明文)
$user = $env:YOUR_USER_CONFIG_NAME
$pwd = ConvertTo-SecureString $env:YOUR_PWD_CONFIG_NAME -AsPlainText -Force
$cred = [System.Management.Automation.PSCredential]::new($user, $pwd)

兼容现有资产的替代方案:直接读取原Automation Account凭证

如果不想迁移已存在Automation Account中的凭证,可直接赋予Function托管标识Automation账户的凭证读取权限,直接复用现有资产:

  • 给Function的系统托管标识分配Automation Account的自动化操作员或更细粒度的凭证读取权限
  • PowerShell代码中直接调用Az模块读取原有凭证,示例代码如下:
# 需提前在requirements.psd1中添加Az.Automation模块依赖
Connect-AzAccount -Identity
$cred = Get-AzAutomationCredential -Name <原有凭证名称> -ResourceGroupName <Automation账户所属资源组> -AutomationAccountName <Automation账户名称>

补充说明

Azure Function的应用配置本身默认是静态加密的,但Key Vault方案额外提供了细粒度权限控制、凭证自动轮换、访问审计日志等安全能力,更符合生产环境安全合规要求。

内容的提问来源于stack exchange,提问作者AdamCodes716

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 13:15:02