使用创建、更新和管理事件数据存储 AWS CLI - AWS CloudTrail

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

使用创建、更新和管理事件数据存储 AWS CLI

您可以使用 AWS CLI 来创建、更新和管理您的事件数据存储。使用时 AWS CLI,请记住您的命令在 AWS 区域 配置文件中运行。如果您想要在不同的区域中运行命令,可以为配置文件更改默认区域,或者与命令一起使用 --region 参数。

事件数据存储的可用命令

用于在 La CloudTrail ke 中创建和更新事件数据存储的命令包括:

有关可用于 La CloudTrail ke 查询的命令列表,请参阅可用于 L CloudTrail ake 查询的命令

有关 La CloudTrail ke 集成的可用命令列表,请参阅L CloudTrail ake 集成的可用命令

使用创建事件数据存储 AWS CLI

使用 create-event-data-store 命令创建事件数据存储。

创建事件数据存储时,唯一需要的参数是 --name,它用于标识事件数据存储。您可以配置其他可选参数,包括:

  • --advanced-event-selectors - 指定要包括在事件数据存储中的事件的类型。默认情况下,事件数据存储会记录所有的管理事件。有关高级事件选择器的更多信息,请参阅 CloudTrail API 参考AdvancedEventSelector中的。

  • --kms-key-id-指定用于加密传送的事件的 AWS KMS 密钥 ID CloudTrail。该值可以是前缀为 alias/ 的别名、别名的完全指定 ARN、密钥的完全指定 ARN 或全局唯一标识符。

  • --multi-region-enabled-创建多区域事件数据存储,用于记录您账户 AWS 区域 中所有人的事件。默认情况下,即使未添加参数,也会设置 --multi-region-enabled

  • --organization-enabled - 启用事件数据存储,以收集组织中所有账户的事件。默认情况下,不会为组织中的所有账户启用事件数据存储。

  • --billing-mode - 决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。

    有以下可能值。

    • EXTENDABLE_RETENTION_PRICING - 如果您每月摄取的事件数据少于 25TB,并且想要最长 3653 天(大约 10 年)的灵活保留期,则通常建议使用这种计费模式。此计费模式的默认保留期为 366 天。

    • FIXED_RETENTION_PRICING - 如果您希望每月摄取的事件数据大于 25TB,并且需要最长 2557 天(大约 7 年)的保留期,则建议采用此计费模式。此计费模式的默认保留期为 2557 天。

    默认值为 EXTENDABLE_RETENTION_PRICING

  • --retention-period - 事件在事件数据存储中保留的天数。如果 --billing-modeEXTENDABLE_RETENTION_PRICING,则有效值为介于 7 和 3653 之间的整数;如果 --billing-mode 设置为 FIXED_RETENTION_PRICING,则有效值为介于 7 和 2557 之间的整数。如果未指定--retention-period,则 CloudTrail 使用默认的保留期--billing-mode

  • --start-ingestion - --start-ingestion 参数在其被创建时在事件数据存储上开始事件摄取。即使未添加该参数,也会设置此参数。

    如果您不希望事件数据存储摄取实时事件,请指定 --no-start-ingestion。例如,如果您要将事件复制到事件数据存储中,并且仅计划使用事件数据存储来分析过去的事件,则可能要设置此参数。仅当 eventCategoryManagementDataConfigurationItem 时,--no-start-ingestion 参数才有效。

以下示例演示了如何创建不同类型的事件数据存储。

使用为 S3 数据事件创建事件数据存储 AWS CLI

以下示例 AWS Command Line Interface (AWS CLI) create-event-data-store 命令创建一个名为的事件数据存储my-event-data-store,该存储选择所有 Amazon S3 数据事件,并使用 KMS 密钥进行加密。

