65.9K
CodeProject 正在变化。 阅读更多。
Home

2024年Azure自动化Runbook

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (2投票s)

2024年1月26日

CPOL

12分钟阅读

viewsIcon

3862

Azure引领云演进,Azure自动化Runbook有效管理混合/SOC环境

到2024年,云计算已经经历了显著的演进,Azure在提供强大解决方案以管理复杂、混合IT基础设施方面处于领先地位。Azure自动化Runbook已成为不可或缺的工具,特别是与混合Runbook工作程序功能集成后。本次技术深入探讨了Runbook在管理混合和SOC环境中的功能和战略应用。

混合云自动化

混合云模型

混合环境已成为许多组织的标准运营模式,将本地数据中心与云服务相结合,以实现灵活、可扩展的IT基础设施。Azure自动化Runbook促进了这些环境之间资源的移动和管理。

这为什么重要?我们过去了解到,迁移和替换(lift and shift)并非总是最佳实践,而且可能非常昂贵。您可以看到组织转向混合云模型。为了从单一环境监控这些环境,在2024年很可能是基于云的解决方案,Azure自动化可以提供很多好处,用于在基于云的监控和管理工具中管理本地资源。

混合Runbook工作程序

混合Runbook工作程序功能允许工程师直接在托管资源的计算机上执行自动化任务。这种直接执行对于由于延迟、敏感性或合规性原因而无法迁移到云的任务至关重要。这可以与您现有的网络拓扑、ExpressRoute、VPN站点到站点隧道完美集成,以获得更高的安全性和性能。

混合运营优势
  1. 邻近本地资源:直接管理位于本地服务器或私有数据中心内的资源。
  2. 优化性能:以最小的延迟执行自动化任务,这是对时间敏感操作的关键因素。
  3. 法规遵从性:通过在本地处理和存储敏感数据来满足法规要求。
  4. 灵活的资源管理:动态调整自动化策略以适应不断变化的应用程序负载。
  5. 降低成本:减少本地和云上的工具箱将降低您组织的管理成本,因为您只需要维护一套环境工具,而不是两套。

混合自动化解决方案

在混合环境中部署Runbook需要了解网络配置、安全参数和访问控制。

  1. 网络配置:工程师必须确保混合Runbook工作程序VM位于具有连接到本地环境和Azure服务所需连接性的子网中。
  2. 安全和访问:通过限制对Runbook工作程序VM的访问仅限于授权的SOC团队成员,工程师可以对他们的自动化任务进行严格的安全控制。
  3. Runbook设计和效率:Runbook的创建应遵循优先考虑效率、可维护性和可扩展性的最佳实践。

在Azure门户中创建Runbook

  1. 登录Azure 门户
  2. 搜索并选择“自动化帐户”。
  3. 在“自动化帐户”页面上,从列表中选择您的自动化帐户。
  4. 在自动化帐户中,选择“进程自动化”下的“Runbook”以打开Runbook列表。
  5. 点击“创建Runbook”。
    1. 为Runbook命名。
    2. 从“Runbook类型”下拉列表中,选择其类型。Runbook名称必须以字母开头,并且可以包含字母、数字、下划线和连字符。
    3. 选择“运行时版本”。
    4. 输入适用的“描述”。
  6. 点击“创建”以创建Runbook。

使用PowerShell创建Runbook

使用 New-AzAutomationRunbook cmdlet 创建一个空的Runbook。使用Type参数指定为New-AzAutomationRunbook定义的Runbook类型之一。

以下示例显示了如何创建一个新的空Runbook。

$params = @{
    AutomationAccountName = 'MyAutomationAccount'
    Name                  = 'NewRunbook'
    ResourceGroupName     = 'MyResourceGroup'
    Type                  = 'PowerShell'
}
New-AzAutomationRunbook @params

导入Runbook

您可以导入PowerShell或PowerShell Workflow(*.ps1)脚本、图形Runbook(*.graphrunbook)或Python 2或Python 3脚本(*.py)来创建自己的Runbook。您在导入时指定创建的Runbook类型,并考虑以下事项。

  • 您可以导入一个不包含工作流的*.ps1文件到PowerShell RunbookPowerShell Workflow Runbook。如果将其导入到PowerShell Workflow Runbook中,它将被转换为一个工作流。在这种情况下,Runbook中会包含注释来描述所做的更改。
  • 您只能将包含PowerShell工作流的*.ps1文件导入到PowerShell Workflow Runbook中。如果文件包含多个PowerShell工作流,则导入将失败。您必须将每个工作流保存到其自己的文件中,然后单独导入。
  • 不要将包含PowerShell工作流的*.ps1文件导入到PowerShell Runbook中,因为PowerShell脚本引擎无法识别它。
  • 只能将*.graphrunbook文件导入到新的图形Runbook中。

使用PowerShell导入Runbook

使用 Import-AzAutomationRunbook cmdlet 将脚本文件导入为草稿Runbook。如果Runbook已存在,除非您在cmdlet中使用Force参数,否则导入将失败。

以下示例显示了如何将脚本文件导入到Runbook中。

