使用控制台为 Insights 事件创建事件数据存储 - AWS CloudTrail

使用控制台为 Insights 事件创建事件数据存储

通过持续分析 CloudTrail 管理事件,AWS CloudTrail Insights 可帮助 AWS 用户识别和应对与 API 调用率和 API 错误率相关的异常活动。CloudTrail Insights 可分析 API 调用率和 API 错误率的正常模式,又称为基准,当调用量或错误率超出正常模式范围时生成 Insights 事件。将针对 write 管理 API 生成 API 调用率 Insights 事件,并针对 readwrite 管理 API 生成 API 错误率 Insights 事件。

要在 CloudTrail Lake 中记录 Insights 事件,您需要有一个用于记录 Insights 事件的目标事件数据存储和一个用于启用 Insights 事件和记录管理事件的源事件数据存储。

注意

要针对 API 调用率记录 Insights 事件,源事件数据存储必须记录 write 管理事件。要针对 API 错误率记录 Insights 事件,源事件数据存储必须记录 readwrite 管理事件。

如果已对源事件数据存储启用 CloudTrail Insights 并且 CloudTrail 检测到异常活动,CloudTrail 会将 Insights 事件传递到您的目标事件数据存储中。与在 CloudTrail 事件数据存储中捕获的其他类型的事件不同,仅在 CloudTrail 检测到账户的 API 使用情况的变化与账户的典型使用模式有显著差异时,才会记录 Insights 事件。

首次在事件数据存储上启用 CloudTrail Insights 后,CloudTrail 最多可能需要 7 天,才能开始交付 Insights 事件,前提是在此期间检测到异常活动。

CloudTrail Insights 会分析事件数据存储中每个区域发生的管理事件,并在检测到与基准偏离的异常活动时生成 Insights 事件。CloudTrail Insights 事件在生成其支持管理事件的同一区域生成。

对于组织事件数据存储,CloudTrail Insights 会分析组织内每个成员账户在每个区域的管理事件,并在检测到与账户和区域的基线偏离的异常活动时生成 Insights 事件。

在 CloudTrail Lake 中摄取 Insights 事件将收取额外费用。如果您同时为跟踪和 CloudTrail Lake 事件数据存储启用 Insights,则需要单独付费。有关 CloudTrail 定价的信息,请参阅 AWS CloudTrail 定价

要创建记录 Insights 事件的目标事件数据存储

创建 Insights 事件数据存储时,您可以选择用于记录管理事件的现有源事件数据存储,然后指定要接收的 Insights 类型。或者,您可以在创建 Insights 事件数据存储后在新的或现有的事件数据存储上启用 Insights,然后选择此事件数据存储作为目标事件数据存储。