aws cloudtrail create-event-data-store \ --name my-event-data-store \ --kms-key-id "arn:aws:kms:us-east-1:123456789012:alias/KMS_key_alias" \ --advanced-event-selectors '[ { "Name": "Select all S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:aws:s3"] } ] } ]'

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE", "Name": "my-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Select all S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:aws:s3" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:alias/KMS_key_alias", "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-09T22:19:39.417000-05:00", "UpdatedTimestamp": "2023-11-09T22:19:39.603000-05:00" }

使用为 AWS Config 配置项目创建事件数据存储 AWS CLI

以下示例 AWS CLI create-event-data-store命令创建一个名为的事件数据存储库config-items-eds,用于选择 AWS Config 配置项目。要收集配置项目,请在高级事件选择器中指定 eventCategory 字段等于 ConfigurationItem

aws cloudtrail create-event-data-store \ --name config-items-eds \ --advanced-event-selectors '[ { "Name": "Select AWS Config configuration items", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["ConfigurationItem"] } ] } ]'

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE", "Name": "config-items-eds", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Select AWS Config configuration items", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "ConfigurationItem" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-07T19:03:24.277000+00:00", "UpdatedTimestamp": "2023-11-07T19:03:24.468000+00:00" }

使用为管理事件创建组织事件数据存储 AWS CLI

以下示例 AWS CLI create-event-data-store命令创建一个组织事件数据存储库,用于收集所有管理事件并将--billing-mode参数设置为FIXED_RETENTION_PRICING

aws cloudtrail create-event-data-store --name org-management-eds --organization-enabled --billing-mode FIXED_RETENTION_PRICING

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE6-d493-4914-9182-e52a7934b207", "Name": "org-management-eds", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": true, "BillingMode": "FIXED_RETENTION_PRICING", "RetentionPeriod": 2557, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-16T15:30:50.689000+00:00", "UpdatedTimestamp": "2023-11-16T15:30:50.851000+00:00" }

使用 Insights 事件创建事件数据存储 AWS CLI

要在 L CloudTrail ake 中记录 Insights 事件,您需要一个收集 Insights 事件的目标事件数据存储和一个启用 Insights 并记录管理事件的源事件数据存储。

