【Azure Function App】在Function App中使用System Managed Identity访问Storage Account

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 本文介绍了如何在Azure Function中使用托管身份(Managed Identity)替代AzureWebJobsStorage连接函数应用到存储账户,以提高安全性并减少Access Key的使用。具体步骤包括:1) 启用系统分配的身份;2) 为函数应用授予存储访问权限,添加必要角色(如Storage Blob Data Contributor);3) 配置`AzureWebJobsStorage__blobServiceUri`参数指定Blob Service Uri。完成后删除旧配置,即可通过Managed Identity访问Storage Account。

问题描述

在Azure Function中,如何使用托管身份(Managed Identity) 而不是 AzureWebJobsStorage 来连接函数应用到存储账户?

原因是为了Storage Account更安全,减少Access Key的使用场景。或当Storage Account禁用了Access Key方式后。

 

问题解答

在函数应用中,通常使用应用设置 AzureWebJobsStorage 来配置连接字符串连接到Storage Account。

当在Storage Account中关闭了“Allow storage account key access”功能后。连接字符串也就无法正常工作。

 

本文介绍了如何使用 Azure Active Directory 身份而不是秘密或连接字符串来配置函数应用。使用身份可以避免意外泄露敏感秘密,并且可以更好地了解数据的访问方式。

 

以下是配置步骤

第一步:在函数应用中启用系统分配的身份并保存

 

第二步:为函数应用授予存储访问权限

在Storaeg Account的添加权限页面,搜索 Storage Blob Data Contributor 并选择它。

如果配置了 blob 触发的函数应用,重复步第二步。添加 Storage Queue Data Contributor 和 Storage Table Data Contributor 角色,这些角色将用于 Funtcion 的触发。

返回访问控制 (IAM),点击角色分配,搜索函数应用名称以确认角色已成功添加。完善的权限列表又如下三个:

  1. Storage Queue Data Contributor
  2. Storage Blob Data Contributor
  3. Storage Table Data Contributor

 

第三步:配置 AzureWebJobsStorage__blobServiceUri 参数

因为中国区Azure Storage Account使用的终结点后缀与Global Azure不同,所以这是不能配置AzureWebJobsStorage__accountname 并把值指定为 Stroage Account Name。

而是需要指定具体的Blob Service Uri,所以需要使用AzureWebJobsStorage__blobServiceUri 参数,并包含正确的域名,如:https://<your-storage-account-name>.blob.core.chinacloudapi.cn 

注意:新设置使用双下划线 (__),这是应用设置中的特殊字符,如果需要使用Table 或 Queue,同理,配置它们的终结点:

  1. AzureWebJobsStorage__queueServiceUri,值为 https://<your-storage-account-name>.queue.core.chinacloudapi.cn/
  2. AzureWebJobsStorage__tableServiceUri,值为 https://<your-storage-account-name>.table.core.chinacloudapi.cn/

以上操作完成后,删除旧的配置 AzureWebJobsStorage。

 

Function App就能通过Managed Identity访问Storage Account。

 

参考文档

Use managed identity instead of AzureWebJobsStorage to connect a function app to a storage account : https://techcommunity.microsoft.com/blog/appsonazureblog/use-managed-identity-instead-of-azurewebjobsstorage-to-connect-a-function-app-to/3657606

Configure Durable Functions with managed identity :https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-configure-managed-identity

Azure Functions 的应用设置参考 : https://docs.azure.cn/zh-cn/azure-functions/functions-app-settings#azurewebjobsstorage

 

 



当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

