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

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

跨账户登录 CloudTrail

Lake Formation 提供对数据湖中数据的所有跨账户访问的集中审计跟踪。当接收者Amazon账户访问共享表中的数据时,Lake Formation CloudTrail 会将事件复制到所有者账户CloudTrail的日志中。复制的事件包括Amazon Athena和亚马逊 Redshift Spectrum 等集成服务对数据的查询,以及任务对Amazon Glue数据的访问。

CloudTrail对数据目录资源进行跨账户操作的事件也会被类似地复制。

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

在跨账户CloudTrail日志中包含主要身份

默认情况下,添加到共享资源接收者日志并复制到资源所有者日志的跨账户CloudTrail事件仅包含外部账户委托人的委托人 ID,而不是Amazon委托人(委托人 ARN)的人类可读的 Amazon 资源名称 (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、亚马逊 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. 通过 https://console.aws.amazon.com/lakeformation/ 中打开 Lake Formation 控制台。

    Administrator用户或拥有 Administrator Access IAM 策略的用户身份登录。

  2. 在导航窗格中,选择 Settings (设置)

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

    在每个账户 ID 后按 Enter

  4. 选择保存

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

查询 Amazon S3 跨账户访问CloudTrail的日志

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

使用运行查询时Amazon Athena,您可以通过会话名称属性加入 Lake Formation CloudTrail CloudTrail 事件和 S3 事件。查询还可以筛选上eventName="GetDataAccess"的 Lake Formation 事件和eventName="Get Object"或上的 S3 事件eventName="Put Object"

以下是 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钥值可以与 S3 CloudTrail 事件principalId密钥中的会话名称合并。AWSLF-00-GL-111122223333-B8JSAjo5QA以下是 S3 CloudTrail 活动的摘录。它显示会话名称的位置。

{ "eventSource": "s3.amazonaws.com", "eventName": "Get Object" .............. .............. "principalId": "AROAQSOX5XXUR7D6RMYLR:AWSLF-00-GL-111122223333-B8JSAjo5QA", "arn": "arn:aws:sets::111122223333:assumed-role/Deformationally/AWSLF-00-GL-111122223333-B8JSAjo5QA", "session Context": { "session Issuer": { "type": "Role", "principalId": "AROAQSOX5XXUR7D6RMYLR", "arn": "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/Deformationally", "accountId": "111122223333", "user Name": "Deformationally" }, .............. .............. }

会话名称的格式如下:

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

请求 Lake Formation 提供证书的Amazon账户 ID。

suffix

随机生成的字符串。