此过程向您展示如何创建目标和源事件数据存储,然后启用 Insights 事件。

  1. 运行 aws cloudtrail create-event-data-store 命令创建收集 Insights 事件的目标事件数据存储。eventCategory 的值必须为 Insightretention-period-days替换为您希望在事件数据存储中保留事件的天数。如果 --billing-modeEXTENDABLE_RETENTION_PRICING,则有效值为介于 7 和 3653 之间的整数;如果 --billing-mode 设置为 FIXED_RETENTION_PRICING,则有效值为介于 7 和 2557 之间的整数。如果未指定--retention-period,则 CloudTrail 使用默认的保留期--billing-mode

    如果您使用 AWS Organizations 组织的管理账户登录,则如果要向委派的管理员授予对事件数据存储的访问权限,请添加--organization-enabled参数。

    aws cloudtrail create-event-data-store \ --name insights-event-data-store \ --no-multi-region-enabled \ --retention-period retention-period-days \ --advanced-event-selectors '[ { "Name": "Select Insights events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Insight"] } ] } ]'

    以下为响应示例。

    { "Name": "insights-event-data-store", "ARN": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "AdvancedEventSelectors": [ { "Name": "Select Insights events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Insight" ] } ] } ], "MultiRegionEnabled": false, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": "90", "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-05-08T15:22:33.578000+00:00", "UpdatedTimestamp": "2023-05-08T15:22:33.714000+00:00" }

    您将使用响应中的 ARN(或 ARN 的 ID 后缀)作为步骤 3 中参数 --insights-destination 的值。

  2. 请运行 aws cloudtrail create-event-data-store 命令以创建记录管理事件的源事件数据存储。默认情况下,事件数据存储会记录所有的管理事件。您无需指定任何高级事件选择器即可记录所有管理事件。retention-period-days替换为您希望在事件数据存储中保留事件的天数。如果 --billing-modeEXTENDABLE_RETENTION_PRICING,则有效值为介于 7 和 3653 之间的整数;如果 --billing-mode 设置为 FIXED_RETENTION_PRICING,则有效值为介于 7 和 2557 之间的整数。如果未指定--retention-period,则 CloudTrail 使用默认的保留期--billing-mode。如果您正在创建组织事件数据存储,请包括 --organization-enabled 参数。

    aws cloudtrail create-event-data-store --name source-event-data-store --retention-period retention-period-days

    以下为响应示例。

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE9952-4ab9-49c0-b788-f4f3EXAMPLE", "Name": "source-event-data-store", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-05-08T15:25:35.578000+00:00", "UpdatedTimestamp": "2023-05-08T15:25:35.714000+00:00" }

    您将使用响应中的 ARN(或 ARN 的 ID 后缀)作为步骤 3 中参数 --event-data-store 的值。

  3. 请运行 put-insight-selectors 命令以启用 Insights 事件。Insights 选择器值可以是 ApiCallRateInsight 和/或 ApiErrorRateInsight。对于 --event-data-store 参数,请指定记录管理事件并将启用 Insights 的源事件数据存储的 ARN(或 ARN 的 ID 后缀)。对于 --insights-destination 参数,请指定将记录 Insights 事件的目标事件数据存储的 ARN(或 ARN 的 ID 后缀)。

    aws cloudtrail put-insight-selectors --event-data-store arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE9952-4ab9-49c0-b788-f4f3EXAMPLE --insights-destination arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE --insight-selectors '[{"InsightType": "ApiCallRateInsight"},{"InsightType": "ApiErrorRateInsight"}]'

    以下结果显示为事件数据存储配置的 Insights 事件选择器。

    { "EventDataStoreARN": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE9952-4ab9-49c0-b788-f4f3EXAMPLE", "InsightsDestination": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "InsightSelectors": [ { "InsightType": "ApiErrorRateInsight" }, { "InsightType": "ApiCallRateInsight" } ] }

    首次在事件数据存储上启用 CloudTrail Insights 后,如果检测到异常活动,则最长可能需要 7 天 CloudTrail 才能交付第一个 Insights 事件。

    CloudTrail Insights 分析发生在单个区域(而不是全球区域)的管理事件。 CloudTrail Insights 事件是在生成其支持管理事件的同一区域生成的。

    对于组织事件数据存储, CloudTrail 分析来自每个成员账户的管理事件,而不是分析组织所有管理事件的聚合。

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

使用将跟踪事件导入到事件数据存储中 AWS CLI

在中 AWS CLI,您可以将跟踪事件导入到事件数据存储中。本部分中的过程演示如何通过运行 create-event-data-store 命令来创建和配置事件数据存储,然后使用 start-import 命令将事件导入该事件数据存储。有关导入跟踪事件的更多信息,包括有关注意事项和所需权限的信息,请参阅 将跟踪事件复制到事件数据存储

正在准备导入跟踪事件

在导入跟踪事件之前,请做好以下准备工作。

  • 确保您的角色具有将跟踪事件导入事件数据存储的所需权限

  • 确定您要为事件数据存储指定的 --billing-mode 值。--billing-mode 决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。

    将跟踪事件导入 CloudTrail Lake 时, CloudTrail 解压缩以 gzip(压缩)格式存储的日志。然后 CloudTrail 将日志中包含的事件复制到您的事件数据存储中。未压缩数据的大小可能大于 Amazon S3 的实际存储大小。要对未压缩数据的大小进行总体估计,将 S3 存储桶中日志的大小乘以 10。您可以使用此估算值为您的应用场景选择 --billing-mode 值。

  • 确定您要为 --retention-period 指定的值。 CloudTrail 如果事件早于指定的保留期eventTime,则不会复制该事件。

    要确定适当的保留期,请计算要复制的最早事件(以天为单位)和要将事件在事件数据存储中保留的天数之和,如以下公式所示:

    保留期限 = oldest-event-in-days+ number-days-to-retain

    例如,如果您要复制的最早事件已有 45 天,并且您想将事件在事件数据存储中再保留 45 天,则可以将保留期设置为 90 天。

  • 决定是否要使用事件数据存储来分析任何未来的事件。如果您不想摄取任何未来事件,请在创建事件数据存储时包含 --no-start-ingestion 参数。默认情况下,事件数据存储会在创建事件时开始摄取事件。

要创建事件数据存储并将跟踪事件导入该事件数据存储

  1. 运行 create-event-data-store 命令以创建新的事件数据存储。在此示例中,--retention-period 被设置为 120 是因为要复制的最早事件已有 90 天了,且我们希望将这些事件保留 30 天。之所以设置 --no-start-ingestion 参数,是因为我们不想摄取任何未来事件。在此示例中,--billing-mode 未设置,是因为我们使用的是默认值 EXTENDABLE_RETENTION_PRICING,因为我们预计摄取的事件数据少于 25TB。

    注意

    如果您正在创建事件数据存储来替换跟踪,我们建议将 --advanced-event-selectors 配置为与您的跟踪的事件选择器相匹配,以确保事件覆盖范围相同。默认情况下,事件数据存储会记录所有的管理事件。

    aws cloudtrail create-event-data-store --name import-trail-eds --retention-period 120 --no-start-ingestion

    以下为响应示例:

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEa-4357-45cd-bce5-17ec652719d9", "Name": "import-trail-eds", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 120, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-09T16:52:25.444000+00:00", "UpdatedTimestamp": "2023-11-09T16:52:25.569000+00:00" }

    初始 StatusCREATED,因此我们将运行 get-event-data-store 命令来验证摄取是否已停止。

    aws cloudtrail get-event-data-store --event-data-store eds-id

    响应显示 Status 现在为 STOPPED_INGESTION,这表明事件数据存储未摄取实时事件。

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEa-4357-45cd-bce5-17ec652719d9", "Name": "import-trail-eds", "Status": "STOPPED_INGESTION", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 120, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-09T16:52:25.444000+00:00", "UpdatedTimestamp": "2023-11-09T16:52:25.569000+00:00" }
  2. 运行 start-import 命令以将跟踪事件导入步骤 1 中创建的事件数据存储。将事件数据存储的 ARN(或 ARN 的 ID 后缀)指定为 --destinations 参数的值。对于 --start-event-time,请为要复制的最早的事件指定 eventTime,对于 --end-event-time,请指定要复制的最新事件的 eventTime。为包含您的跟踪日志的 S3 存储桶--import-source指定 S3 URI、S3 存储桶的,以及用于导入跟踪事件的角色的 ARN。 AWS 区域

    aws cloudtrail start-import \ --destinations ["arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEa-4357-45cd-bce5-17ec652719d9"] \ --start-event-time 2023-08-11T16:08:12.934000+00:00 \ --end-event-time 2023-11-09T17:08:20.705000+00:00 \ --import-source {"S3": {"S3LocationUri": "s3://aws-cloudtrail-logs-123456789012-612ff1f6/AWSLogs/123456789012/CloudTrail/","S3BucketRegion":"us-east-1","S3BucketAccessRoleArn": "arn:aws:iam::123456789012:role/service-role/CloudTrailLake-us-east-1-copy-events-eds"}}

    以下为响应示例。

    { "CreatedTimestamp": "2023-11-09T17:08:20.705000+00:00", "Destinations": [ "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEa-4357-45cd-bce5-17ec652719d9" ], "EndEventTime": "2023-11-09T17:08:20.705000+00:00", "ImportId": "EXAMPLEe-7be2-4658-9204-b38c3257fcd1", "ImportSource": { "S3": { "S3BucketAccessRoleArn": "arn:aws:iam::123456789012:role/service-role/CloudTrailLake-us-east-1-copy-events-eds", "S3BucketRegion":"us-east-1", "S3LocationUri": "s3://aws-cloudtrail-logs-123456789012-111ff1f6/AWSLogs/123456789012/CloudTrail/" } }, "ImportStatus": "INITIALIZING", "StartEventTime": "2023-08-11T16:08:12.934000+00:00", "UpdatedTimestamp": "2023-11-09T17:08:20.806000+00:00" }
  3. 运行 get-import 命令以获取有关导入的信息。

    aws cloudtrail get-import --import-id import-id

    以下为响应示例。

    { "ImportId": "EXAMPLEe-7be2-4658-9204-b38c3EXAMPLE", "Destinations": [ "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEa-4357-45cd-bce5-17ec652719d9" ], "ImportSource": { "S3": { "S3LocationUri": "s3://aws-cloudtrail-logs-123456789012-111ff1f6/AWSLogs/123456789012/CloudTrail/", "S3BucketRegion":"us-east-1", "S3BucketAccessRoleArn": "arn:aws:iam::123456789012:role/service-role/CloudTrailLake-us-east-1-copy-events-eds" } }, "StartEventTime": "2023-08-11T16:08:12.934000+00:00", "EndEventTime": "2023-11-09T17:08:20.705000+00:00", "ImportStatus": "COMPLETED", "CreatedTimestamp": "2023-11-09T17:08:20.705000+00:00", "ImportStatistics": { "PrefixesFound": 1548, "PrefixesCompleted": 1548, "FilesCompleted": 92845, "EventsCompleted": 577249, "FailedEntries": 0 } }

    如果没有故障,导入完成时 ImportStatus 显示为 COMPLETED,如果出现故障,则会显示 FAILED

    如果导入具有 FailedEntries,则可以运行 list-import-failures 命令以返回失败列表。

    aws cloudtrail list-import-failures --import-id import-id

    要重试失败的导入,请仅使用 --import-id 参数运行 start-import 命令。重试导入时,将在出现故障的位置 CloudTrail 恢复导入。

    aws cloudtrail start-import --import-id import-id

