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

如何借助Azure API管理服务限制Azure Function App的访问权限?

限制文件上传Azure Function的外部访问方案

针对你的场景,已经设置authLevel为function,可以通过以下几种方式实现仅允许API Function访问文件上传Function:

  • 虚拟网络隔离
    将两个Function App部署到同一个Azure虚拟网络中,然后在文件上传Function的网络设置里:

    1. 启用虚拟网络集成,将Function接入VNet;
    2. 在“访问限制”中设置为拒绝所有公共网络流量,仅允许虚拟网络内的流量访问。
      这样外部无法直接访问文件上传Function,只有同VNet内的API Function能发起调用。
  • 安全传递函数密钥
    既然authLevel设为function,文件上传Function会生成专属的函数密钥。API Function调用时必须携带该密钥:

    1. 将文件上传Function的密钥存储到API Function的应用设置中(比如命名为UploadFunctionAuthKey);
    2. API调用上传Function时,通过请求头x-functions-key传递密钥。
      示例代码(以C#为例):
    var httpClient = new HttpClient();
    var authKey = Environment.GetEnvironmentVariable("UploadFunctionAuthKey");
    httpClient.DefaultRequestHeaders.Add("x-functions-key", authKey);
    var uploadResponse = await httpClient.PostAsync("https://your-upload-function-endpoint", fileContent);
    

    确保密钥仅在内部应用设置中存储,不对外暴露。

  • 精准配置IP访问限制
    之前IP限制失效是因为未添加API Function的出站IP。修正方式:

    1. 在API Function的“概述”->“属性”中,复制所有出站IP地址;
    2. 在文件上传Function的“访问限制”中,添加这些IP地址到允许列表,同时设置默认规则为拒绝所有未匹配的流量。
      这样只有API Function的出站IP能访问上传Function,外部其他IP会被拦截。
  • 通过Azure API管理(APIM)管控流量
    将对外提供服务的API Function接入APIM,文件上传Function不暴露到APIM前端:

    1. API通过APIM对外提供访问入口;
    2. APIM内部调用文件上传Function时,携带函数密钥或通过VNet进行安全访问;
    3. 文件上传Function的访问限制设置为仅允许APIM的IP或VNet流量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 08:55:25