Azure Functions与Azure存储授权深度解析
Azure Functions使用存储账户实现多种功能。AzureWebJobsStorage连接用于常规运行时行为,例如处理触发器检查点数据和分布式锁管理。根据所选部署方法,Azure Functions代码可能存储在AzureWebJobsStorage连接指定的账户中,但这并非大多数设置的默认选项。Functions提供多种应用代码部署选项,包括引用不同Blob存储中的内容。默认情况下,AzureWebJobsStorage连接使用存储账户连接字符串,但目前提供基于身份的AzureWebJobsStorage连接预览功能。
除了利用默认存储账户连接字符串外,客户可能希望为其环境内的用户配置访问权限。根据共享责任模型,访问管理是云客户的责任,创建角色分配的重要方面是选择正确的分配范围,遵循最小权限安全原则。不应向应用和用户授予超出严格必要范围的访问权限。Azure还提供通过特权身份管理授予有限访问权限的功能。
默认情况下,唯一有权列出密钥的是创建存储账户的个人及任何继承的所有者。Microsoft建议使用内置角色(如Storage Blob Data Reader或Storage File Data SMB Share Reader)向用户提供细粒度访问权限,以授予读取存储账户内容的权限。这两个角色均不包括列出存储账户密钥或修改内容的权限。存储账户密钥提供对存储账户配置及其所有数据的完全访问权限,应像任何访问凭证一样仔细保护。其他内置角色可能授予Microsoft.Storage/storageAccounts/listKeys/action权限,这对于仅需要读取访问权限的用户而言是过度的。
如果授予了过多权限并随后被使用,客户仍可通过Azure Monitor获取对该存储账户执行的数据平面操作的见解。活动日志描述控制平面操作,可用于监控哪些用户访问了共享存储密钥。默认情况下,所有存储账户都启用了活动日志。客户可以通过在其Azure Function存储的存储账户中搜索“listKeys”来实现此目的。还可以在Azure Monitor中启用和配置资源日志,以识别对存储账户内容的任何修改。强烈建议客户在其存储账户上配置活动日志和资源日志,并持续审查日志以发现可疑活动。您还可以监控客户端如何授权访问存储账户,以及识别使用共享密钥或共享访问签名(SAS)授权其存储请求的客户端。
作为持续体验改进的一部分,Azure Functions团队计划更新Functions客户端工具与存储账户的交互方式。这包括更好地支持使用身份的场景更改。在基于身份的AzureWebJobsStorage连接普遍可用且新体验经过验证后,身份将成为AzureWebJobsStorage的默认模式。未来,Azure Functions客户端还将帮助用户为在这些体验中创建的存储账户启用“StorageWrite”资源日志记录。此外,我们更新了Azure Functions文档,以更清晰地阐明为用户配置最小权限存储账户访问的最佳实践。
Azure Storage还持续投资于安全性,包括全面支持基于身份的授权。Blob Storage完全支持基于角色的访问控制(RBAC),包括带有Azure ABAC的角色分配条件。我们提供全面的内置角色集,以便以最小权限轻松限制访问。Azure Files现在包括对通过SMB的Azure AD Kerberos的支持,并正在添加对通过REST的OAuth的支持。这也将支持在Azure门户中访问Files的基于身份的授权。我们还计划提供指导和支持,以便新存储账户默认禁用共享密钥和共享访问签名(SAS)授权,以鼓励使用基于角色的访问。在此期间,组织可以使用Azure Policy强制执行对存储使用基于身份的授权。
Microsoft Defender for Cloud(MDC)还为存储账户提供增强监控,包括自动发现敏感数据以丰富安全警报、恶意软件扫描,以及检测异常访问模式、使用受损身份验证令牌和数据外泄。
客户的推荐操作
为最小化滥用风险,我们建议客户在用户访问存储账户方面采用以下实践:
- 审查用户权限,确保对存储账户的最小权限访问。此外,可以将权限授予限制到所需的最小范围(例如存储账户或资源组)。
- 监控活动日志以了解账户密钥的访问情况。
- 为托管Azure Functions的存储账户启用StorageWrite资源日志,并设置生命周期策略以管理日志的保留期限。
- 当在Blob存储中存储应用代码时,考虑使用专用于此目的的存储账户,以便限制访问。
- 为存储账户启用MDC。
除上述推荐操作外,我们还更新了现有文档。鼓励客户查阅更新后的文档:
结论
总之,我们感谢有机会调查Orca Security报告的发现。我们鼓励所有研究人员在协调漏洞披露(CVD)下与供应商合作,并遵守渗透测试的参与规则,以避免在进行安全研究时影响客户数据。向Microsoft安全响应中心报告安全问题的研究人员也有资格参加Microsoft的漏洞赏金计划。
Orca的报告突出了我们持续改进的机会,以帮助客户正确配置最小权限环境。通过应用适当的RBAC管理并确保为用户委派最低必要权限级别,可以最小化这些场景的风险。使用目前处于预览阶段的基于身份的AzureWebJobsStorage连接可防止使用过度权限。Azure Storage还提供强大的监控功能,以检测存储资源上的异常或未经授权的更改。同时,我们认为我们关于正确配置用户存储账户访问权限的指导可以进一步澄清,因此我们更新了现有文档以反映这一点。一如既往,我们鼓励客户遵循安全最佳实践,以限制其暴露于漏洞和其他类型安全事件的风险。