注意:
- 本教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure 免费套餐。
- 它对 Oracle Cloud Infrastructure 身份证明、租户和区间使用示例值。完成实验室后,请使用特定于云环境的那些值替换这些值。
使用跨租户连接器中心和 OCI 流合并跨租户的日志以进行 SIEM 集成
简介
Oracle Cloud Infrastructure (OCI) 是受大型企业信任的基础设施即服务 (IaaS)、平台即服务 (PaaS) 和软件即服务 (SaaS)。它提供一系列全面的托管服务,包括托管、存储、网络、数据库等。
主动呈现与安全相关的事件日志以分类到适当资源对于检测和预防网络安全事件至关重要。许多组织使用安全信息和事件管理 (Security Information and Event Management,SIEM) 平台来关联和分析相关资产的日志和预警。正确配置关键日志的捕获和保留时间,以及近乎实时的监视和预警,使安全运营团队能够识别问题,基于系统优化关注关键信息,并采取适当行动。
摄取 OCI 日志的优秀实践模式是将日志发送到 OCI 流,这与 Apache kafka 兼容,有助于第三方 SIEM 平台以 Kafka 使用者的身份使用日志—减少延迟,在 SIEM 端出现临时数据使用问题时提供弹性和保留。
管理多个租户时,您可以通过创建跨租户连接器中心,将特定区域中的多个源租户 (SourceTenant) 中的日志整合到单个租户 (TargetTenant) OCI 流中,而不是将所有租户的每个区域单独与 SIEM 平台集成。然后,SIEM 平台可以通过 TargetTenant 流摄取该区域内所有租户的日志。
注:截至目前,OCI Connector Hub 服务不支持跨区域连接器中心。
下图显示了解决方案体系结构的高级表示形式。
背书、承认和定义语句
要访问和共享资源,租户(SourceTenant 和 TargetTenant)的管理员需要创建特殊的跨租户策略语句,以显式声明可访问和共享的资源。这些特殊语句使用动词“背书”、“承认”和“定义”。
跨租户语句中使用的特殊动词概览:
-
背书:说明您自己的租户中的组/资源主体可以在其他租户中执行的一般功能集。
-
入学:指出您自己的租户中希望从其他租户授予组/资源主用户的能力。
-
定义:为“背书”和“入学”策略语句的租户 OCID 分配别名。
“背书”和“入学”语句协同工作。如果没有指定访问权限的相应语句,特定的“背书”或“入学”语句将不授予访问权限。两个租户必须就访问达成一致。
注:
您必须在租户的根区间(而不是任何子区间)中定义跨租户语句。
创建连接器之前,请先编写跨租户策略。您必须使用 OCI 软件开发工具包 (SDK)、CLI 或 API 来创建跨租户连接器。在本教程中,使用 OCI 命令行界面 (Command Line Interface,CLI) 创建跨租户连接器中心。
目标
- 使用跨租户连接器中心和 OCI 流在租户之间合并记录 SIEM 集成。
先决条件
- OCI 中的用户必须具有 OCI Streaming、OCI Connector Hub 和 OCI Logging 服务所需的策略才能管理资源。有关所有服务的策略参考的更多信息,请参见 Policy Reference 。
任务 1:在 TargetTenant 中创建流
OCI Streaming 服务是面向开发人员和数据科学家的实时、无服务器、兼容 Apache Kafka 的事件流处理平台。它提供了一个完全托管、可扩展且持久的解决方案,可用于实时摄取和使用大量数据流(例如日志)。对于发布 - 订阅消息传递模型中连续生成和处理数据的任何用例,我们可以使用 OCI Streaming。
-
转到 OCI 控制台,导航到 Analytics & AI 、 Messaging 和 Streaming 。
-
单击创建流以创建流。
-
输入以下信息,然后单击创建。
- 名称:输入流名称。对于本教程,我们使用的是
TargetTenant-Stream
。 - 流池:选择现有流池或创建一个具有公共端点的新流池。
- 保留时间(小时):输入在此流中保留消息的小时数。
- 分区数:输入流的分区数。
- 总写入速率和总读取速率:根据需要处理的数据量输入。
可以从用于测试的默认值开始。有关更多信息,请参见 Partitioning a Stream 。
- 名称:输入流名称。对于本教程,我们使用的是
任务 2:在 SourceTenant 中写入策略
认可 SourceTenant 的指定区间中的任何连接器中心以访问 TargetTenant 中的任何流。
命令格式:
Define tenancy TargetTenant as <TargetTenant_OCID>
Endorse any-user to use stream-push in tenancy TargetTenant
where all
{
request.principal.type='serviceconnector',
request.principal.compartment.id= <connectorHub-Compartment_OCID>
}
示例命令:
Define tenancy TargetTenant as ocid1.tenancy.oc1..aaaaaaaanneylhk3ibxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Endorse any-user to use stream-push in tenancy TargetTenant where all { request.principal.type='serviceconnector', request.principal.compartment.id = 'ocid1.compartment.oc1..aaaaaaaau7xlnyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' }
任务 3:在 TargetTenant 中写入策略
接受连接器中心 SourceTenant 以访问 TargetTenant 中的流。
命令格式:
Define tenancy SourceTenantA as <SourceTenant-A_OCID>
Admit any-user of tenancy SourceTenantA to use stream-push in tenancy
Where all
{
request.principal.type='serviceconnector'
}
示例命令:
Define tenancy SourceTenantA as ocid1.tenancy.oc1..aaaaaaaakxcj24xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Admit any-user of tenancy SourceTenantA to use stream-push in tenancy Where all { request.principal.type = 'serviceconnector' }
任务 4:使用 CLI 在 SourceTenant 中创建 OCI Connector Hub
在 SourceTenant 和 TargetTenant 中创建所需的策略后,使用 SourceTenant 中的 CLI 创建 OCI Connector Hub。以下示例 CLI 命令将 OCI Logging 指定为源,将 OCI Streaming 指定为创建跨租户连接器中心的目标。
跨租户连接器中心,用于将 OCI 审计日志从 SourceTenant 推送到 TargetTenant 流。
命令格式:
oci sch service-connector create
--display-name <XTenancyConnectorHub-name>
--compartment-id <ConnectorHub-Compartment_OCID>
--source '{ "kind": "logging", "logSources":
[ { "compartmentId": "<SourceTenantA_OCID>",
"logGroupId": "_Audit_Include_Subcompartment" } ] }'
--target '{ "kind": "streaming", "streamId": "<TargetTenant-Stream_OCID>" }'
示例命令:
oci sch service-connector create --display-name XTenancyConnectorHub --compartment-id ocid1.compartment.oc1..aaaaaaaau7xlnyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --source '{ "kind": "logging", "logSources": [ { "compartmentId": "ocid1.tenancy.oc1..aaaaaaaakxcj24xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","logGroupId": "_Audit_Include_Subcompartment" } ] }' --target '{ "kind": "streaming", "streamId": "ocid1.stream.oc1.iad.amaaaaaas4n35vixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }'
跨租户连接器中心,用于将服务/定制日志从 SourceTenant(S) 推送到 TargetTenant 流。在运行以下命令之前,创建一个日志组并启用所需的日志。
命令格式:
oci sch service-connector create
--display-name <XTenancyConnectorHub-Name>
--compartment-id <ConnectorHub_Compartment_OCID>
--source '{ "kind": "logging", "logSources":
[ { "compartmentId": "<SourceTenantA-LogGroup-Compartment_OCID>",
"logGroupId": "<SourceTenantA-LogGroup_OCID>" } ] }'
--target '{ "kind": "streaming", "streamId": "<TargetTenant-Stream_OCID>" }'
注:任务 2 中的策略语句以及任务 4 中的任务 3 和 CLI 命令的格式设置了可读性。在使用这些语句的副本之前,请先删除新行、制表符和空格。
后续步骤
本教程演示了如何使用跨租户连接器中心和 OCI 流合并来自多个租户的日志。第三方 SIEM 平台应配置为 Kafka 使用者使用这些日志。在 SIEM 平台中设置仪表盘以捕获关键度量,并将警报配置为在超过预定义阈值时触发。此外,定义特定查询对于检测恶意活动和识别 OCI 租户中的模式至关重要。这些操作将增强您的安全状况,并可主动监视您的云环境。
相关链接
确认
- 作者 — Chaitanya Chintala(云安全顾问)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者访问 Oracle Learning YouTube 渠道上的更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Consolidate Logs Across Tenancies for SIEM Integration Using Cross-Tenancy Connector Hubs and OCI Stream
G12394-01
August 2024