$params = @{
    AutomationAccountName = 'MyAutomationAccount'
    Name                  = 'Sample_TestRunbook'
    ResourceGroupName     = 'MyResourceGroup'
    Type                  = 'PowerShell'
    Path                  = 'C:\Runbooks\Sample_TestRunbook.ps1'
}
Import-AzAutomationRunbook @params

发布Runbook

创建或导入新Runbook后,必须先发布它才能运行。Azure自动化中的每个Runbook都有一个草稿版本和一个已发布版本。只有已发布的版本可供运行,只有草稿版本可以编辑。已发布的版本不受草稿版本任何更改的影响。当草稿版本准备就绪时,您可以发布它,用草稿版本覆盖当前已发布的版本。

在Azure门户中发布Runbook

  1. 在Azure门户中,搜索并选择“自动化帐户”。
  2. 在“自动化帐户”页面上,从列表中选择您的自动化帐户。
  3. 在自动化帐户中打开Runbook。
  4. 点击“编辑”。
  5. 点击“发布”,然后针对确认消息选择“”。

使用PowerShell发布Runbook

使用 Publish-AzAutomationRunbook cmdlet 来发布您的Runbook。

$accountName = "MyAutomationAccount"
$runbookName = "Sample_TestRunbook"
$rgName = "MyResourceGroup"

$publishParams = @{
    AutomationAccountName = $accountName
    ResourceGroupName     = $rgName
    Name                  = $runbookName
}
Publish-AzAutomationRunbook @publishParams

在Azure门户中计划Runbook

Runbook发布后,您可以为其安排运行。

  1. 在Azure门户中,搜索并选择“自动化帐户”。
  2. 在“自动化帐户”页面上,从列表中选择您的自动化帐户。
  3. 从Runbook列表中选择Runbook。
  4. 在“资源”下选择“计划”。
  5. 选择“添加计划”。
  6. 在“计划Runbook”窗格中,选择“链接计划到您的Runbook”。
  7. 在“计划”窗格中选择“创建新计划”。
  8. 在“新计划”窗格中输入名称、描述和其他参数。
  9. 计划创建后,高亮显示它并点击“确定”。它现在应该已链接到您的Runbook。
  10. 在您的邮箱中查找电子邮件,以通知您Runbook状态。

恢复已删除的Runbook

您可以通过PowerShell脚本恢复已删除的Runbook。要恢复Runbook,请确保满足以下条件:

  • 要恢复的Runbook在过去29天内被删除。
  • 该Runbook的自动化帐户存在。
  • 已将自动化贡献者角色权限授予自动化帐户的系统分配的托管标识。

PowerShell脚本

  • 在您的自动化帐户中将PowerShell脚本作为作业执行,以恢复已删除的Runbook。
  • 从GitHub下载PowerShell 脚本。或者,您可以从Runbook库中导入名为Restore Automation runbook的PowerShell脚本。提供要恢复的Runbook的名称,并在Azure自动化中将其作为作业运行,以恢复已删除的Runbook。
  • 从GitHub下载脚本,或从Runbook库中导入名为List Deleted Automation Runbook的PowerShell脚本,以识别在过去29天内删除的Runbook的名称。

我想指导您了解Azure自动化最受欢迎的更新之一——PowerShell 7.2 Runbook的通用可用性。通过对长期稳定版本的PowerShell的支持,您的自动化实践将得到重大升级。

转向PowerShell 7.2符合最新趋势。鉴于PowerShell 7.1已不再支持,为了您脚本的连续性和安全性,必须为您的Runbook采用PowerShell 7.2。这一举措不仅仅是建议——对于任何希望维护和未来化其自动化基础设施的专业人士来说,都是必不可少的。

为SOC团队自动化

一个客户用例

在网络安全领域,SOC团队依赖自动化来管理数字证据和响应事件。Azure自动化Runbook为SOC团队提供了一种结构化且安全的方法来自动化这些关键任务。

考虑使用新技术,例如利用Azure Sentinel等托管XDR解决方案的优势来管理您的本地和云资源。列出优势和成本,并根据您组织的需要和目标架构做出选择,以提供面向未来的解决方案。

混合Runbook工作程序VM在SOC任务中的作用

对于SOC团队,混合Runbook工作程序VM被配置为运行特定的Runbook,例如Copy-VmDigitalEvidence。这使SOC团队能够自动化从虚拟机收集和保存数字证据,这是法证分析和事件响应的关键任务。

SOC工作流程的详细配置

  1. 网络和访问:工作程序VM必须配置网络规则,允许其访问必要的Azure存储帐户,同时保持对SOC团队成员的严格访问控制,以便进行维护活动。
  2. 隔离和托管标识:SOC VM的虚拟网络应与中心网络隔离,以防止未经授权的访问,并利用Azure的托管标识来实现安全、简化的Azure资源访问。

SOC工程的Runbook

SOC工程师必须设计能够满足网络安全任务需求的Runbook,这些任务通常需要快速执行并严格遵守合规协议。

Azure自动化用于SOC的图示概览

图示:架构展示了Azure自动化Runbook与SOC环境中的混合Runbook工作程序VM的集成。

