跨账户 CloudTrail 日志记录 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

跨账户 CloudTrail 日志记录

Lake Formation 提供了对数据湖中数据的所有跨账户访问的集中审计跟踪。当收件人Amazon账户访问共享表中的数据,Lake Formation 会将 CloudTrail 事件复制到拥有者账户的 CloudTrail 日志中。复制的事件包括集成服务对数据的查询,例如Amazon Athena和 Amazon Redshift Spectrum 以及数据访问Amazon Glue个作业。

同样会复制针对数据目录资源进行跨账户操作的 CloudTrail 事件。

作为资源所有者,如果您在 Amazon S3 中启用对象级日志记录,则可以运行将 S3 CloudTrail 事件与 Lake Formation CloudTrail 事件加入的查询,以确定已访问 S3 存储桶的账户。

在跨账户 CloudTrail 日志中包括主体身份

默认情况下,添加到共享资源接收者日志中并复制到资源所有者日志的跨账户 CloudTrail 事件仅包含Amazon外部账户委托人的委托人 ID,而不是委托人(委托人 ARN)的人类可读的亚马逊资源名称 (ARN)。在可信范围内(例如在同一组织或团队内)共享资源时,您可以选择在 CloudTrail 事件中包含委托人 ARN。然后,资源所有者账户可以跟踪收件人账户中访问其自有资源的委托人。

重要

作为共享资源接收者,要在自己的 CloudTrail 日志中查看事件中的委托人 ARN,您必须选择加入才能与所有者账户共享委托人 ARN。

如果通过资源链接进行数据访问,则共享资源收件人帐户中会记录两个事件:一个用于资源链接访问,另一个用于目标资源访问权限。资源链接访问的事件确实包括主要 ARN。没有选择加入的情况下,目标资源访问的事件不包括委托人 ARN。资源链接访问事件不会复制到所有者帐户。

以下是默认跨账户 CloudTrail 事件的摘录(不选择加入)。执行数据访问的账户是 1111-2222-3333。这是调用账户和资源所有者帐户中显示的日志。Lake Formation 在跨账户案例中填充两个账户中的日志。

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession", "accountId": "111122223333" }, "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", ... ... "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2" }, ... }

作为共享资源使用者,当您选择包含主要 ARN 时,摘录将变成以下内容。这些区域有:lakeFormationPrincipal字段表示通过亚马逊 Athena、Amazon Redshift Spectrum 执行查询的最终角色或用户Amazon Glue个作业。

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSAccount", "principalId": "AROAQGFTBBBGOBWV2EMZA:GlueJobRunnerSession", "accountId": "111122223333" }, "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", ... ... "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-G13T0Rmng2" }, ... }

选择加入以在跨账户 CloudTrail 日志中包含主要 ARN

  1. 打开 Lake Formation 控制台,网址为 https://console.aws.amazon.com/lakeformation/

    登录为Administrator用户或具有AdministratorAccessIAM 策略。

  2. 在导航窗格中,选择 Settings

  3. 在存储库的数据目录设置页面中,的默认权限Amazon CloudTrail部分,资源拥有者中,输入一个或多个Amazon资源所有者帐户 ID。

    Enter在每个账户 ID 之后。

  4. 选择 Save (保存)

    现在,存储在共享资源接收者和资源所有者的日志中的跨账户 CloudTrail 事件包含委托人 ARN。

查询 CloudTrail 日志以获取 Amazon S3 跨账户访问权限

作为共享资源所有者,您可以查询 S3 CloudTrail 日志以确定访问过 Amazon S3 存储桶的账户(前提是您在 Amazon S3 中启用了对象级日志记录)。这仅适用于您在 Lake Formation 注册的 S3 位置。如果共享资源使用者选择在 Lake Formation CloudTrail 日志中包含主要 ARN,则可以确定访问存储桶的角色或用户。

使用运行查询时Amazon Athena,您可以在会话名称属性上加入 Lake Formation CloudTrail 事件和 S3 CloudTrail 事件。查询还可以过滤 Lake Formation 活动eventName="GetDataAccess"和上的 S3 事件eventName="GetObject"或者eventName="PutObject".

以下是 Lake Formation 跨账户 CloudTrail 事件的摘录,其中访问了注册 S3 位置中的数据。

{ "eventSource": "lakeformation.amazonaws.com", "eventName": "GetDataAccess", .............. .............. "additionalEventData": { "requesterService": "GLUE_JOB", "lakeFormationPrincipal": "arn:aws:iam::111122223333:role/ETL-Glue-Role", "lakeFormationRoleSessionName": "AWSLF-00-GL-111122223333-B8JSAjo5QA" } }

这些区域有:lakeFormationRoleSessionName关键值,AWSLF-00-GL-111122223333-B8JSAjo5QA,可以使用中的会话名称加入principalIdS3 CloudTrail 事件的密钥。下面是 S3 CloudTrail 事件的摘录。它显示会话名称的位置。

{ "eventSource": "s3.amazonaws.com", "eventName": "GetObject" .............. .............. "principalId": "AROAQSOX5XXUR7D6RMYLR:AWSLF-00-GL-111122223333-B8JSAjo5QA", "arn": "arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForLakeFormationDataAccess/AWSLF-00-GL-111122223333-B8JSAjo5QA", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAQSOX5XXUR7D6RMYLR", "arn": "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess", "accountId": "111122223333", "userName": "AWSServiceRoleForLakeFormationDataAccess" }, .............. .............. }

会话名称的格式如下:

AWSLF-<version-number>-<query-engine-code>-<account-id->-<suffix>
version-number

目前,此格式的版本00. 如果会话名称格式更改,下一个版本将是01.

query-engine-code

表示访问数据的实体。当前值如下:

GL Amazon GlueETL 作业
AT Athena
RE Amazon Redshift Spectrum
account-id

这些区域有:Amazon请求 Lake Formation 提供凭证的账户 ID。

suffix

随机生成的字符串。