此过程向您演示如何创建记录 Insights 事件的目标事件数据存储。

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail

  2. 在导航窗格中,打开 Lake(湖)子菜单,然后选择 Event data stores(事件数据存储)。

  3. 选择 Create event data store(创建事件数据存储)。

  4. Configure event data store(配置事件数据存储)页面上的 General details(一般细节)中,输入事件数据存储的名称。名称为必填项。

  5. 选择您要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及您的事件数据存储的默认和最长保留期。有关更多信息,请参阅 AWS CloudTrail 定价管理 CloudTrail Lake 成本

    可用选项如下:

    • 一年可延期保留定价 - 如果您希望每月摄取的事件数据少于 25TB,并且想要灵活的保留期(最长 10 年),一般建议采用此选项。在前 366 天(默认保留期)内,存储包含在摄取定价中,没有额外收费。366 天后,可按即用即付定价模式提供延长保留。这是默认选项。

      • 默认保留期:366 天

      • 最长保留期:3653 天

    • 七年期保留定价 - 如果您希望每月摄取的事件数据大于 25TB,并且需要最长 7 年的保留期,则建议采用此选项。保留包含在摄取定价中,没有额外费用。

      • 默认保留期:2557 天

      • 最长保留期:2557 天

  6. 指定事件数据存储的保留期(以天为单位)。一年可延期保留定价选项的保留期可以介于 7 天到 3653 天(大约 10 年)之间,七年期保留定价选项的保留期可以介于 7 天到 2557 天(约七年)之间。事件数据存储将保留指定天数内的事件数据。

  7. (可选)要启用使用 AWS Key Management Service 的加密,请选择使用我自己的 AWS KMS key。选择 New(新建)将为您创建 AWS KMS key,选择 Existing(现有)将使用现有 KMS 密钥。在 Enter KMS alias(输入 KMS 别名)中,使用 alias/MyAliasName 格式指定别名。使用您自己的 KMS 密钥需要编辑您的 KMS 密钥策略,以允许加密和解密您的事件数据存储。有关更多信息,请参阅 为 CloudTrail 配置 AWS KMS 密钥策略。CloudTrail 还支持 AWS KMS 多区域密钥。有关多区域密钥的更多信息,请参阅 AWS Key Management Service 开发人员指南中的使用多区域密钥

    使用您自己的 KMS 密钥将产生用于加密和解密的 AWS KMS 费用。在将事件数据存储与 KMS 密钥关联后,将无法移除或更改 KMS 密钥。

    注意

    要为组织事件数据存储启用 AWS Key Management Service 加密,必须使用管理账户的现有 KMS 密钥。

  8. (可选)如果您想使用 Amazon Athena 对事件数据进行查询,请在 Lake 查询联合身份验证中选择启用。通过联合身份验证,您可以在 AWS Glue 数据目录中查看与事件数据存储相关的元数据,并在 Athena 中对事件数据运行 SQL 查询。通过存储在 AWS Glue 数据目录中的表元数据,Athena 查询引擎可以了解如何查找、读取和处理您要查询的数据。有关更多信息,请参阅 联合事件数据存储

    要启用 Lake 查询联合身份验证,请选择启用,然后执行以下操作:

    1. 选择是要创建新角色还是使用现有 IAM 角色。AWS Lake Formation 使用此角色管理联合事件数据存储的权限。当您使用 CloudTrail 控制台创建新角色时,CloudTrail 将自动创建一个具有所需权限的角色。如果您选择现有角色,请确保该角色的策略提供所需的最低权限

    2. 如果您在创建新角色,请输入名称来标识该角色。

    3. 如果您使用现有角色,请选择要使用的角色。角色必须存在于您的账户中。

  9. (可选)选择启用资源策略以向您的事件数据存储添加基于资源的策略。基于资源的策略可让您控制哪些主体可以对您的事件数据存储执行操作。例如,您可以添加基于资源的策略,允许其他账户中的根用户查询此事件数据存储并查看查询结果。有关示例策略,请参阅 事件数据存储的基于资源的策略示例

    基于资源的策略包括一个或多个语句。策略中的每条语句都定义了支持或拒绝访问事件数据存储的主体以及主体可以对事件数据存储资源执行的操作。

    事件数据存储的基于资源的策略支持以下操作:

    • cloudtrail:StartQuery

    • cloudtrail:CancelQuery

    • cloudtrail:ListQueries

    • cloudtrail:DescribeQuery

    • cloudtrail:GetQueryResults

    • cloudtrail:GenerateQuery

    • cloudtrail:GenerateQueryResultsSummary

    • cloudtrail:GetEventDataStore

    对于组织事件数据存储,CloudTrail 会创建一个默认基于资源的策略,其中列出了委派管理员账户可以对组织事件数据存储执行的操作。此策略中的权限来自 AWS Organizations 中的委派管理员权限。在组织事件数据存储或组织发生变化(例如,注册或移除 CloudTrail 委派管理员账户)后,此策略会自动更新。

  10. (可选)在 Tags(标签)部分中,您最多可以添加 50 个标签键对,以帮助您对事件数据存储的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在 AWS 中使用标签的更多信息,请参阅《标记 AWS 资源用户指南》中的 Tagging AWS resources

  11. 选择 Next(下一步)以配置事件数据存储。

  12. 选择事件页面上,选择 AWS 事件,然后选择 CloudTrail Insights 事件

  13. CloudTrail Insights 事件中,请执行以下操作。

    1. 如果您要向组织的委托管理员授予对此事件数据存储的访问权限,请选择允许委托管理员访问权。只有当您使用 AWS Organizations 组织的管理账户登录时,此选项才可用。

    2. (可选)选择用于记录管理事件的现有源事件数据存储,并指定要接收的 Insights 类型。

      要添加源事件数据存储,请执行以下操作。

      1. 选择添加源事件数据存储

      2. 选择源事件数据存储。

      3. 选择要接收的 Insights 类型

        • ApiCallRateInsightApiCallRateInsight Insights 类型根据基准 API 调用量分析每分钟汇总的只写管理 API 调用。要接收关于 ApiCallRateInsight 的 Insights,源事件数据存储必须记录写入管理事件。

        • ApiErrorRateInsightApiErrorRateInsight Insights 类型分析生成错误代码的管理 API 调用。如果 API 调用不成功,就会显示错误。要接收关于 ApiErrorRateInsight 的 Insights,源事件数据存储必须记录写入读取管理事件。

      4. 重复前两个步骤(ii 和 iii),以添加您想要接收的任何其他 Insights 类型。

  14. 选择 Next(下一步)以查看您的选择。

  15. Review and create(审核和重建)页面上,审核您的选择。选择 Edit(编辑)以对这节进行更改。当您准备好创建事件数据存储时,选择 Create event data store(创建事件数据存储)。

  16. 事件数据存储页面上的事件数据存储表中可以看到新的事件数据存储。

  17. 如果您没有在步骤 10 中选择源事件数据存储,请按照要创建启用 Insights 事件的源事件数据存储中的步骤创建源事件数据存储。

