部署 Amazon OpenSearch 集群以从 Amazon Security Lake 接收日志
主要重点
本文将指导您如何部署 Amazon OpenSearch 集群,以接收来自 Amazon Security Lake 的日志。在这个两部分的系列文章中,我们将涵盖计划和部署 OpenSearch 集群的步骤,以及设置日志接收管道。了解如何计算实例类型、存储需求及过期规则,才能有效实现实时监控。
许多客户利用 Amazon Security Lake 自动集中来自 AWS 环境、SaaS 供应商、本地工作负载和云源的安全数据,构建目的专用数据湖。借助 Security Lake,客户可以选择原生 AWS 安全分析工具或合作伙伴安全信息和事件管理 (SIEM) 解决方案,从而简化安全调查。
Amazon OpenSearch 服务 与 Security Lake 原生集成,使客户能够在大型数据集上执行互动式日志分析和搜索,创建企业可视化图表和仪表板,并在不同应用和日志之间执行分析。通过 Amazon OpenSearch 安全分析,客户还可以深入了解组织基础设施的安全状态,实时监控异常活动,检测潜在的安全威胁并向预设目标发送警报。

在这篇文章的第一部分,我将向您展示如何计划和部署 OpenSearch 服务集群,以接收 Security Lake 的日志,从而促进使用 OpenSearch 安全分析进行实时监控。这将包括有关实例选择和存储的考量。随后,我还将展示如何设置 OpenSearch 接收管道以接收日志,以及数据过期规则以在设定时间后过期日志。
下图展示了解决方案的完整架构。OpenSearch 服务集群部署在虚拟私有云 (VPC) 中,跨越三个可用区并使用 OpenSearch 接收管道从 Security Lake 接收日志。通过部署在 Amazon Elastic Compute CloudAmazon EC2实例上的公有代理访问该集群,集群的身份验证则是通过 Amazon Cognito 进行管理。
先决条件
Security Lake 必须已经部署。详细信息请参见 开始使用 Amazon Security Lake。您需要 AWS 身份与访问管理IAM 权限,以管理 Security Lake、OpenSearch 服务、Amazon Cognito 和 EC2,并创建 IAM 角色以便跟随本文内容。
决定 OpenSearch 服务的主节点和数据节点实例
首先,确定主节点和数据节点的实例类型。对于生成少于每天 100 GB 日志的工作负载,我们推荐使用 3x m6glargesearch 的主节点和 3x r6glargesearch 的数据节点。主节点和数据节点的数量应为三的倍数。您可以先小规模开始,后续再扩展。欲了解更多有关如何决定实例大小和数量的信息,请参考 开始使用 Amazon OpenSearch 服务 部落格文章。请记下您选择的实例类型。
配置存储
为了确定所需的存储容量,您需要计划数据策略。由于 Security Lake 作为主要的长期日志存储,您不需要在 OpenSearch 中存储那么多数据。我们建议在 OpenSearch 中存储约 30 天的数据。这能使您有效应对和调查最即时的安全事件,同时优化对旧日志的存储成本。
接下来,您需要确定 Security Lake 生成的日志量。您可以在 Security Lake 授权管理员帐户的 AWS 管理控制台中的 用量 属性中获取此信息,选择 最近 30 天 以作为用量范围。将过去 30 天的实际用量总计添加到您打算发送到 OpenSearch 的数据来源。如果您使用 Security Lake 不到 30 天,可以使用每月的 预计总用量 作为替代。用这个数字除以 30 就能获得每日数据量。
用于确定所需存储容量的计算如下:
Security Lake 生成的数据 (GB)乘以存储天数乘以索引乘以额外存储所需总存储 (GB)10301111537955030111151897520015111153795将所需的总存储容量除以您拥有的节点数量,以确定每个 Amazon Elastic Block Store (Amazon EBS) 节点所需的存储量。将这个数字向上取整到最近的整数。您可以在部署后增加存储量,以便对工作负载有更好的了解。请记下这个数字。以下表格显示了基于之前计算的每个节点的存储容量。
总数据 (GB)节点数量每个节点存储 (GB)37953127189756317379512317应该在哪里部署集群?
如果您有 AWS 控制塔 部署或是依照 AWS 安全参考架构 (AWS SRA) 的部署模型,Security Lake 应该部署在 日志存档 帐户中。因为安全最佳实践建议不应频繁访问 日志存档 帐户,所以 OpenSearch 服务集群应该部署在您的 安全工具 帐户中。虽然您可以在与 Security Lake 相同的帐户中部署 OpenSearch 服务集群,但这并非最佳实践。
您的集群应部署在与 Security Lake 汇总区域相同的 AWS 区域。如果您有不止一个汇总区域,请选择日志流量最大的区域。
部署解决方案
要部署解决方案,您将使用 CloudFormation 模板来创建 OpenSearch 服务集群。部署后,您将配置 OpenSearch 接收管道以从 Security Lake 接收日志,并设置对象过期规则。
部署 OpenSearch 集群的步骤:
要部署生成 OpenSearch 服务集群的 CloudFormation 模板,请点击以下 启动堆栈 按钮。
在 CloudFormation 控制台中,确保您位于与 Security Lake 汇总区域相同的区域。为您的堆栈输入名称,并填写您先前记录的实例类型和 AWS EBS 卷大小。对于 SearchEngineVersion,选择最新的可用版本。
点选 下一步 两次以进入 审核和创建 页面。检查 能力 部分的认可,然后选择 提交 开始部署资源。部署多个嵌套模板将需要 20 至 30 分钟。请务必等主堆栈非嵌套的达到 CREATECOMPLETE 状态后再进行下一步。转到主 CloudFormation 堆栈的 输出 窗格。在新标签中打开 DashboardsProxyURL 值。注意: 由于该代理依赖于自签名证书,您将收到不安全证书的警告。可以安全地忽略此警告并继续。对于生产工作负载,您应该从内部公钥基础设施发出受信任的私有证书,或使用 AWS 私有证书授权 (CA)。
您将看到 Amazon Cognito 登录页面。使用在 CloudFormation 控制台的 输出 面板中找到的 CognitoUser 和 CognitoPassword 详情登录。更改密码后,将会转到 OpenSearch 仪表板。接收来自 Amazon Security Lake 的日志:
前往 OpenSearch 控制台并选择由 CloudFormation 模板创建的集群。选择 安全配置 标签并点选 编辑。在 精细访问控制 下,确保选择了 启用精细访问控制 并选择 创建主用户。输入用户名和密码并妥善保管。您稍后将用此上传组件和索引模板。云梯加速器永久免费版在 访问策略 中,将 域访问策略 更改为 仅使用精细访问控制。如果出现 访问策略将被清除 的窗口,请选择 清除策略。点选 保存更改。根据部落格文章 利用 Amazon OpenSearch 接收来自 Amazon Security Lake 数据的安全洞察 的指导,从 创建 Amazon Security Lake 供应商 开始设置 Security Lake 供应商。在完成 为 Amazon Security Lake 数据安装模板和仪表板 部分时,您需要使用代理。请进入 Amazon EC2 控制台,选择名称中带有 dashboardsproxy 的实例旁边的复选框。选择 连接。选择 连接,使用 会话管理器 连接到代理实例。执行以下命令以将模板下载到您的代理。
bashsudo suwget https//awsblogsartifactspublics3amazonawscom/bdb3541/componenttemplateszipwget https//awsblogsartifactspublics3amazonawscom/bdb3541/indextemplateszipunzip componenttemplateszip unzip indextemplateszip
您可以遵循 部落格文章 中其余的指导,以完成 OpenSearch 接收管道的设置,这将使 OpenSearch 能够接收来自 Security Lake 的日志。
设定过期旧的发现
在 OpenSearch 集群接收数据后,您需要配置它来过期旧数据。
点击左上角的菜单图标三个堆叠的水平线,在 管理 部分选择 索引管理。选择 创建政策 并选择 JSON 编辑器。进入政策命名并将以下 JSON 粘贴到 定义政策 窗口中。选择 自动缩排 以使其更具可读性。
json{ policy { policyid Expire stale data description Expires data that is more than 30 days old lastupdatedtime 1716283888632 schemaversion 19 errornotification null defaultstate Hot storage states [ { name Hot storage actions [] transitions [ { statename Delete conditions { minindexage 30d } } ] } { name Delete actions [ { retry { count 3 backoff exponential delay 1m } delete {} } ] transitions [] } ] ismtemplate [ { indexpatterns [ ocsf ] priority 1 lastupdatedtime 1716279164421 } ] }}
选择 创建。
此政策将自动删除 30 天后的索引,并会自动应用于由 Security Lake 数据创建的新索引。您可以选择该政策以使用可视编辑器进行配置更改。
清理
为了避免产生不必要的费用,请删除 OpenSearch 接收管道、主 CloudFormation 模板不包括嵌套堆栈,并 禁用 Security Lake。
结论
在这篇文章中,您学会了如何计划部署 Amazon OpenSearch 服务以接收来自 Amazon Security Lake 的日志。您确定了 OpenSearch 服务集群的大小,并将其部署在 VPC 中。然后,您设置了
发表评论