联合事件数据存储 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

联合事件数据存储

联合事件数据存储允许您在数据目录中查看与事件数据存储相关的元数据,向注册 Amazon Glue 数据目录 Amazon Lake Formation,并允许您使用 Amazon Athena 对事件数据运行 SQL 查询。存储在 Amazon Glue 数据目录中的表元数据让 Athena 查询引擎知道如何查找、读取和处理您要查询的数据。

您可以使用 CloudTrail 控制台 Amazon CLI、或 EnableFederationAPI 操作启用联合。启用 Lake 查询联合后, CloudTrail将在 Amazon Glue 数据目录中创建一个名为aws:cloudtrail(如果该数据库尚不存在)的托管数据库和一个托管联合表。事件数据存储 ID 用于表名。 CloudTrail 在中注册联合角色 ARN 和事件数据存储 Amazon Lake Formation,该服务负责允许对数据目录中的联合资源进行精细的访问控制。 Amazon Glue

要启用 Lake 查询联合身份验证,您必须创建新的 IAM 角色或选择现有角色。Lake Formation 使用此角色管理联合事件数据存储的权限。使用 CloudTrail 控制台创建新角色时, CloudTrail 会自动为该角色创建所需的权限。如果您选择现有角色,请确保该角色提供最低权限

您可以使用 CloudTrail 控制台 Amazon CLI、或 DisableFederationAPI 操作禁用联合。当您禁用联合身份验证时,会禁 CloudTrail用与 Amazon Glue Amazon Lake Formation、和 Amazon Athena 的集成。禁用 Lake 查询联合身份验证后,您将无法再在 Athena 中查询事件数据。禁用联合后,不会删除任何 CloudTrail Lake 数据,并且您可以继续在 CloudTrail Lake 中运行查询。

联合 L CloudTrail ake 事件数据存储不 CloudTrail 收取任何费用。在 Amazon Athena 中运行查询将会产生费用。有关 Athena 定价的更多信息,请参阅 Amazon Athena 定价

注意事项

联合事件数据存储时,请考虑以下因素:

  • 联合 L CloudTrail ake 事件数据存储不 CloudTrail 收取任何费用。在 Amazon Athena 中运行查询将会产生费用。有关 Athena 定价的更多信息,请参阅 Amazon Athena 定价

  • Lake Formation 用于管理联合资源的权限。如果您删除了联合角色,或者从 Lake Formation 中撤消了对资源的权限 Amazon Glue,或者,则无法从 Athena 运行查询。有关使用 Lake Formation 的更多信息,请参阅 使用管理 CloudTrail 湖联盟资源 Amazon Lake Formation

  • 使用 Amazon Athena 查询向 Lake Formation 注册的数据的任何人都必须有一个 IAM 权限策略,此权限允许执行 lakeformation:GetDataAccess 操作。 Amazon 托管策略:AmazonAthenaFullAccess允许此操作。如果您使用内联策略,请务必更新权限策略以允许此操作。有关更多信息,请参阅管理 Lake Formation 和 Athena 用户权限

  • 要在 Athena 中的联合表上创建视图,您需要一个除 aws:cloudtrail 之外的目标数据库。这是因为aws:cloudtrail数据库由管理 CloudTrail。

  • 要在 Amazon 中创建数据集 QuickSight,您必须选择 “使用自定义 SQL” 选项。有关更多信息,请参阅使用 Amazon Athena 数据创建数据集

  • 如果启用了联合身份验证,则无法删除事件数据存储。要删除联合事件数据存储,必须先禁用联合身份验证终止保护(如果已启用)。

  • 以下注意事项适用于组织事件数据存储:

    • 只有一个委托管理员账户或管理账户才能在组织事件数据存储上启用联合身份验证。其他委托管理员账户仍可以使用 Lake Formation 数据共享功能查询和共享信息。

    • 任何委托管理员账户或组织的管理账户都可以禁用联合身份验证。

联合身份验证所需的权限