目录
打赏
0
18
22
1
206
分享
相关文章
【Azure Container App】配置容器应用的缩放规则 Managed Identity 连接中国区 Azure Service Bus 问题
本文介绍了在 Azure Container Apps 中配置基于自定义 Azure Service Bus 的自动缩放规则时,因未指定云环境导致的域名解析错误问题。解决方案是在扩展规则中添加 `cloud=AzureChinaCloud` 参数,以适配中国区 Azure 环境。内容涵盖问题描述、原因分析、解决方法及配置示例,适用于使用 KEDA 实现事件驱动自动缩放的场景。
Ollama部署本地大模型并通过Infortress APP远程访问保姆级教程
本文介绍如何快速上手本地大模型部署工具Ollama及AI远程访问工具Infortress。通过Ollama,开发者可轻松部署如Llama、Deepseek等主流开源模型,仅需几行命令即可完成安装与运行。结合Infortress,用户能实现对本地大模型的远程访问,支持多设备无缝对接,同时提供便捷的模型切换与知识库管理功能。Infortress更兼具NAS软件特性,成为个人AI数据中心的理想选择。
【Function App】本地通过VS Code调试Function时候遇见无法加载文件错误Microsoft.Extensions.Diagnostics.Abstractions
在使用 VS Code 调试 Azure Functions 时,执行 `func host start` 可能因版本冲突报错。错误信息显示 Rpc Initialization Service 启动失败,可能是由于缺少文件或组件导致。解决方法包括:1) 使用 npm 卸载并重新安装 Azure Functions Core Tools;2) 若问题未解决,重新下载安装包(如 func-cli-x64.msi)修复旧版本工具;3) 退出并重启 VS Code,重新加载项目即可恢复正常运行。参考资料链接提供了更多背景信息。
109 1
【Azure Function】分享把Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤
本文介绍了将Azure Function App从.NET 6.0升级到.NET 8.0 Isolated的步骤。.NET 6.0作为长期支持版本,生命周期至2024年11月结束。为确保持续支持,建议升级至更新版本。升级步骤包括安装.NET 8 SDK、更新Azure Functions Core Tools、修改项目文件目标框架为net8.0、更新兼容的NuGet包、本地测试以及重新发布到Azure。更多详细信息可参考官方文档。
121 9
【Application Insights】Application Insights存储的Function App的日志存在"Operation Link" 为空的情况
在将 Azure Functions 升级到 .NET 8 和 Isolated Worker 模式后,Application Insights 的请求日志中 `operation_Link` 字段为空,导致分布式追踪无法正常关联。解决方法包括:确保引用正确的 SDK 包(如 `Microsoft.Azure.Functions.Worker.ApplicationInsights`),正确配置 Application Insights 服务,移除默认日志过滤规则,并使用最新依赖包以支持分布式追踪。通过这些步骤,可恢复端到端事务视图的可视化效果。
72 10
|
2月前
【Function App】在PowerShell Function中指定特殊的Microsoft.Graph.Users版本
在Azure Function App中运行PowerShell Function时,通过Requirements.psd1文件管理模块版本。若需将“Microsoft.Graph.Users”从最新版2.26.0改回2.23.0以避免冲突,可通过以下步骤解决:1) 在requirements.psd1中明确指定版本为2.23.0 2) 在profile.ps1中添加`Import-Module Microsoft.Graph.Users -RequiredVersion 2.23.0`语句。此方法确保加载特定版本模块
74 19
本地部署AnythingLLM知识库并通过Infortress App远程访问
本地部署AnythingLLM后,如何在手机上跨网络访问?本文分享一个简单实用的方法——通过Infortress App实现远程访问。无需复杂设置,纯图形化界面,新手也能轻松上手!只需三步:安装AnythingLLM、配置Infortress服务端、安装Infortress客户端(手机/电脑)。借助Infortress的内网穿透功能,随时随地访问本地知识库,实现“一次部署,随处使用”。无论是学习还是工作,都能兼顾安全与便捷。
本地部署大模型DeepSeek并通过Infortress App远程访问
本地部署DeepSeek大模型后,如何在外网用手机随时随地访问?无需复杂设置,通过Infortress App即可轻松实现!只需三步:安装Infortress服务端、一键部署DeepSeek大模型、安装手机/电脑客户端。Infortress支持纯图形化操作,适合新手,还自带内网穿透功能,跨网络访问无忧。让本地AI随身携带,数据掌控在手,随时随地使用!
本地部署大模型DeepSeek并通过Infortress App远程访问
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。

云原生

+关注
AI助理
登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问

你好,我是AI助理

可以解答问题、推荐解决方案等