Azure Functions 是托管在 Microsoft Azure 中的自动化开发人员工具。它是一种完全托管的按需服务,不需要额外的技能和培训即可使用该服务——您只需部署该功能并执行您的工作即可。功能使用自动响应事件的无服务器任务;数据流或消息队列中数据的变化等触发器可以从 Azure 产生智能响应。
确保任何 Azure 公共资源都受到良好保护非常重要,尤其是在运行 Function Apps 时。由于 Function App 的性质,拥有强大的安全性至关重要,尤其是当 Function App 将数据推送到本地资源或从本地资源拉取数据时。
在本文中,我们将了解什么是 Azure Functions 及其工作原理,以及为什么实施云原生安全对于 Function Apps 降低风险和改善企业的云安全状况至关重要。
Azure 函数定义
Azure Functions 为开发人员提供了一个云平台来编写和本机执行代码。使用 Azure Serverless Functions 计算产品近乎即时地处理代码。无需担心使用 Azure Functions 托管基础架构,也无需拥有自己的服务器来测试代码。最重要的是,您只需在代码运行时付费。
Azure Functions 可以直接在 Azure 门户中创建,也可以集成到您最喜欢的开发工具中,例如 Visual Studio、IntelliJ 或 PyCharm。Azure 函数的生命周期很短,通常只会运行几秒钟或几分钟。用户只需创建 Function App、配置环境并运行作业即可。Azure 云平台处理所有其他事情,并允许您设置配额以控制您的账单。
Azure 无服务器函数向用户呈现基于浏览器的界面,并支持最流行的编程语言,包括 C#、Java、Python、PHP、Bash、PowerShell 等。
Azure Functions 巧妙地直接与 Twillo、Facebook 和 Twitter 等云原生第 3 方应用程序集成,并直接与 Azure 计算、数据库和存储服务等核心 Azure 服务集成。这使用户能够自动执行任务并直接从函数输出触发多个作业。
Azure Functions 在无服务器计算环境中执行,Microsoft 提供了广泛且高度可用的云基础架构来运行 Function App。无服务器环境跨越多个全球区域的庞大全球平台。安全性在无人值守的无服务器工作负载中非常重要,您正在运行的代码必须为无服务器工作负载提供保护。永远记住,保护云资产是客户的责任。
Azure 函数的工作原理
Azure Functions 完全是关于由触发器自动调用的事件驱动的操作。触发器对于 Azure Functions 极其重要,因为它们可以由范围广泛的源触发器启动。触发器源自许多不同的来源,例如数据源、日志和事件,并且确保安全措施到位以将环境隔离到仅批准的来源是至关重要的。
例如,考虑一个 HTTP 请求 (HTTPTrigger):只有来自授权源(例如 ERP 端点或特定网页 URL)的请求才应该被验证。触发器可以作为 cron 作业的一部分按个性化计划安排,或者使用 TimeTrigger 在预定义的时间安排。
事件是流行的触发器,可以从各种来源调用,例如 Azure 存储队列、Azure 事件网格和 EventHub。触发器也适用于消息队列;这可以是任何东西,从在线网站订单到对营销电子邮件的智能回复。
功能通常遵循非常简单的可重复过程。执行代码时,Azure Functions 创建一个输出绑定,用于执行工作流中的下一个任务,而工作流又可能执行另一个任务。使用的输出绑定取决于所使用的 Azure 函数的类型,但最常见的输出是 webhook、警报和日志记录。
Azure 函数功能
Azure Functions 的无服务器特性引入了几个与基本 Azure 服务无缝集成的关键功能,其中包括:
自动事件响应:创建对事件的自动响应的能力对于生产力来说是改变游戏规则的。可以触发关键通知警报或驱动智能响应的 Webhook。
基于触发器的执行:基于触发器的执行可以节省大量人力并加速创新。您可能不再需要管理员手动响应频繁的事件和任务。
平台无关:Azure Functions 与云和平台无关,这意味着您可以将事件触发到另一个云中的另一个服务,并且它几乎可以在包括容器在内的任何平台上运行。
支持所有主要编程语言:函数为您的开发人员提供了用于创建、调试和部署代码的完整工具集,以及所有流行的编程语言,包括 C#、Java、Python 和 PowerShell——让您的 DevOps 团队满意。
与 Azure 服务集成:Azure Functions 与大部分 Azure 服务原生集成,包括 Azure Blob 存储、Azure Cosmos DB 和 Azure 虚拟机。
与第 3 方应用程序集成:通常会发现集成了 Azure Functions 以自动记录警报通知、手机通知,并将数据推送到 Slack 和 Twillo 等工具。
Azure 函数的好处
Azure Functions 在小型、中型和大型企业中被广泛采用,原因如下:
速度:函数速度很快,通常只需几秒钟即可初始化,并且通常会在几分钟内完成执行,具体取决于任务是什么。
简单性:无需启动服务器来测试您的代码,因为无服务器架构会为您完成这项工作。
CI/CD 友好: Azure Functions 在CI/CD环境中运行良好,可以编程为按需自动构建代码。Jenkins 集成良好,允许您触发容器构建、部署代码、构建 AMI、Kubernetes 集群等。
测试:触发器可以配置为针对构建的每个阶段运行测试,构建任何关联的 Azure 基础设施并部署 Functions App。
如何保护 Azure 功能
保护 Azure Functions 非常重要,因为错误配置的 Function App 会造成很大的损害。跨 Azure 帐户部署的 Function Apps 的数量也可能会显着增长,从而使它们难以管理。Check Point 与 Microsoft 合作提供Check Point CloudGuard 网络安全套件,该套件可以动态保护、监控 Azure Functions 并与之交互。
Check Point Cloudguard 工作负载保护插件将直接与 Azure Function App 交互。该插件具有一些令人难以置信的功能,您只需在部署 Function App 时启用该插件即可。在部署过程中,Cloudguard Workload 将运行一个主动过程,该过程执行初始风险评估检查安全风险,例如硬编码凭证、函数格式、空格等。
接下来,将运行时保护模块加载到函数中——函数自我保护 (FSP) 工具是 Check Point Cloudguard 通过创建抽象层与函数交互的方式。借助 FSP,您可以使用工作负载防火墙保护输入,该防火墙扫描恶意负载、检测异常行为并创建白名单以将函数行为中的预期偏差列入白名单。
Cloudguard 控制台上提供了有关 Functions 的所有信息,这是一个单一的管理面板,可让您全面了解您需要了解的有关 Azure Function App 的所有信息。图表显示了函数接触的服务和运行时保护将扫描所有工作负载并针对潜在风险发出警报,例如过于宽松的规则、安全漏洞和意外行为。控制台甚至为用户提供一个建议的调解页面,解释如何使用代码解决任何问题。