使用获取事件数据存储 AWS CLI

以下示例 AWS CLI get-event-data-store命令返回有关由必需--event-data-store参数指定的事件数据存储的信息,该参数接受 ARN 或 ARN 的 ID 后缀。

aws cloudtrail get-event-data-store --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

以下为响应示例。创建时间和上次更新时间采用 timestamp 格式。

{ "EventDataStoreARN": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "s3-data-events-eds", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Log DeleteObject API calls for a specific S3 bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "eventName", "Equals": [ "DeleteObject" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:aws:s3:::bucketName" ] }, { "Field": "readOnly", "Equals": [ "false" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "FIXED_RETENTION_PRICING", "RetentionPeriod": 2557, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-09T22:20:36.344000+00:00", "UpdatedTimestamp": "2023-11-09T22:20:36.476000+00:00" }

列出账户中存储的所有事件数据 AWS CLI

以下示例 AWS CLI list-event-data-stores命令返回有关当前区域中账户中存储的所有事件数据的信息。可选参数包括 --max-results,以指定希望在单个页面上通过命令返回的最大结果数。如果结果数超过指定的 --max-results 值,请再次运行命令,添加返回的 NextToken 值来获取下一页的结果。

aws cloudtrail list-event-data-stores

以下为响应示例。

{ "EventDataStores": [ { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE7-cad6-4357-a84b-318f9868e969", "Name": "management-events-eds" }, { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE6-88e1-43b7-b066-9c046b4fd47a", "Name": "config-items-eds" }, { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEf-b314-4c85-964e-3e43b1e8c3b4", "Name": "s3-data-events" } ] }

使用更新事件数据存储 AWS CLI

以下示例演示如何更新事件数据存储。

使用更新计费模式 AWS CLI

事件数据存储的 --billing-mode 决定了摄取和存储事件的成本,以及事件数据存储的默认和最长保留期。如果事件数据存储的 --billing-mode 设置为 FIXED_RETENTION_PRICING,则可以将该值更改为 EXTENDABLE_RETENTION_PRICING。如果您的事件数据存储每月摄取的事件数据少于 25TB,并且您希望采用最多 3653 天的灵活保留期,则通常建议使用 EXTENDABLE_RETENTION_PRICING。有关定价的信息,请参阅 AWS CloudTrail 定价管理 CloudTrail 湖泊成本

注意

您不能将 --billing-mode 值从 EXTENDABLE_RETENTION_PRICING 更改为 FIXED_RETENTION_PRICING。如果事件数据存储的计费模式设置为 EXTENDABLE_RETENTION_PRICING,且您想改用 FIXED_RETENTION_PRICING,则可以停止对事件数据存储的摄取,并创建一个使用 FIXED_RETENTION_PRICING 的新事件数据存储。

以下示例 AWS CLI update-event-data-store命令将事件数据存储--billing-mode的命令从更改FIXED_RETENTION_PRICINGEXTENDABLE_RETENTION_PRICING。必要的 --event-data-store 参数值是 ARN(或 ARN 的 ID 后缀),且是必填项;其它参数是可选项。

aws cloudtrail update-event-data-store \ --region us-east-1 \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE \ --billing-mode EXTENDABLE_RETENTION_PRICING

以下为响应示例。

{ "EventDataStoreArn": "event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "management-events-eds", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 2557, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

更新保留模式,启用终止保护,然后 AWS KMS key 使用指定 AWS CLI

以下示例 AWS CLI update-event-data-store命令更新事件数据存储以将其保留期更改为 100 天,并启用终止保护。必要的 --event-data-store 参数值是 ARN(或 ARN 的 ID 后缀),且是必填项;其它参数是可选项。在此示例中,添加了 --retention-period 参数,以将保留期限更改为 100 天。或者,您可以选择启用 AWS Key Management Service 加密并 AWS KMS key 通过在命令中添加并--kms-key-id指定 KMS 密钥 ARN 作为值来指定。 --termination-protection-enabled添加是为了在未启用终止保护的事件数据存储上启用终止保护。

AWS 无法更新记录外部事件的事件数据存储以记录 AWS 事件。同样,记录 AWS 事件的事件数据存储不能更新为从外部记录事件 AWS。

注意

如果您缩短了事件数据存储的保留期,则 CloudTrail 会删除所有保留期eventTime早于新保留期的事件。例如,如果之前的保留期为 365 天,而您将其缩短为 100 天,则 CloudTrail 会移除eventTime超过 100 天的事件。

aws cloudtrail update-event-data-store \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE \ --retention-period 100 \ --kms-key-id "arn:aws:kms:us-east-1:0123456789:alias/KMS_key_alias" \ --termination-protection-enabled

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE", "Name": "my-event-data-store", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Select all S3 data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:aws:s3" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 100, "KmsKeyId": "arn:aws:kms:us-east-1:0123456789:alias/KMS_key_alias", "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

使用禁用终止保护 AWS CLI

默认情况下,事件数据存储已启用终止保护,以防止事件数据存储被意外删除。当终止保护启用时,您无法删除事件数据存储。如果要删除事件数据存储,您必须先禁用终止保护。

以下示例 AWS CLI update-event-data-store命令通过传递--no-termination-protection-enabled参数来禁用终止保护。

aws cloudtrail update-event-data-store \ --region us-east-1 \ --no-termination-protection-enabled \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

以下为响应示例。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "management-events-eds", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Default management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": false, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

使用停止在事件数据存储上进行提取 AWS CLI

以下示例 AWS CLI stop-event-data-store-ingestion命令阻止事件数据存储接收事件。要停止摄取,事件数据存储 Status 必须是 ENABLED,并且 eventCategory 必须是 ManagementDataConfigurationItem。事件数据存储由 --event-data-store 指定,它接受事件数据存储 ARN 或 ARN 的 ID 后缀。运行 stop-event-data-store-ingestion 后,事件数据存储的状态将更改为 STOPPED_INGESTION

处于 STOPPED_INGESTION 状态时,事件数据存储计入您的账户最多十个事件数据存储的限额内。

aws cloudtrail stop-event-data-store-ingestion --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

如果成功执行操作,则没有响应。

使用开始在事件数据存储上进行提取 AWS CLI

以下示例 AWS CLI start-event-data-store-ingestion命令在事件数据存储上启动事件摄取。要开始摄取,事件数据存储 Status 必须是 STOPPED_INGESTION,并且 eventCategory 必须是 ManagementDataConfigurationItem。事件数据存储由 --event-data-store 指定,它接受事件数据存储 ARN 或 ARN 的 ID 后缀。运行 start-event-data-store-ingestion 后,事件数据存储的状态将更改为 ENABLED

aws cloudtrail start-event-data-store-ingestion --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

如果成功执行操作,则没有响应。

在事件数据存储上启用联合身份验证

要启用联合身份验证,请运行 aws cloudtrail enable-federation 命令,以提供所需的 --event-data-store--role 参数。对于 --event-data-store,请提供事件数据存储 ARN(或 ARN 的 ID 后缀)。对于 --role,请提供您的联合身份验证角色的 ARN。该角色必须存在于您的账户中,并提供所需的最低权限

aws cloudtrail enable-federation --event-data-store arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id --role arn:aws:iam::account-id:role/federation-role-name

此示例说明委托管理员如何通过在管理账户中指定事件数据存储的 ARN 和在委托管理员账户中指定联合身份验证角色的 ARN 来在组织事件数据存储上启用联合身份验证。

aws cloudtrail enable-federation --event-data-store arn:aws:cloudtrail:region:management-account-id:eventdatastore/eds-id --role arn:aws:iam::delegated-administrator-account-id:role/federation-role-name

在事件数据存储上禁用联合身份验证

要在事件数据存储上禁用联合身份验证,请运行 aws cloudtrail disable-federation 命令。事件数据存储由 --event-data-store 指定,它接受事件数据存储 ARN 或 ARN 的 ID 后缀。

aws cloudtrail disable-federation --event-data-store arn:aws:cloudtrail:region:account-id:eventdatastore/eds-id
注意

如果这是组织事件数据存储,则使用管理账户的账户 ID。

使用删除事件数据存储 AWS CLI

以下示例 AWS CLI delete-event-data-store 命令禁用 --event-data-store 指定的事件数据存储,它接受事件数据存储 ARN 或 ARN 的 ID 后缀。运行 delete-event-data-store 之后,事件数据存储的最终状态为 PENDING_DELETION,且事件数据存储将在 7 天等待期后自动删除。

在事件数据存储上运行 delete-event-data-store 之后,您无法在使用已禁用的数据存储的查询上运行 list-queriesdescribe-queryget-query-results。处于等待删除状态时,事件数据存储计入您的账户最多十个事件数据存储的限额内。

注意

如果设置了 --termination-protection-enabled 或其 FederationStatusENABLED,则无法删除事件数据存储。

aws cloudtrail delete-event-data-store --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

如果成功执行操作,则没有响应。

使用恢复事件数据存储 AWS CLI

以下示例 AWS CLI restore-event-data-store 命令恢复待删除的事件数据存储。事件数据存储由 --event-data-store 指定,它接受事件数据存储 ARN 或 ARN 的 ID 后缀。您只能在删除后的七天等待期内恢复被删除的事件数据存储。

aws cloudtrail restore-event-data-store --event-data-store EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

响应包括有关事件数据存储的信息,包括其 ARN、高级事件选择器以及还原状态。