借助Microsoft Azure 提供的无服务器平台Azure功能,开发人员可以简单地部署代码来运行作业,而无需了解底层基础设施或操作系统。Azure功能平台负责管理部署环境,智能响应潜在事件,例如消息队列中的数据或数据流中的更改。
云共享责任模型
云计算允许公司将托管和维护其底层基础设施的责任外包给第三方云服务提供商。这使公司能够利用云的各种优势,并将保护此底层基础设施的责任移交给云提供商。
然而,在云共享责任模型下,云提供商并不对客户的云部署承担全部责任。根据所使用的云模型(SaaS、IaaS、PaaS 等),客户可以访问和控制其云基础架构堆栈的某些级别。除了配置和维护这些级别之外,客户还负责充分保护它们。
什么是无服务器安全?
充分利用云计算的优势需要部署云原生解决方案。无服务器应用程序(例如Azure功能)在云提供商管理整个基础架构堆栈而不是客户的环境中运行,从而为开发人员创建一个托管环境以在其中部署和执行代码。
无服务器功能和环境的设计会带来独特的安全风险。例如,无服务器功能是仅在响应特定事件时才处于活动状态的应用程序,因此很难使用传统的安全解决方案对其进行有效监控。无服务器安全性提供针对Azure功能和其他无服务器应用程序的独特需求和安全挑战量身定制的安全性。
Azure功能安全性的重要性
随着公司更全面地采用 Microsoft Azure,可能已经“提升和转移”的遗留应用程序可能会被重新设计为云原生无服务器应用程序,而新的开发将充分利用无服务器生态系统。因此,一家公司将拥有越来越多的无服务器应用程序。
这些应用程序可能会访问敏感信息并实施组织 IT 解决方案的核心组件。实施强大的Azure功能安全性对于防止数据泄露、关键服务中断以及对组织运营的其他潜在威胁至关重要。
Azure功能安全最佳实践
Azure功能等无服务器应用程序面临许多与非无服务器应用程序相同的安全威胁。但是,无服务器功能也具有独特的安全风险和管理它们的最佳实践。
其中一些最佳实践包括:
验证不受信任的输入:注入攻击是对应用程序安全的最大威胁之一,这些漏洞的存在是因为应用程序对不受信任的输入做出假设而不强制执行。在处理输入之前验证输入可以保护Azure功能和其他应用程序免受注入攻击。
实施最低权限:如果Azure功能存在可利用的漏洞,则攻击者可能会利用此漏洞访问敏感数据或其他企业 IT 资产。将Azure功能的访问权限限制为仅对其角色所需的访问权限有助于最大限度地减少应用程序受到攻击或其他问题的影响。
管理供应链风险:应用程序通常依赖于各种第三方库和其他外部依赖项,其中可能包含可被攻击者利用的漏洞。监视安全更新的依赖项并及时安装它们对于维护依赖它们的应用程序的安全性至关重要。
安全的云存储:Azure功能通常是无状态的,依赖云存储来维护重要的状态数据;然而,云数据安全是组织面临的共同挑战。限制对云数据存储的访问对于无服务器函数数据的机密性、完整性和可用性至关重要。
保护函数机密:Azure功能可能需要访问机密信息,例如加密密钥、API 密钥和其他数据。这些数据必须安全存储,而不是放置在攻击者可能访问的明文配置文件或环境变量中。
实施零信任安全:无服务器应用程序旨在相互连接。由于一些可能是面向公众的,而另一些可能会访问关键数据和功能,因此薄弱的身份验证和访问管理实践可能会使关键功能容易受到攻击。应在零信任模型下实施身份验证和授权,在该模型中,每个访问请求都会根据最低权限访问控制进行审查和批准或拒绝。