注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于您的云环境的值。
将多个 Oracle Cloud Infrastructure 租户中的日志集中到一个 Oracle Cloud Infrastructure 中心租户存储桶中
简介
在某些情况下,您必须将所有日志集中在一个位置,即使它们来自不同的租户也是如此。这可能是由于行业法规或公司政府政策;无论你的情况如何,你都可以面对不同的管理问题来实现这一点。
在本教程中,我们将使用 OCI 跨租户访问和 OCI Connector Hub 服务集中管理在不同 Oracle Cloud Infrastructure (OCI) 租户中生成的审计、服务或定制日志,这些日志位于具有归档或可视化的中心租户下。
体系结构图
- 租户 A:区域 1 中的日志源。
- 租户 B:区域 1 中的日志源。
- 租户 C:区域 1 中的日志目标。
注:对于本教程,所有租户都应在同一区域中。
目标
-
在目标租户中创建策略。
-
在源租户中创建策略。
-
在源租户中部署 OCI Connector Hub。
先决条件
-
租户中已启用所有必需的服务或定制日志(VCN、OCI API 网关、OCI 对象存储等),本教程不包括在内。默认情况下会启用租户审计日志。
-
在目标租户中创建的 OCI 对象存储桶。
-
每个租户中的 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 用户具有足够的权限来部署此教程,包括有权在根区间中配置策略(跨租户策略语句的要求)。
任务 1:在目标租户中创建策略
将在 OCI 对象存储桶所在的目标租户(租户 C)中配置以下 OCI IAM 策略。
-
检索租户 A 的以下信息。
- OCID
- 将在其中部署 OCI 连接器中心的区间 OCID。
-
检索租户 C 的以下信息。
- 在其中创建存储桶的区间名称。
-
使用在步骤 1 和步骤 2 中收集的信息创建以下策略。
-
定义远程租户。
define tenancy SCTenancyA as <Tenancy A OCID>
注:使用步骤 1 中收集的信息更新
<Tenancy A OCID>
。 -
允许远程租户中的服务连接器主体读取本地区间中的存储桶。
admit any-user of tenancy SCTenancyA to read buckets in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
注:使用相应的信息更新
<Tenancy C Compartment name>
和<Tenancy A Compartment OCID>
。 -
允许远程租户中的服务连接器主体管理本地存储桶中仅限于对象检验和对象创建操作的对象。
admit any-user of tenancy SCTenancyA to manage objects in compartment <Tenancy C Compartment name> where all { request.principal.type='serviceconnector', request.principal.compartment.id=’ <Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
注:
- 使用相应的信息更新
<Tenancy C Compartment name>
和<Tenancy A Compartment OCID>
。 - 所有资源都在源或目标区间范围内。有关背书、入学和定义对帐单的更多信息,请参阅背书、入学和定义对帐单。
- 使用相应的信息更新
-
-
登录到 OCI 控制台,导航到身份和安全并单击策略。
-
确保位于根区间中,然后单击创建策略。
-
输入名称和说明,然后单击显示手动编辑器。
-
写入在任务 1.3 中创建的策略,然后单击创建。
策略应类似于:
任务 2:在源租户中创建策略
必须在要部署 OCI Connector Hub 的每个源租户(租户 A 和租户 B)中配置以下 OCI IAM 策略。OCI Connector Hub 将收集日志并将其发送到中央存储库。
-
检索租户 A 的以下信息。
- 将在其中部署 OCI 连接器中心的区间 OCID。
-
检索租户 C 的以下信息。
- OCID
-
使用在步骤 1 和步骤 2 中收集的信息创建以下策略。
-
定义远程租户。
Define tenancy OSTenancyC as <Tenancy C OCID>
注:使用相应的信息更新
<Tenancy C OCID>
。 -
允许本地租户中的服务连接器主体读取目标租户中的存储桶。
endorse any-user to read buckets in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' }
注:使用相应的信息更新
<Tenancy A Compartment OCID>
。 -
允许本地租户中的服务连接器主体管理目标租户中仅限于对象检查和对象创建操作的对象。
endorse any-user to manage objects in tenancy OSTenancyC where all {request.principal.type = 'serviceconnector', request.principal.compartment.id='<Tenancy A Compartment OCID>' , any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT'}}
注:
- 使用相应的信息更新
<Tenancy A Compartment OCID>
。 - 所有资源都在源或目标区间范围内。有关背书、入学和定义对帐单的详情,请参阅:背书、入学和定义对帐单
- 使用相应的信息更新
-
-
登录到 OCI 控制台,导航到身份和安全并单击策略。
-
确保位于根区间中,然后单击创建策略。
-
输入名称和说明,然后单击显示手动编辑器。
-
输入在任务 2.3 中准备的策略,然后单击创建。
策略应类似于:
任务 3:在源租户中部署 OCI Connector Hub
使用 OCI CLI 在源租户(租户 A 和租户 B)中部署 OCI Connector Hub。
注:要创建用于访问其他租户中资源的连接器,必须使用 OCI SDK、CLI 或 API。
-
连接到源租户(租户 A 和租户 B)的 OCI CLI。在本教程中,我们将使用 OCI Cloud Shell。有关如何使用 OCI Cloud Shell 的更多信息,请参阅使用 Cloud Shell 。
-
使用以下内容创建两个文件,分别命名为
source.json
和target.json
。-
source.json
:它将定义源租户(租户 A 或租户 B)中的日志源,将在其中收集日志。使用示例代码中的值更新以下参数。
<Tenancy A OCID where Audit log resides>
<Tenancy A Compartment OCID where log group resides>
<Tenancy A Log Group OCID>
<Tenancy A _Log-ID OCID_>
{ "kind": "logging", "logSources": [ { "compartment-id": "_<Tenancy A OCID where Audit log resides>_", "log-group-id": "_Audit_Include_Subcompartment", "log-id": null }, { "compartment-id": "_<Tenancy A Compartment OCID where log group resides>_", "log-group-id": _"<Tenancy A Log Group OCID>",_ "log-id": "<Tenancy A _Log-ID OCID_>" } ] }
注:上面的
source.json
示例具有两个日志源:第一个日志源将配置 OCI Connector Hub 以从根区间和所有子区间收集审计日志。第二步将 OCI Connector Hub 配置为从日志组(由log-id
和log-group-id
定义)(如子网日志)收集特定日志。可以根据需要在此配置中添加或删除日志源。 -
Target.json
:它将在目标租户(租户 C)中定义存储桶,在其中归档日志。{ "kind": "objectStorage", "bucketName": "<Tenancy C bucket name>", "namespace": "<Tenancy C namespace where bucket was created>" }
注:您可以从存储桶详细信息中获取存储桶名称空间。
-
-
运行以下命令。
oci sch service-connector create --compartment-id <Compartment OCID where SCH will be placed in Tenancy A> --display-name <Display name> --source file://Source.json --target file://Target.json
注:
source.json
和target.json
文件必须可访问。 -
根据需要为所有其他源租户重复步骤 1 到 3。有关其他 OCI Connector Hub 目标选项,请参阅 ObjectStorageTargetDetails 参考。
-
检查结果。
-
您将在源租户中使用定义的源和目标存储桶创建 OCI Connector Hub。
-
目标存储桶将包含每个 OCI Connector Hub 的条目。
-
相关链接
确认
- Authors -Jaime Rojas(LAD A 团队工程师)、Michel Roitman(LAD A 团队云安全工程师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Centralize Logs from Multiple Oracle Cloud Infrastructure Tenancies into a Central Oracle Cloud Infrastructure Tenancy Bucket
F96833-01
April 2024