要创建启用 Insights 事件的源事件数据存储

此过程向您演示如何创建启用 Insights 事件和记录管理事件的源事件数据存储。

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail

  2. 在导航窗格中,打开 Lake(湖)子菜单,然后选择 Event data stores(事件数据存储)。

  3. 选择 Create event data store(创建事件数据存储)。

  4. Configure event data store(配置事件数据存储)页面上的 General details(一般细节)中,输入事件数据存储的名称。名称为必填项。

  5. 选择您要用于事件数据存储的定价选项。定价选项决定了摄取和存储事件的成本,以及您的事件数据存储的默认和最长保留期。有关更多信息,请参阅 AWS CloudTrail 定价管理 CloudTrail Lake 成本

    可用选项如下:

    • 一年可延期保留定价 - 如果您希望每月摄取的事件数据少于 25TB,并且想要灵活的保留期(最长 10 年),一般建议采用此选项。在前 366 天(默认保留期)内,存储包含在摄取定价中,没有额外收费。366 天后,可按即用即付定价模式提供延长保留。这是默认选项。

      • 默认保留期:366 天

      • 最长保留期:3653 天

    • 七年期保留定价 - 如果您希望每月摄取的事件数据大于 25TB,并且需要最长 7 年的保留期,则建议采用此选项。保留包含在摄取定价中,没有额外费用。

      • 默认保留期:2557 天

      • 最长保留期:2557 天

  6. 指定事件数据存储的保留期。一年可延期保留定价选项的保留期可以介于 7 天到 3653 天(大约 10 年)之间,七年期保留定价选项的保留期可以介于 7 天到 2557 天(约七年)之间。

    CloudTrail Lake 通过检查事件的 eventTime 是否在指定的保留期内来确定是否保留该事件。例如,如果您将保留期指定为 90 天,CloudTrail 将移除 eventTime 超过 90 天的事件。

  7. (可选)要启用使用 AWS Key Management Service 的加密,请选择使用我自己的 AWS KMS key。选择 New(新建)将为您创建 AWS KMS key,选择 Existing(现有)将使用现有 KMS 密钥。在 Enter KMS alias(输入 KMS 别名)中,使用 alias/MyAliasName 格式指定别名。使用您自己的 KMS 密钥需要编辑您的 KMS 密钥策略,以允许加密和解密您的事件数据存储。有关更多信息,请参阅 为 CloudTrail 配置 AWS KMS 密钥策略。CloudTrail 还支持 AWS KMS 多区域密钥。有关多区域密钥的更多信息,请参阅 AWS Key Management Service 开发人员指南中的使用多区域密钥

    使用您自己的 KMS 密钥将产生用于加密和解密的 AWS KMS 费用。在将事件数据存储与 KMS 密钥关联后,将无法移除或更改 KMS 密钥。

    注意

    要为组织事件数据存储启用 AWS Key Management Service 加密,必须使用管理账户的现有 KMS 密钥。

  8. (可选)如果您想使用 Amazon Athena 对事件数据进行查询,请在 Lake 查询联合身份验证中选择启用。通过联合身份验证,您可以在 AWS Glue 数据目录中查看与事件数据存储相关的元数据,并在 Athena 中对事件数据运行 SQL 查询。通过存储在 AWS Glue 数据目录中的表元数据,Athena 查询引擎可以了解如何查找、读取和处理您要查询的数据。有关更多信息,请参阅 联合事件数据存储

    要启用 Lake 查询联合身份验证,请选择启用,然后执行以下操作:

    1. 选择是要创建新角色还是使用现有 IAM 角色。AWS Lake Formation 使用此角色管理联合事件数据存储的权限。当您使用 CloudTrail 控制台创建新角色时,CloudTrail 将自动创建一个具有所需权限的角色。如果您选择现有角色,请确保该角色的策略提供所需的最低权限

    2. 如果您在创建新角色,请输入名称来标识该角色。

    3. 如果您使用现有角色,请选择要使用的角色。角色必须存在于您的账户中。

  9. (可选)选择启用资源策略以向您的事件数据存储添加基于资源的策略。基于资源的策略可让您控制哪些主体可以对您的事件数据存储执行操作。例如,您可以添加基于资源的策略,允许其他账户中的根用户查询此事件数据存储并查看查询结果。有关示例策略,请参阅 事件数据存储的基于资源的策略示例

    基于资源的策略包括一个或多个语句。策略中的每条语句都定义了支持或拒绝访问事件数据存储的主体以及主体可以对事件数据存储资源执行的操作。

    事件数据存储的基于资源的策略支持以下操作:

    • cloudtrail:StartQuery

    • cloudtrail:CancelQuery

    • cloudtrail:ListQueries

    • cloudtrail:DescribeQuery

    • cloudtrail:GetQueryResults

    • cloudtrail:GenerateQuery

    • cloudtrail:GenerateQueryResultsSummary

    • cloudtrail:GetEventDataStore

    对于组织事件数据存储,CloudTrail 会创建一个默认基于资源的策略,其中列出了委派管理员账户可以对组织事件数据存储执行的操作。此策略中的权限来自 AWS Organizations 中的委派管理员权限。在组织事件数据存储或组织发生变化(例如,注册或移除 CloudTrail 委派管理员账户)后,此策略会自动更新。

  10. (可选)在 Tags(标签)部分中,您最多可以添加 50 个标签键对,以帮助您对事件数据存储的访问进行识别、排序和控制。要详细了解如何使用 IAM 策略以根据标签授权对事件数据存储的访问,请参阅示例:拒绝基于标签创建或删除事件数据存储的访问权限。有关如何在 AWS 中使用标签的更多信息,请参阅《标记 AWS 资源用户指南》中的 Tagging AWS resources

  11. 选择 Next(下一步)以配置事件数据存储。

  12. 选择事件页面上,选择 AWS 事件,然后选择 CloudTrail 事件

  13. CloudTrail 事件中,将管理事件保留为选中状态。

  14. 要让您的事件数据存储收集 AWS Organizations 企业中所有账户的事件,请选择 Enable for all accounts in my organization(为我的企业中的所有账户启用)。您必须登录组织的管理账户,才能创建启用 Insights 解的事件数据存储。

  15. 展开其他设置以选择是希望事件数据存储收集所有 AWS 区域 事件还是仅收集当前 AWS 区域,并选择事件数据存储是否摄取事件。默认情况下,您的事件数据存储会收集您账户中所有区域的事件,并在事件创建后开始摄取事件。

    1. 如果您想要仅包含在当前区域中记录的事件,选择在我的事件数据存储中仅包含当前区域。如果不选择此选项,则您的事件数据存储将包含来自所有区域的事件。

    2. 摄取事件保留为选中状态。

  16. 简单事件收集高级事件收集之间进行选择:

    • 如果要记录所有事件、记录仅读取事件或记录仅写入事件,请选择简单事件收集。也可以选择排除 AWS Key Management Service 和 Amazon RDS 数据 API 事件。

    • 如果要根据高级事件选择器字段(包括 eventNameeventTypeeventSourcesessionCredentialFromConsoleuserIdentity.arn 字段)的值包括或排除管理事件,请选择高级事件收集

  17. 如果您选择了简单事件收集,请选择是要记录所有事件、仅记录读取事件还是仅记录写入事件。也可以选择排除 AWS KMS 和 Amazon RDS 数据 API 事件。

  18. 如果您选择了高级事件收集,请进行以下选择:

    1. 日志选择器模板中,选择一个预定义的模板,或者选择自定义以基于高级事件选择器字段的值写入您自己的事件收集条件。

      您可以从以下预定义模板中进行选择:

      • 记录所有事件 – 选择此模板以记录所有事件。

      • 仅记录读取事件 – 选择此模板以仅记录读取事件。只读事件是不会更改资源状态的事件,例如 Get*Describe* 事件。

      • 仅记录写入事件 – 选择此模板以仅记录写入事件。写入事件可添加、更改或删除资源、属性或构件,例如 Put*Delete*Write* 事件。

      • 仅记录AWS 管理控制台事件 – 选择此模板以仅记录源自AWS 管理控制台的事件。

      • 排除 AWS 服务启动的事件 – 选择此模板以排除 eventTypeAwsServiceEvent 的 AWS 服务事件和使用 AWS 服务相关角色 (SLR) 启动的事件。

    2. (可选)在选择器名称中,输入用于标识选择器的名称。选择器名称是高级事件选择器的描述性名称,例如“记录 AWS 管理控制台 会话中的管理事件”。选择器名称在高级事件选择器中列为 Name,展开 JSON 视图即可查看该名称。

    3. 如果您选择了自定义,则在高级事件选择器中,将基于高级事件选择器字段值构建表达式。

      注意

      选择器不支持使用通配符,例如 *。要将多个值与单个条件匹配,可以使用 StartsWithEndsWithNotStartsWithNotEndsWith 明确匹配事件字段的开头或结尾。

      1. 从下面的字段中选择。

        • readOnlyreadOnly 可以设置为等于truefalse。当它设置为 false 时,事件数据存储将记录只写管理事件。只读管理事件是不会更改资源状态的事件,例如 Get*Describe* 事件。写入事件可添加、更改或删除资源、属性或构件,例如 Put*Delete*Write* 事件。要同时记录读取写入事件,请勿添加 readOnly 选择器。

        • eventNameeventName 可以使用任何运算符。您可以使用它来包含或排除任何管理事件,例如 CreateAccessPointGetAccessPoint

        • userIdentity.arn – 包含或排除特定 IAM 身份所采取操作的事件。有关更多信息,请参阅 CloudTrail userIdentity 元素

        • sessionCredentialFromConsole – 包括或排除源自 AWS 管理控制台会话的事件。可以将此字段设置为等于不等于true

        • eventSource – 可以使用它来包含或排除特定的事件源。eventSource 通常为服务名称的简短形式,不含空格但会加上 .amazonaws.com。例如,可以设置 eventSource 等于 ec2.amazonaws.com,以便仅记录 Amazon EC2 管理事件。

        • eventType – 要包括或排除的 eventType。例如,可以将此字段设置为不等于 AwsServiceEvent,以排除 AWS 服务事件

      2. 对于每个字段,请选择 + 条件以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。

        有关 CloudTrail 如何评估多个条件的信息,请参阅CloudTrail 如何评估字段的多个条件

        注意

        对于事件数据存储上的所有选择器,最多可以有 500 个值。这包括选择器的多个值的数组,例如 eventName。如果所有选择器均为单个值,则最多可以向选择器添加 500 个条件。

      3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。

    4. 或者,展开 JSON 视图将您的高级事件选择器作为 JSON 数据块查看。

  19. 选择启用 Insights 事件捕获

  20. 选择将记录 Insights 事件的目标事件存储。目标事件数据存储将根据该事件数据存储中的管理事件活动收集 Insights 事件。有关如何创建目标事件数据存储的信息,请参阅要创建记录 Insights 事件的目标事件数据存储

  21. 选择 Insights 类型。您可以选择 API 调用率API 错误率或同时选择此两者。您必须记录写入管理事件,以针对 API 调用率记录 Insights 事件。您必须记录读取写入管理事件,以针对 API 错误率记录 Insights 事件。

  22. 选择下一步,以通过添加资源标签键和 IAM 全局条件键来丰富您的事件。

  23. 丰富事件中,最多可以添加 50 个资源标签键和 50 个 IAM 全局条件键,以提供有关事件的更多元数据。这有助于您对相关事件进行分类和分组。

    如果您添加资源标签键,CloudTrail 将包含与 API 调用中涉及的资源关联的所选标签键。与已删除资源相关的 API 事件将没有资源标签。

    如果您添加 IAM 全局条件键,CloudTrail 将包含有关在授权过程中评估的所选条件键的信息,包括有关主体、会话、网络和请求本身的更多详细信息。

    有关资源标签键和 IAM 全局条件键的信息显示在事件的 eventContext 字段中。有关更多信息,请参阅 通过添加资源标签键和 IAM 全局条件键来丰富 CloudTrail 事件

    注意

    如果事件包含不属于该事件区域的资源,CloudTrail 将不会为此资源填充标签,因为标签检索仅限于事件区域。

  24. 选择扩展事件大小,将事件有效载荷从 256 KB 扩展到 1 MB。当您添加资源标签键或 IAM 全局条件键时,此选项会自动启用,以确保添加的所有键都包含在事件中。

    扩展事件大小有助于分析事件和对事件进行故障排除,因为只要事件有效载荷小于 1 MB,它就支持您查看以下字段的完整内容:

    • annotation

    • requestID

    • additionalEventData

    • serviceEventDetails

    • userAgent

    • errorCode

    • responseElements

    • requestParameters

    • errorMessage

    有关这些字段的更多信息,请参阅 CloudTrail 记录内容

  25. 选择 Next(下一步)以查看您的选择。

  26. Review and create(审核和重建)页面上,审核您的选择。选择 Edit(编辑)以对这节进行更改。当您准备好创建事件数据存储时,选择 Create event data store(创建事件数据存储)。

  27. 事件数据存储页面上的事件数据存储表中可以看到新的事件数据存储。

    从现在开始,事件数据存储将捕获与其高级事件选择器匹配的事件。首次在事件数据存储上启用 CloudTrail Insights 后,CloudTrail 最多可能需要 7 天,才能开始交付 Insights 事件,前提是在此期间检测到异常活动。

    您可以使用 CloudTrail Lake 控制面板来可视化目标事件数据存储中的 Insights 事件。有关 Lake 控制面板的更多信息,请参阅CloudTrail Lake 控制面板

在 CloudTrail Lake 中摄取 Insights 事件将收取额外费用。如果您同时为跟踪和事件数据存储启用 Insights,则需要单独付费。有关 CloudTrail 定价的信息,请参阅 AWS CloudTrail 定价