在 Amazon 账户之间共享 CloudTrail 日志文件 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

在 Amazon 账户之间共享 CloudTrail 日志文件

此部分说明如何在多个 Amazon 账户之间共享 CloudTrail 日志文件。我们假设收到的所有日志文件都在一个 Amazon S3 存储桶中,这也是在 CloudTrail 控制台中创建的跟踪的默认设置。在第一个方案中,您将了解如何向生成了已放置到 Amazon S3 存储桶中的日志文件的账户授予只读访问权。在第二个方案中,您将了解如何向可为您分析文件的第三方账户授予对所有日志文件的访问权。

要在多个 Amazon 账户之间共享日志文件,您必须执行以下常规步骤。此部分的后面将详细说明这些步骤。

  • 为您要与之共享日志文件的每个账户创建一个 IAM 角色。

  • 为其中的每个 IAM 角色创建一个访问策略,该策略向要与之共享日志文件的账户授予只读访问权。

  • 让每个账户中的一位 IAM 用户以编程方式代入相应的角色并检索日志文件。

此部分将在两种不同的共享方案中演示上述步骤:向生成了日志文件的每个账户授予对日志文件的访问权;与第三方共享日志文件。在这两种方案中使用的大多数步骤是相同的;重要区别在于 IAM 角色向每个账户授予的权限的类别。即,您可以仅向账户授予对其自身日志文件的读访问权,也可以向账户授予对所有日志文件的读访问权。有关 IAM 角色的权限管理的详细信息,请参阅 IAM 用户指南中的角色(委托和联合)

方案 1:向生成了日志文件的账户授予访问权

在此方案中,我们假定您的企业由两个业务部门构成并维护三个 Amazon 账户。第一个账户是名为“账户 A”的顶级账户。例如,该账户可能由您企业的 IT 部门管理,并负责将来自所有其他部门和业务部门的日志文件收集到单个存储桶中。另外两个账户是账户 B 和账户 C,分别对应于您企业的两个业务部门。

此方案假定您已将这三个账户中的日志文件配置为传输到单个 Amazon S3 存储桶中,并且账户 A 对该存储桶拥有完全控制权,如下图所示。


                    将所有日志文件放置到单个存储桶中

尽管 Amazon S3 存储桶包含由账户 A、账户 B 和账户 C 生成的日志文件,但账户 B 和账户 C 最初并不具有对其生成的日志文件的访问权。您将向每个业务部门授予对其生成的日志文件的只读访问权,如下图所示。


                        授予对日志文件的访问权

要授予对账户 B 和账户 C 生成的日志文件的只读访问权,您必须在账户 A 中执行以下操作。请记住,账户 A 具有对 Amazon S3 存储桶的完全控制权。

  • 为账户 B 创建一个 IAM 角色,并为账户 C 创建另一个 IAM 角色。操作方法:创建角色

  • 为针对账户 B 创建的 IAM 角色创建一个访问策略,该策略将授予对由账户 B 生成的日志文件的只读访问权。为针对账户 C 创建的 IAM 角色创建一个访问策略,该策略将授予对由账户 C 生成的日志文件的只读访问权。操作方法:创建用于向自己的账户授予访问权限的访问策略

  • 让账户 B 中的 IAM 用户以编程方式代入为账户 B 创建的角色。让账户 C 中的 IAM 用户以编程方式代入为账户 C 创建的角色。每个 IAM 用户必须由各自账户所有者授予代入角色的权限。操作方法:为 IAM 用户创建权限策略

  • 最后,授予权限的账户所有者必须是管理员,并且必须了解要代入的账户 A 中的角色的 ARN。操作方法:调用 AssumeRole

随后,账户 B 和账户 C 中的 IAM 用户可以通过编程方式检索自己的日志文件,但不能检索任何其他账户的日志文件。

方案 2:授予对所有日志的访问权

在此方案中,我们假定您的企业架构与上一个方案中相同,即由两个业务部门构成并维护三个 Amazon 账户。第一个账户是名为“账户 A”的顶级账户。例如,账户 A 可能由企业的 IT 部门管理,并负责将所有其他日志文件放置到单个存储桶中。另外两个账户是账户 B 和账户 C,分别对应于您企业的每个业务部门。

与上一个方案类似,此方案假定您已将这三个账户中的日志文件放置到单个 Amazon S3 存储桶中,并且账户 A 对该存储桶拥有完全控制权。

最后,我们还假定您的企业需要与第三方共享所有三个账户(A、B 和 C)中的所有日志文件。假定第三方有一个名为“账户 Z”的 Amazon 账户,如下图所示。


                    账户 Z 读取账户 A、账户 B 和账户 C 中的日志文件

要与账户 Z 共享您企业中的所有日志文件,您必须在具有对 Amazon S3 存储桶的完全控制权的账户 A 中执行以下操作。

  • 为账户 Z 创建一个 IAM 角色。操作方法:创建角色

  • 为针对账户 Z 创建的 IAM 角色创建一个访问策略,该策略将授予对由账户 A、账户 B 和账户 C 生成的日志文件的只读访问权。操作方法:创建用于向第三方授予访问权限的访问策略

  • 让账户 Z 中的 IAM 用户以编程方式代入角色,然后检索相应的日志文件。IAM 用户必须由账户 Z 所有者授予代入角色的权限。操作方法:为 IAM 用户创建权限策略。此外,授予权限的账户所有者必须是管理员,并且了解要代入的账户 A 中的角色的 ARN。操作方法:调用 AssumeRole