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

如何在Azure App Service Plan中禁用用户及应用级凭据部署?

解答:Azure App Service部署凭据的管控方案

针对你提出的几个核心问题,我整理了具体的解决方案和细节说明:

1. 能否针对特定App Service Plan禁用用户级凭据部署?

用户级部署凭据是Azure账户全局共享的,无法直接通过App Service Plan来禁用整个Plan下所有App的用户级凭据使用。不过你可以针对单个App Service批量配置,禁止使用依赖用户级凭据的部署方式(比如FTP/FTPS、本地Git),从而间接阻止用户用全局凭据部署到生产环境的App。

如果你的生产环境App都在同一个Plan下,可以用Azure CLI或ARM模板批量执行配置,避免逐个手动操作:

  • Azure CLI命令(批量禁用Plan下所有App的FTP和本地Git):
    # 获取Plan下的所有App列表
    apps=$(az webapp list --resource-group <你的资源组名> --plan <你的App Service Plan名> --query "[].name" -o tsv)
    # 逐个禁用FTP和本地Git部署
    for app in $apps; do
      az webapp config set --resource-group <你的资源组名> --name $app --ftps-state Disabled
      az webapp deployment source config-local-git --resource-group <你的资源组名> --name $app --disable
    done
    
  • ARM模板中可以在Microsoft.Web/sites资源的properties.siteConfig里添加:
    "siteConfig": {
      "ftpsState": "Disabled",
      "localGitEnabled": false
    }
    

2. 禁用FTP是否覆盖所有用户级凭据部署方式?

不覆盖。用户级凭据除了用于FTP/FTPS,还支持本地Git部署。所以要完全阻止用户用全局凭据部署,需要同时禁用:

  • FTP/FTPS(在App的配置中设置ftpsState为Disabled)
  • 本地Git部署(禁用本地Git功能)

另外,如果你之前允许过用用户级凭据连接Azure DevOps的旧部署方式,也需要在DevOps流水线中切换为服务主体或托管标识,彻底切断用户级凭据的使用路径。

3. 能否禁用应用级凭据?

可以。应用级凭据是每个App独立的,你可以直接在Azure门户或通过CLI/ARM模板禁用:

  • 门户操作:进入App Service -> 部署中心 -> 部署凭据,选择“禁用应用级凭据”
  • Azure CLI命令:
    az webapp deployment credential delete --resource-group <你的资源组名> --name <你的App名>
    

你担心的审计性问题确实存在:应用级凭据属于App本身,审计日志中无法关联到具体操作的用户。因此更推荐的替代方案是使用托管标识或**服务主体(SPN)**来执行部署:

  • 对于你正在使用的ARM模板MSDeploy扩展,可以配置为使用系统分配的托管标识,这样部署操作的审计日志会清晰关联到该托管标识,而托管标识的权限可以通过RBAC严格管控。
  • 部署槽位的部署凭据默认继承自主应用,所以主应用禁用应用级凭据后,所有槽位也会自动生效,无需单独配置。

额外建议

为了强化生产环境的部署管控,还可以:

  • 启用App Service的部署限制,只允许流水线所在的IP范围或Azure服务标签访问部署端点
  • 在RBAC中为生产环境资源组设置严格权限,仅允许部署流水线的服务主体/托管标识拥有部署权限,普通用户仅具备只读权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:50:15