在EC2上使用SOF-ELK处理M365 UAL(第二部分)
在“处理M365 UAL”的第一部分中,我们讨论了统一审计日志(UAL)的价值、获取、解析和查询UAL数据的一些挑战,以及使用PowerShell和SOF-ELK克服这些挑战的策略,重点是正确格式化导出的数据以便轻松导入到本地安装的SOF-ELK虚拟机中。在本文中,我们将探讨在EC2上启动SOF-ELK,为UAL处理提供更大的可移植性、灵活性和可扩展性!
快速部署SOF-ELK
对于快速简便的SOF-ELK部署,很难比下载预打包的虚拟机并通过VMWare本地运行更好。但当您需要额外的计算能力、与他人协作进行调查或利用易于访问基于云的数据或系统时,在EC2上部署SOF-ELK值得额外的努力。
从虚拟机到AMI的转换
我们首先像本地VM部署一样,下载并解压缩VM。下一步是从提取的VM创建OVA。如果您有VMWare Workstation或Fusion,可以启动VMWare,导入VM,选择它,然后转到“文件”和“导出到OVF”。
重要提示: 输入文件名时确保指定文件扩展名为“.ova”,例如“sof-elk-20230623.ova”。
或者,您可以使用命令行“OVF Tool”,它包含在VMWare Workstation、Fusion和Player中。只需打开终端,导航到VMWare安装目录下的“OVFTool”目录。从那里调用ovftool可执行文件,提供源VMX文件的路径和导出路径,记得给文件名加上“.ova”扩展名。
准备上传和转换
接下来,我们需要准备将导出的“ova”上传到S3并转换为Amazon Machine Image(AMI)。我们将创建一个S3桶、一个描述导入的“containers.json”文件、为导入创建Identity and Access Management(IAM)角色和策略,并使用AWS CLI导入我们的镜像。别担心……我们将逐步进行!
您可以在Web UI或CLI中完成大多数必要的AWS步骤,但除非使用“Migration Hub Orchestrator”,否则需要CLI进行“import-image”任务。因此,让我们从安装和设置CLI开始,详细内容见以下Amazon指南:
- 安装或更新最新版本的AWS CLI – AWS Command Line Interface (amazon.com)
- 设置AWS CLI – AWS Command Line Interface (amazon.com)
安装并配置AWS CLI后,我们将为上传创建一个S3桶,特别注意使桶区域与要执行镜像导入的区域匹配:
|
|
配置IAM角色和策略
接下来,我们将设置允许VM导入/导出所需的服务角色(“vmimport”)和策略。您可以通过Web UI或CLI完成此操作。在继续之前,值得检查下面链接页面顶部的“VM导入/导出所需权限”,以确保您有足够的权限完成这些任务!
由于Web UI更直观并提供一些语法错误检查,我将转到https://console.aws.amazon.com/iamv2并选择“Policies, Create Policy”,然后单击“JSON”。在“Policy editor”中,您可以复制/粘贴并替换默认文本来创建新的“vmimport”策略。
重要提示: 将“your-unique-bucket-name”条目(x2)更改为匹配您的S3“镜像导入”桶:
|
|
对JSON策略条目满意后,单击“Next”并提供描述性策略名称,例如“VM_Import_Policy”,根据需要添加描述,添加“Tags”以帮助将来识别此资源,然后单击“Create policy”。
现在我们的策略已准备就绪,让我们创建一个角色。从IAM Web UI,单击“Roles”,然后“Create role”,然后“Custom trust policy”,并用以下JSON替换默认策略文本:
|
|
在“Add permissions”屏幕上,找到并选择您的“VM_Import_Policy”。单击“Next”,提供“Role name”,并根据需要添加描述和标签。最后,单击“Create role”。
上传OVA并导入镜像
我们的S3桶已就位,带有相关策略的角色已准备就绪,现在我们可以返回AWS CLI上传我们的OVA:
|
|
当上传进行时,我们可以准备“containers.json”文件。启动任何文本编辑器,复制/粘贴以下文本,编辑OVA的“Description”和“URL”以匹配您的上传桶和所需的OVA名称。然后将文件保存为“containers.json”:
|
|
OVA上传完成后,我们可以通过AWS CLI启动“镜像导入”:
|
|
如果一切顺利,您应该看到类似于下图的输出,“Status”为active,“StatusMessage”为pending:
注意输出中的“ImportTaskId”,因为我们可以使用它来检查镜像导入的状态:
|
|
“StatusMessage”现在应显示“converting”。在CLI中再次按向上箭头重复命令并密切关注进度。请耐心等待,因为这需要一段时间,并且“Progress”指示器感觉像“剩余零秒”约30分钟!坚持住,我们快完成了。
启动SOF-ELK实例
导入镜像任务完成后(“Status” = completed),记下“ImageId”,然后我们将转到EC2 Web UI:https://us-east-1.console.aws.amazon.com/ec2(注意,在此示例中我针对us-east-1区域)。不幸的是,AMI会基于上述“ImageId”接收随机生成的名称。因此,让我们转到“Images\AMIs”,然后从任务状态输出中找到AMI ID,选择它,然后单击“Tags\Manage Tags”,并添加“Name”和描述性值,例如“SOF-ELK 20230623”。选择AMI后,我们可以单击顶部菜单上的“Launch instance from AMI”按钮进入启动向导。
我们已接近完成,我只用了“处理”这个词两次!在“启动实例”向导中,给您的实例一个“Name”,从可用的实例类型中选择(我选择了t3.medium),创建或选择现有的密钥对,根据需要调整网络设置,并创建新的安全组或使用现有组。
重要提示: 我们的镜像基于默认的SOF-ELK VM,这意味着使用众所周知的默认凭据!请不要在安全组(SG)中向全世界开放SSH!我的意图几乎总是从另一个EC2实例访问SOF-ELK,因此我通常制作一个自引用SG,并添加SOF-ELK实例和任何其他需要访问的实例,不允许任何外部直接访问SOF-ELK。
从EC2 Web UI,转到“Security Groups, Create security group”,命名为描述性名称,例如“SOF-ELK Security Group”,添加描述和任何所需的标签,然后单击“Create security group”。选择新的SG,单击“Edit inbound rules, Add rule”,将类型设置为“All TCP”(如果需要,可以更严格,只允许TCP端口22和5601),将“Source”设置为“Custom”,然后将安全组添加到自身并“Save”。接下来,将SG分配给您的SOF-ELK实例和任何其他需要访问SOF-ELK的实例。
对安全组选择满意后,单击“Launch instance”。当实例初始化时,我将记下私有IP,然后访问我的EC2分析服务器,预期从那里访问SOF-ELK:
|
|
最终检查
进行最终检查,启动浏览器并导航到SOF-ELK URL,http://you-sof-elk-local-ip:5601:
SOF-ELK Web UI:它活了!
您现在正式准备好使用SOF-ELK和EC2的所有灵活性、可访问性和规模来处理M365 UAL!请参考“第一部分”以复习如何通过PowerShell导出数据并查询以用于审计/调查目的。在本系列的下一篇也是最后一篇中,我们将讨论当您面对CSV格式的UAL导出数据时该怎么办,这些数据未正确格式化以供SOF-ELK摄入。敬请关注,感谢阅读!
阅读:
- 第一部分
- 第三部分