图示说明

  • 连接订阅:它概述了网络组件,如Azure防火墙、VPN网关和Azure DDoS保护,确保安全且有弹性的连接。
  • 身份订阅:在这里,我们看到了支持身份管理的的基础设施,包括Azure Key Vault和Azure AD,这些对于管理凭证和访问策略至关重要。
  • 登陆区域生产订阅:本节说明了主要工作负载所在的中央生产环境。
  • 沙盒SOC订阅:它代表了专门用于SOC操作的隔离环境,其中包含混合Runbook工作程序VM和用于证据处理的相关存储帐户。

自动化安全工作流程

SOC团队负责监控安全警报。Azure自动化Runbook可以被编程为自动响应这些警报。

  1. 警报响应:Runbook可以由Azure Monitor的安全警报触发。例如,如果出现潜在泄露的警报,Runbook可以立即开始隔离受影响系统或帐户的过程。
  2. 威胁搜寻:Runbook可以自动化在网络和端点上搜索恶意活动模式。它们可以聚合日志数据,分析模式,并标记异常以供进一步调查。
  3. 自动化补丁:保持系统最新对安全至关重要。Runbook可以自动化向本地和云环境部署补丁,确保所有系统在收到漏洞公告后都能快速更新。

事件响应

发生安全事件时,时间至关重要。Runbook可以作为协调响应事件的一部分,缩短修复时间。

  1. 取证收集:Runbook可以从系统收集数据用于法证分析,打包日志、系统快照和其他相关信息供SOC分析师审查。
  2. 遏制措施:为防止攻击传播,Runbook可以执行遏制措施,例如阻止IP、禁用帐户或将计算机与网络断开连接。
  3. 通信:Runbook还可以自动化通信,向利益相关者发送通知,并用最新信息更新事件响应票证。

我的建议:Azure自动化Runbook与Azure Sentinel

我们已经深入研究了创建Runbook的细节,探索了它的好处和微软的最佳实践。您可能会问,为什么这很重要?我的目标是揭开基本原理的神秘面纱,并为您提供直接利用这些工具的实用建议。我旨在展示微软Azure云的强大功能——这些功能甚至可以扩展到您的本地环境。通过这一点,您将更深入地了解Azure如何简化和增强您的运营管理。

我的建议是实施Azure Sentinel,它作为一个云原生的SIEM(安全信息和事件管理)系统,为整个企业提供安全分析和威胁情报。通过将其与Azure自动化相结合,您可以简化您的安全运营,并自动响应Sentinel检测到的威胁。

自动化威胁检测和响应

  1. Azure Sentinel检测:Sentinel使用连接器持续收集来自各种数据源(包括本地环境)的数据。它应用高级分析和AI来检测潜在的安全威胁。
  2. 警报和剧本:一旦检测到威胁,Sentinel就会生成警报。对于每种警报类型,您可以将Azure自动化Runbook配置为Sentinel中的剧本。此剧本会自动触发以响应警报。(开箱即用,无需开发或创建自己的Runbook,基于微软最佳实践)
  3. Runbook执行:在Azure自动化中托管的已触发Runbook可以执行广泛的修复任务,例如禁用用户帐户、隔离受损计算机或收集证据以供进一步调查。

合规性和安全态势管理

  1. 安全态势评估:Azure自动化Runbook可以持续评估本地环境的安全态势,并将发现记录在Sentinel中。
  2. 合规性报告:Runbook可以根据收集的数据生成合规性报告,并将其输入Sentinel,在那里可以进行审查和采取行动。
  3. 自动化修复:对于已识别的合规性差距,Sentinel可以触发Runbook在可能的情况下自动修复问题,或创建事件以供手动干预。

取证和事件响应

  1. 取证数据收集:当Sentinel检测到高严重性事件时,它可以触发Runbook从受影响的本地系统收集取证数据,例如系统和应用程序日志、内存转储和快照。(也来自本地!)
  2. 事件管理:Runbook可以集成Sentinel中的事件管理工作流程,用已执行的操作、收集的证据更新事件,并提供详细的响应时间线。
  3. 证据保存:Runbook确保收集的证据以一种能够保持其完整性的方式安全存储,以供将来分析或法律程序使用。

SOC运营和自动化

  1. 工作流程自动化:由Azure自动化Runbook支持的Sentinel剧本可以自动化整个SOC工作流程,协调跨越云和本地环境的复杂多步骤流程。
  2. 安全访问管理:Runbook可以通过更新防火墙规则或网络安全组来管理访问控制,以响应事件,直接从Sentinel平台内部进行。
  3. 自定义剧本操作:SOC团队可以为特定于其组织基础设施的独特场景创建自定义Runbook,这些Runbook可以从Sentinel作为剧本操作的一部分触发。

通过将Azure Sentinel与Azure自动化集成,SOC团队可以创建一个高度响应和自动化的环境来管理整个数字资产(是的,也包括本地环境)的安全。这不仅提高了安全响应能力,还显著减少了SOC分析师的手动工作量,使他们能够专注于战略安全计划。它允许团队更快地利用微软管理的解决方案和最佳实践。

© . All rights reserved.