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

使用 Amazon CLI 管理事件数据存储

本节介绍了您可以运行的其他几个命令,以获取有关事件数据存储的信息、启动和停止事件数据存储上的引入以及启用和禁用事件数据存储上的联合

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

以下示例 Amazon 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:::amzn-s3-demo-bucket" ] }, { "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" }

使用 Amazon CLI 列出账户中的所有事件数据存储

以下示例 Amazon 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" } ] }

添加资源标签键和 IAM 全局条件键,并扩展事件大小

运行 Amazon CLI put-event-configuration 命令可扩展最大事件大小,并添加最多 50 个资源标签键和 50 个 IAM 全局条件键来提供有关事件的更多元数据。

put-event-configuration 命令接受以下参数:

  • --event-data-store – 指定事件数据存储的 ARN 或 ARN 的 ID 后缀。此参数为必需参数。

  • --max-event-size – 设置为 Large 可将最大事件大小设置为 1 MB。默认情况下,该值为 Standard,这指定最大事件大小 256KB。

    注意

    要添加资源标签键或 IAM 全局条件键,必须将事件大小设置为 Large,以确保所有添加的键都包含在事件中。

  • --context-key-selectors – 指定要包含在事件数据存储收集的事件中的键的类型。您可以包含资源标签键和 IAM 全局条件键。有关添加的资源标签键和 IAM 全局条件键的信息显示在事件的 eventContext 字段中。有关更多信息,请参阅 通过添加资源标签键和 IAM 全局条件键来丰富 CloudTrail 事件

    • Type 设置为 TagContext 可传入最多包含 50 个资源标签键的数组。如果您添加资源标签,CloudTrail 事件将包含与 API 调用中涉及的资源关联的所选标签键。与已删除资源相关的 API 事件将没有资源标签。

    • Type 设置为 RequestContext 可传入最多包含 50 个 IAM 全局条件键的数组。如果您添加 IAM 全局条件键,CloudTrail 事件将包含有关在授权过程中评估的所选条件键的信息,包括有关主体、会话、网络和请求本身的更多详细信息。

以下示例将最大事件大小设置为 Large,并添加了两个资源标签键 myTagKey1myTagKey2

aws cloudtrail put-event-configuration \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE \ --max-event-size Large \ --context-key-selectors '[{"Type":"TagContext", "Equals":["myTagKey1","myTagKey2"]}]'

下一个示例将最大事件大小设置为 Large,并添加了 IAM 全局条件键 (aws:MultiFactorAuthAge)。

aws cloudtrail put-event-configuration \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE \ --max-event-size Large \ --context-key-selectors '[{"Type":"RequestContext", "Equals":["aws:MultiFactorAuthAge"]}]'

最后一个示例移除了所有资源标签键和 IAM 全局条件键,并将最大事件大小设置为 Standard

aws cloudtrail put-event-configuration \ --event-data-store arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE \ --max-event-size Standard \ --context-key-selectors

获取事件数据存储的事件配置

运行 Amazon CLI get-event-configuration 命令可返回收集 CloudTrail 事件的事件数据存储的事件配置。此命令会返回最大事件大小,并列出 CloudTrail 事件中包含的资源标签键和 IAM 全局条件键(如果有)。

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

使用 Amazon CLI 获取事件数据存储的基于资源的策略。

以下示例会对组织事件数据存储运行 get-resource-policy 命令。

aws cloudtrail get-resource-policy --resource-arn arn:aws:cloudtrail:us-east-1:888888888888:eventdatastore/example6-d493-4914-9182-e52a7934b207

由于该命令是对组织事件数据存储运行的,因此输出将显示提供的基于资源的策略以及为委派管理员账户生成的 DelegatedAdminResourcePolicy

使用 Amazon CLI 将基于资源的策略附加到事件数据存储

要在手动或计划刷新期间对控制面板运行查询,您需要将基于资源的策略附加到与控制面板上的小组件关联的每个事件数据存储。这样,CloudTrail Lake 就可以代表您运行查询。有关基于资源的策略的更多信息,请参阅 示例:允许 CloudTrail 运行查询以刷新控制面板

以下示例将基于资源的策略附加到事件数据存储,从而允许 CloudTrail 在控制面板刷新时对控制面板运行查询。该策略是在单独的文件 policy.json 中创建的,其中包含以下示例策略语句:

JSON
{ "Version":"2012-10-17", "Statement": [{ "Sid": "EDSPolicy", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Resource": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/event_data_store_ID", "Action": "cloudtrail:StartQuery", "Condition": { "StringEquals": { "AWS:SourceArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "AWS:SourceAccount": "123456789012" } } } ] }

请将 123456789012 替换为您的账户 ID,将 arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/event_data_store_ID 替换为 CloudTrail 将运行查询的事件数据存储的 ARN,并将 arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE 替换为控制面板的 ARN。

aws cloudtrail put-resource-policy \ --resource-arn eds-arn \ --resource-policy file://policy.json

下面是响应示例。

{ "ResourceArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE", "ResourcePolicy": "policy-statement" }

有关其他策略示例,请参阅事件数据存储的基于资源的策略示例

使用 Amazon CLI 删除附加到事件数据存储的基于资源的策略

以下示例将删除附加到事件数据存储的基于资源的策略。请将 eds-arn 替换为事件数据存储的 ARN。

aws cloudtrail delete-resource-policy --resource-arn eds-arn

如果成功,此命令不会产生任何输出。

使用 Amazon CLI 停止在事件数据存储上摄取

以下示例 Amazon 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

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

使用 Amazon CLI 开始在事件数据存储上摄取

以下示例 Amazon 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。

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

以下示例 Amazon 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、高级事件选择器以及还原状态。