在联合事件数据存储之前,请确保您拥有联合身份验证角色以及启用和禁用联合身份验证所需的所有权限。如果您选择现有 IAM 角色来启用联合身份验证,则只需要更新联合身份验证角色权限。如果您选择使用 CloudTrail 控制台创建新的 IAM 角色,请为该角色 CloudTrail 提供所有必要的权限。

联合事件数据存储的 IAM 权限

启用联合身份验证时,您可以选择创建新的 IAM 角色,也可以使用现有 IAM 角色。当您选择新的 IAM 角色时, CloudTrail 会创建一个具有所需权限的 IAM 角色,您无需采取任何进一步的操作。

如果您选择现有角色,请确保 IAM 角色的策略提供启用联合身份验证所需的权限。此部分提供所需 IAM 角色权限和信任策略的示例。

以下示例提供联合身份验证角色的权限策略。在第一个声明中,请提供 Resource 的事件数据存储的完整 ARN。

本策略的第二个声明允许 Lake Formation 解密使用 KMS 密钥加密的事件数据存储的数据。将 key-regionaccount-idkey-id 替换为您的 KMS 密钥的值。如果事件数据存储未使用 KMS 密钥进行加密,则可省略此声明。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFederationEDSDataAccess", "Effect": "Allow", "Action": "cloudtrail:GetEventDataStoreData", "Resource": "arn:aws:cloudtrail:eds-region:account-id:eventdatastore/eds-id" }, { "Sid": "LakeFederationKMSDecryptAccess", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:key-region:account-id:key/key-id" } ] }

以下示例提供了 IAM 信任策略,该策略允许 Amazon Lake Formation 代入 IAM 角色以管理联合事件数据存储的权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

启用联合身份验证所需的权限

以下示例策略提供了在事件数据存储上启用联合身份验证所需的最低权限。此策略 CloudTrail 允许在事件数据存储上启用联合、 Amazon Glue 在 Amazon Glue 数据目录中创建联合资源以及 Amazon Lake Formation 管理资源注册。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail to enable federation on the event data store", "Effect": "Allow", "Action": "cloudtrail:EnableFederation", "Resource": "arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id" }, { "Sid": "Allow access to the federation role", "Effect": "Allow", "Action": [ "iam:PassRole", "iam:GetRole" ], "Resource": "arn:aws:iam::region:role/federation-role-name" }, { "Sid": "Allow Amazon Glue to create the federated resources in the Data Catalog", "Effect": "Allow", "Action": [ "glue:CreateDatabase", "glue:CreateTable", "glue:PassConnection" ], "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/aws:cloudtrail", "arn:aws:glue:region:account-id:table/aws:cloudtrail/eds-id", "arn:aws:glue:region:account-id:connection/aws:cloudtrail" ] }, { "Sid": "Allow Lake Formation to manage resource registration", "Effect": "Allow", "Action": [ "lakeformation:RegisterResource", "lakeformation:DeregisterResource" ], "Resource": "arn:aws:lakeformation:region:account-id:catalog:account-id" } ] }

禁用联合身份验证所需的权限

以下示例策略提供了在事件数据存储上禁用联合身份验证所需的最低资源。此策略 CloudTrail 允许在事件数据存储上禁用联合, Amazon Glue 删除 Amazon Glue 数据目录中的托管联合表,以及 Lake Formation 取消注册联合资源。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail to disable federation on the event data store", "Effect": "Allow", "Action": "cloudtrail:DisableFederation", "Resource": "arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id" }, { "Sid": "Allow Amazon Glue to delete the managed federated table from the Amazon Glue Data Catalog", "Effect": "Allow", "Action": "glue:DeleteTable", "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/aws:cloudtrail", "arn:aws:glue:region:account-id:table/aws:cloudtrail/eds-id" ] }, { "Sid": "Allow Lake Formation to deregister the resource", "Effect": "Allow", "Action": "lakeformation:DeregisterResource", "Resource": "arn:aws:lakeformation:region:account-id:catalog:account-id" } ] }