记录数据事件 - AWS CloudTrail

记录数据事件

此部分描述了如何使用 CloudTrail 控制台AWS CLI 记录数据事件。

默认情况下,跟踪和事件数据存储不记录数据事件。记录数据事件将收取额外费用。有关更多信息,请参阅 AWS CloudTrail 定价

数据事件提供有关对在资源上或资源内执行的资源操作的信息。这些也称为数据层面操作。数据事件通常是高容量活动。

示例数据事件包括:

您可以使用高级事件选择器来创建细粒度选择器,通过仅为您的使用场景记录感兴趣的特定事件来帮助控制成本。例如,您可以通过在 eventName 字段上添加筛选条件,使用高级事件选择器来记录特定 API 调用。有关更多信息,请参阅 使用高级事件选择器筛选数据事件

注意

Amazon EventBridge 中提供由跟踪记录的事件。例如,如果您选择记录 S3 对象的数据事件而非管理事件,则您的跟踪将仅处理和记录指定 S3 对象的数据事件。Amazon EventBridge 中提供这些 S3 对象的数据事件。有关更多信息,请参阅《Amazon EventBridge 用户指南》中的 Events from AWS services

数据事件

下表显示可用于跟踪和事件数据存储的数据事件类型。数据事件类型(控制台)列显示控制台中的相应选择。resources.type 值列显示您指定的 resources.type 值,以使用 AWS CLI 或 CloudTrail API 将该类型的数据事件包含在跟踪或事件数据存储中。

对于跟踪,您可以使用基本或高级事件选择器来记录通用存储桶、Lambda 函数和 DynamoDB 表中的 Amazon S3 对象的数据事件(显示在表的前三行中)。您只能使用高级事件选择器来记录其余行中显示的数据事件类型。

对于事件数据存储,只能使用高级事件选择器来包含数据事件。

AWS 服务 描述 数据事件类型(控制台) resources.type 值
Amazon DynamoDB

表上的 Amazon DynamoDB 项目级 API 活动(例如,PutItemDeleteItemUpdateItem API 操作)。

注意

对于启用了流的表,数据事件中的 resources 字段同时包含 AWS::DynamoDB::StreamAWS::DynamoDB::Table。如果您为 resources.type 指定 AWS::DynamoDB::Table,则原定设置情况下,它将同时记录 DynamoDB 表和 DynamoDB 流事件。要排除流事件,请对 eventName 字段添加筛选条件。

DynamoDB

AWS::DynamoDB::Table

AWS Lambda

AWS Lambda 函数执行活动 (Invoke API)。

Lambda AWS::Lambda::Function
Amazon S3

通用存储桶中对象上的 Amazon S3 对象级 API 活动(例如 GetObjectDeleteObjectPutObject API 操作)。

S3 AWS::S3::Object
AWS AppConfig

用于配置操作的 AWS AppConfig API 活动,例如调用 StartConfigurationSessionGetLatestConfiguration

AWS AppConfig AWS::AppConfig::Configuration
AWS B2B Data Interchange

用于转换器操作的 B2B 数据交换 API 活动,例如对 GetTransformerJobStartTransformerJob 的调用。

B2B 数据交换 AWS::B2BI::Transformer
Amazon Bedrock 代理别名上的 Amazon Bedrock API 活动 Bedrock 代理别名 AWS::Bedrock::AgentAlias
Amazon Bedrock 流别名上的 Amazon Bedrock API 活动。 Bedrock 流别名 AWS::Bedrock::FlowAlias
Amazon Bedrock 护栏上的 Amazon Bedrock API 活动。 Bedrock 护栏 AWS::Bedrock::Guardrail
Amazon Bedrock 知识库上的 Amazon Bedrock API 活动 Bedrock 知识库 AWS::Bedrock::KnowledgeBase
Amazon Bedrock 模型上的 Amazon Bedrock API 活动。 Bedrock 模型 AWS::Bedrock::Model
Amazon CloudFront

KeyValueStore 上的 CloudFront API 活动。

CloudFront KeyValueStore AWS::CloudFront::KeyValueStore
AWS Cloud Map 命名空间上的 AWS Cloud Map API 活动 AWS Cloud Map 命名空间 AWS::ServiceDiscovery::Namespace
AWS Cloud Map 服务上的 AWS Cloud Map API 活动 AWS Cloud Map 服务 AWS::ServiceDiscovery::Service
AWS CloudTrail

针对 CloudTrail Lake 通道 的 CloudTrail PutAuditEvents 活动,用于记录来自 AWS 外部的事件。

CloudTrail 通道 AWS::CloudTrail::Channel
Amazon CloudWatch

指标上的 Amazon CloudWatch API 活动

CloudWatch 指标 AWS::CloudWatch::Metric
Amazon CloudWatch RUM

应用程序监视器上的 Amazon CloudWatch RUM API 活动。

RUM 应用程序监视器 AWS::RUM::AppMonitor
Amazon CodeWhisperer 针对自定义的 Amazon CodeWhisperer API 活动。 CodeWhisperer 自定义 AWS::CodeWhisperer::Customization
Amazon CodeWhisperer 针对个人资料的 Amazon CodeWhisperer API 活动。 CodeWhisperer AWS::CodeWhisperer::Profile
Amazon Cognito

针对 Amazon Cognito 身份池的 Amazon Cognito API 活动。

Cognito 身份池 AWS::Cognito::IdentityPool
AWS Data Exchange

资产上的 AWS Data Exchange API 活动。

Data Exchange 资产

AWS::DataExchange::Asset

AWS Deadline Cloud

实例集上的 Deadline Cloud API 活动。

Deadline Cloud 实例集

AWS::Deadline::Fleet

AWS Deadline Cloud

作业上的 Deadline Cloud API 活动。

Deadline Cloud 作业

AWS::Deadline::Job

AWS Deadline Cloud

队列上的 Deadline Cloud API 活动。

Deadline Cloud 队列

AWS::Deadline::Queue

AWS Deadline Cloud

工作程序上的 Deadline Cloud API 活动。

Deadline Cloud 工作程序

AWS::Deadline::Worker

Amazon DynamoDB

针对流的 Amazon DynamoDB API 活动

DynamoDB Streams AWS::DynamoDB::Stream
AWS 最终用户消息 SMS 发起身份上的 AWS 最终用户消息 SMS API 活动。 SMS 语音发起身份 AWS::SMSVoice::OriginationIdentity
AWS 最终用户消息社交 电话号码 ID 上的 AWS 最终用户消息社交 API 活动。 社交消息电话号码 ID AWS::SocialMessaging::PhoneNumberId
Amazon Elastic Block Store

Amazon Elastic Block Store (EBS) 直接 API,例如 Amazon EBS 快照上的 PutSnapshotBlockGetSnapshotBlockListChangedBlocks

Amazon EBS 直接 API AWS::EC2::Snapshot
Amazon EMR 预写日志工作区上的 Amazon EMR API 活动 EMR 预写日志工作空间 AWS::EMRWAL::Workspace
Amazon FinSpace

针对环境的 Amazon FinSpace API 活动

FinSpace AWS::FinSpace::Environment
AWS Glue

针对 Lake Formation 创建的表的 AWS Glue API 活动

Lake Formation AWS::Glue::Table
Amazon GuardDuty

检测器的 Amazon GuardDuty API 活动。

GuardDuty 检测器 AWS::GuardDuty::Detector
AWS HealthImaging

针对数据存储的 AWS HealthImaging API 活动。

医学成像数据存储 AWS::MedicalImaging::Datastore
AWS IoT

证书上的 AWS IoT API 活动

IoT 证书 AWS::IoT::Certificate
AWS IoT

事物上的 AWS IoT API 活动

IoT 事物 AWS::IoT::Thing
AWS IoT Greengrass Version 2

组件版本上来自 Greengrass 核心设备的 Greengrass API 活动

注意

Greengrass 不会记录访问被拒绝事件。

IoT Greengrass 组件版本 AWS::GreengrassV2::ComponentVersion
AWS IoT Greengrass Version 2

部署上来自 Greengrass 核心设备的 Greengrass API 活动

注意

Greengrass 不会记录访问被拒绝事件。

IoT Greengrass 部署 AWS::GreengrassV2::Deployment
AWS IoT SiteWise

资产上的 IoT SiteWise API 活动

IoT SiteWise 资产 AWS::IoTSiteWise::Asset
AWS IoT SiteWise

时间序列上的 IoT SiteWise API 活动

IoT SiteWise 时间序列 AWS::IoTSiteWise::TimeSeries
AWS IoT TwinMaker

实体上的 IoT TwinMaker API 活动。

IoT TwinMaker 实体 AWS::IoTTwinMaker::Entity
AWS IoT TwinMaker

工作区上的 IoT TwinMaker API 活动。

IoT TwinMaker 工作区 AWS::IoTTwinMaker::Workspace
Amazon Kendra Intelligent Ranking

针对重新评分执行计划的 Amazon Kendra Intelligent Ranking API 活动。

Kendra 排名 AWS::KendraRanking::ExecutionPlan
Amazon Keyspaces(Apache Cassandra 兼容) 表上的 Amazon Keyspaces API 活动 Cassandra 表 AWS::Cassandra::Table
Amazon Kinesis Data Streams 上的 Kinesis Data Streams API 活动。 Kinesis 流 AWS::Kinesis::Stream
Amazon Kinesis Data Streams 流使用者的上的 Kinesis Data Streams API 活动。 Kinesis 流使用者 AWS::Kinesis::StreamConsumer
Amazon Kinesis Video Streams 视频流上的 Kinesis Video Streams API 活动,例如调用 GetMediaPutMedia Kinesis 视频流 AWS::KinesisVideo::Stream
Amazon Machine Learning 机器学习模型上的机器学习 API 活动。 机器学习 MlModel AWS::MachineLearning::MlModel
Amazon Managed Blockchain

针对网络的 Amazon Managed Blockchain API 活动。

托管区块链网络 AWS::ManagedBlockchain::Network
Amazon Managed Blockchain

针对 Ethereum 节点的 Amazon Managed Blockchain JSON-RPC 调用,如 eth_getBalanceeth_getBlockByNumber

托管区块链 AWS::ManagedBlockchain::Node
Amazon Neptune 图形

Neptune Graph 上的数据 API 活动,例如查询、算法或向量搜索。

Neptune 图形 AWS::NeptuneGraph::Graph
Amazon One Enterprise

UKey 上的 Amazon One Enterprise API 活动。

Amazon One uKey AWS::One::UKey
Amazon One Enterprise

用户上的 Amazon One Enterprise API 活动。

Amazon One 用户 AWS::One::User
AWS Payment Cryptography 别名上的 AWS Payment Cryptography API 活动。 Payment Cryptography 别名 AWS::PaymentCryptography::Alias
AWS Payment Cryptography 密钥上的 AWS Payment Cryptography API 活动。 Payment Cryptography 密钥 AWS::PaymentCryptography::Key
AWS Private CA

AWS Private CA Connector for Active Directory API 活动。

适用于 Active Directory 的 AWS Private CA 连接器 AWS::PCAConnectorAD::Connector
AWS Private CA

用于 SCEP API 活动的 AWS Private CA 连接器。

AWS Private CA Connector for SCEP AWS::PCAConnectorSCEP::Connector
Amazon Q 应用程序构建器

Amazon Q 应用程序构建器上的数据 API 活动。

Amazon Q 应用程序构建器 AWS::QApps:QApp
Amazon Q Business

应用程序上的 Amazon Q Business API 活动

Amazon Q Business 应用程序 AWS::QBusiness::Application
Amazon Q Business

数据来源上的 Amazon Q Business API 活动

Amazon Q Business 数据来源 AWS::QBusiness::DataSource
Amazon Q Business

索引上的 Amazon Q Business API 活动

Amazon Q Business 索引 AWS::QBusiness::Index
Amazon Q Business

Web 体验上的 Amazon Q Business API 活动

Amazon Q Business Web 体验 AWS::QBusiness::WebExperience
Amazon RDS

数据库集群上的 Amazon RDS API 活动

RDS 数据 API - 数据库集群 AWS::RDS::DBCluster
Amazon S3

接入点上的 Amazon S3 API 活动

S3 接入点 AWS::S3::AccessPoint
Amazon S3

目录存储桶中对象上的 Amazon S3 对象级 API 活动(例如 GetObjectDeleteObjectPutObject API 操作)。

S3 Express AWS::S3Express::Object
Amazon S3

Amazon S3 对象 Lambda 接入点 API 活动,例如调用 CompleteMultipartUploadGetObject

S3 对象 Lambda AWS::S3ObjectLambda::AccessPoint
Amazon S3 on Outposts

Amazon S3 on Outposts 对象级别 API 活动。

S3 Outposts AWS::S3Outposts::Object
Amazon SageMaker 针对端点的 Amazon SageMaker InvokeEndpointWithResponseStream 活动。 SageMaker 端点 AWS::SageMaker::Endpoint
Amazon SageMaker

针对特征存放区的 Amazon SageMaker API 活动。

SageMaker 特征存放区 AWS::SageMaker::FeatureGroup
Amazon SageMaker

针对实验试用组件的 Amazon SageMaker API 活动。

SageMaker 指标实验试验组件 AWS::SageMaker::ExperimentTrialComponent
Amazon SNS

针对平台端点的 Amazon SNS Publish API 操作。

SNS 平台端点 AWS::SNS::PlatformEndpoint
Amazon SNS

针对主题的 Amazon SNS PublishPublishBatch API 操作。

SNS 主题 AWS::SNS::Topic
Amazon SQS

消息上的 Amazon SQS API 活动

SQS AWS::SQS::Queue
AWS Step Functions

状态机上的 Step Functions API 活动

Step Functions 状态机 AWS::StepFunctions::StateMachine
AWS Supply Chain

实例上的 AWS Supply Chain API 活动。

供应链 AWS::SCN::Instance
Amazon SWF

上的 Amazon SWF API 活动

SWF 域 AWS::SWF::Domain
AWS Systems Manager 控制通道上的 Systems Manager API 活动 Systems Manager (系统管理员) AWS::SSMMessages::ControlChannel
AWS Systems Manager 托管节点上的 Systems Manager API 活动 Systems Manager 托管式节点 AWS::SSM::ManagedNode
Amazon Timestream 针对数据库的 Amazon Timestream Query API 活动。 Timestream 数据库 AWS::Timestream::Database
Amazon Timestream 针对表的 Amazon Timestream Query API 活动。 Timestream 表 AWS::Timestream::Table
Amazon Verified Permissions

针对策略存储的 Amazon Verified Permissions API 活动。

Amazon Verified Permissions AWS::VerifiedPermissions::PolicyStore
Amazon WorkSpaces 瘦客户端 设备上的 WorkSpaces 瘦客户端 API 活动。 瘦客户端设备 AWS::ThinClient::Device
Amazon WorkSpaces 瘦客户端 环境上的 WorkSpaces 瘦客户端 API 活动。 瘦客户端环境 AWS::ThinClient::Environment
AWS X-Ray

跟踪X-Ray API 活动

X-Ray 跟踪 AWS::XRay::Trace

要记录 CloudTrail 数据事件,您必须明确添加要收集活动的每种资源类型。有关更多信息,请参阅 使用 CloudTrail 控制台创建跟踪使用控制台为 CloudTrail 事件创建事件数据存储

在单区域跟踪或事件数据存储上,您只能为可在该区域中访问的资源记录数据事件。尽管 S3 存储桶是全球性的,但 AWS Lambda 函数和 DynamoDB 表是区域性的。

记录数据事件将收取额外费用。有关 CloudTrail 定价的信息,请参阅 AWS CloudTrail 定价

示例:记录 Simple Storage Service(Amazon S3)对象的数据事件

记录一个 S3 存储桶中的所有 S3 对象的数据事件

下面的示例演示在为一个名为 amzn-s3-demo-bucket 的 S3 桶中的所有数据事件配置日志记录时日志记录是如何工作的。在此示例中,CloudTrail 用户指定了一个空前缀,以及用于记录 Read(读取)和 Write(写入)数据事件的选项。

  1. 用户将对象上传到 amzn-s3-demo-bucket

  2. PutObject API 操作是 Simple Storage Service(Amazon S3)对象级别的 API。它在 CloudTrail 中记录为数据事件。由于 CloudTrail 用户指定带空前缀的 S3 桶,因此将记录该存储桶中的任何对象上发生的事件。跟踪或事件数据存储将处理和记录事件。

  3. 另一个用户将对象上传到 amzn-s3-demo-bucket2

  4. PutObject API 操作发生在不是为跟踪或事件数据存储指定的 S3 存储桶中的某个对象上。跟踪或事件数据存储不会记录事件。

记录特定 S3 对象的数据事件

下面的示例演示在为特定 S3 对象配置跟踪或事件数据存储以记录事件时日志记录的工作方式。在此示例中,CloudTrail 用户指定一个名为 amzn-s3-demo-bucket3 的 S3 存储桶,前缀为 my-images,并选择只记录写入数据事件的选项。

  1. 一个用户在存储桶中检测到一个以 my-images 前缀开头的对象,例如 arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg

  2. DeleteObject API 操作是 Simple Storage Service(Amazon S3)对象级别的 API。它在 CloudTrail 中记录为 Write(写入)数据事件。事件发生在与跟踪或事件数据存储中指定的 S3 存储桶和前缀匹配的对象上。跟踪或事件数据存储将处理和记录事件。

  3. 另一个用户删除了 S3 存储桶中一个带不同前缀的对象,例如 arn:aws:s3:::amzn-s3-demo-bucket3/my-videos/example.avi

  4. 事件发生在与跟踪或事件数据存储中指定的前缀不匹配的对象上。跟踪或事件数据存储不会记录事件。

  5. 一个用户对对象 arn:aws:s3:::amzn-s3-demo-bucket3/my-images/example.jpg 调用 GetObject API 操作。

  6. 虽然事件发生在跟踪或事件数据存储中指定的存储桶和前缀上,但 GetObject 是读取类型的 Amazon S3 对象级别 API。它在 CloudTrail 中记录为读取数据事件,而跟踪或事件数据存储未配置为记录读取事件。跟踪或事件数据存储不会记录事件。

注意

对于跟踪,如果记录特定 Amazon S3 存储桶的数据事件,建议不要使用将记录其数据事件的 Amazon S3 存储桶来接收在数据事件部分为跟踪指定的日志文件。使用相同的 Simple Storage Service(Amazon S3)存储桶会导致您的跟踪在日志文件每次传输到 Simple Storage Service(Amazon S3)存储桶时都记录数据事件。日志文件是按时间间隔传输的聚合事件,因此,事件与日志文件的比率不是 1:1;事件将记录到下一个日志文件中。例如,当 CloudTrail 传送日志时,PutObject 事件会发生在 S3 存储桶上。如果还在数据事件部分中指定了 S3 存储桶,跟踪将处理 PutObject 事件并将其记录为数据事件。该操作是另一个 PutObject 事件,并且跟踪将重新处理和记录此事件。

为避免记录您用于接收日志文件的 Simple Storage Service(Amazon S3)存储桶的数据事件(如果您将跟踪配置为记录 AWS 账户中的所有 Simple Storage Service(Amazon S3)数据事件),请考虑将日志文件传输到属于其他 AWS 账户的 Simple Storage Service(Amazon S3)存储桶。有关更多信息,请参阅 从多个账户接收 CloudTrail 日志文件

记录其他 AWS 账户中的 S3 对象的数据事件

在将跟踪配置为记录数据事件时,您还可以指定属于其他 AWS 账户的 S3 对象。当事件发生在指定对象上时,CloudTrail 将评估事件是否与每个账户中的任何跟踪记录匹配。如果事件与某个跟踪设置匹配,则跟踪将处理并记录该账户的事件。通常,API 调用者和资源所有者都可以接收事件。

如果您拥有一个 S3 对象并且在跟踪中指定此对象,则您的跟踪将记录在您的账户中的对象上发生的事件。由于您拥有该对象,因此您的跟踪还将在其他账户调用该对象时记录事件。

如果您在跟踪中指定一个 S3 对象,并且其他账户拥有此对象,则您的跟踪仅记录在您的账户中的此对象上发生的事件。您的跟踪不会记录其他账户中发生的事件。

示例:记录两个 AWS 账户的 Simple Storage Service(Amazon S3)对象的数据事件

以下示例说明两个 AWS 账户如何配置 CloudTrail 以记录同一 S3 对象的事件。

  1. 在您的账户中,您希望您的跟踪记录名为 amzn-s3-demo-bucket 的 S3 存储桶中所有对象的数据事件。通过指定带空对象前缀的 S3 存储桶来配置跟踪。

  2. Bob 拥有一个单独的账户,该账户已获得对 S3 存储桶的访问权限。Bob 还希望记录同一 S3 存储桶中所有对象的数据事件。对于其跟踪,他配置了跟踪并指定带空对象前缀的同一 S3 存储桶。

  3. Bob 使用 PutObject API 操作将对象上传到 S3 存储桶。

  4. 此事件在他的账户中发生,并且与他的跟踪设置匹配。Bob 的跟踪将处理和记录该事件。

  5. 由于您拥有 S3 存储桶并且事件与您的跟踪设置匹配,因此您的跟踪也将处理和记录同一事件。因为现在有两个事件副本(一个记录在 Bob 的跟踪中,一个记录在您的跟踪中),所以 CloudTrail 对数据事件的两个副本收取费用。

  6. 您将一个对象上传到 S3 存储桶。

  7. 此事件在您的账户中发生并且与您的跟踪设置匹配。您的跟踪将处理和记录此事件。

  8. 由于事件未在 Bob 的账户中发生,并且他不拥有 S3 存储桶,因此他的跟踪不会记录事件。CloudTrail 仅针对此数据事件的一个副本收费。

示例:记录所有存储桶的数据事件,包括两个 AWS 账户使用的 S3 存储桶

以下示例显示对收集 AWS 账户中的数据事件的跟踪记录启用了 Select all S3 buckets in your account(选择您账户中的所有 S3 存储桶)时的日志记录行为。

  1. 在您的账户中,您希望您的跟踪记录所有 S3 存储桶的数据事件。在 Data events(数据事件)中的 All current and future S3 buckets(所有当前和未来 S3 存储桶)下,您可以通过选择 Read(读取)事件、Write(写入)事件或同时选择两者,来配置跟踪。

  2. Bob 拥有一个单独的账户,该账户已被授予对您账户中 S3 存储桶的访问权限。他想记录他有权访问的存储桶的数据事件。他配置他的跟踪以获取所有 S3 存储桶的数据事件。

  3. Bob 使用 PutObject API 操作将对象上传到 S3 存储桶。

  4. 此事件在他的账户中发生,并且与他的跟踪设置匹配。Bob 的跟踪将处理和记录该事件。

  5. 由于您拥有 S3 存储桶并且事件与您跟踪的设置匹配,因此您的跟踪也将处理和记录此事件。因为现在有两个事件副本(一个记录在 Bob 的跟踪中,一个记录在您的跟踪中),所以 CloudTrail 针对数据事件的一个副本对每个账户收取费用。

  6. 您将一个对象上传到 S3 存储桶。

  7. 此事件在您的账户中发生并且与您的跟踪设置匹配。您的跟踪将处理和记录此事件。

  8. 由于事件未在 Bob 的账户中发生,并且他不拥有 S3 存储桶,因此他的跟踪不会记录事件。CloudTrail 仅针对您账户中此数据事件的一个副本收费。

  9. 第三个用户 Mary 可以访问 S3 存储桶,并在存储桶上运行 GetObject 操作。她有一个跟踪配置为记录其账户中所有 S3 存储桶上的数据事件。因为她是 API 调用者,所以 CloudTrail 在她的跟踪中记录数据事件。虽然 Bob 有权访问该存储桶,但他不是资源所有者,因此这次未在他的跟踪中记录任何事件。作为资源拥有者,您会在跟踪中收到一个关于 Mary 调用的 GetObject 操作的事件。CloudTrail 针对数据事件的每个副本向您的账户和 Mary 的账户收取费用:一个在 Mary 的跟踪中,一个在您的跟踪中。

只读和只写事件

在配置跟踪或事件数据存储以记录数据事件和管理事件时,可以指定是需要只读事件、只写事件还是两者都需要。

  • 读取

    Read(读取)事件包括将读取您的资源但不进行更改的 API 操作。例如,只读事件包括 Amazon EC2 DescribeSecurityGroupsDescribeSubnets API 操作。这些操作仅返回有关 Amazon EC2 资源的信息,但不更改您的配置。

  • 写入

    Write(写入)事件包括将修改(或可能修改)您的资源的 API 操作。例如,Amazon EC2 RunInstancesTerminateInstances API 操作将修改您的实例。

示例:为单独的跟踪记录记录读取事件和写入事件

以下示例说明如何将跟踪记录配置为将账户的日志活动拆分到单独的 S3 存储桶中:一个名为 amzn-s3-demo-bucket1 的存储桶接收只读事件,另一个 amzn-s3-demo-bucket2 存储桶接收只写事件。

  1. 您创建一个跟踪并选择一个名为 amzn-s3-demo-bucket1 的 S3 存储桶来接收日志文件。然后,您更新跟踪以指定您需要 Read(读取)管理事件和数据事件。

  2. 您创建另一个跟踪并选择 S3 存储桶 amzn-s3-demo-bucket2 来接收日志文件。然后,您更新跟踪以指定您需要 Write(写入)管理事件和数据事件。

  3. Amazon EC2 DescribeInstancesTerminateInstances API 操作将在您的账户中执行。

  4. DescribeInstances API 操作是只读事件,它匹配第一个跟踪的设置。跟踪将记录事件并将事件传送到 amzn-s3-demo-bucket1

  5. TerminateInstances API 操作是只写事件,它匹配第二个跟踪的设置。跟踪将记录事件并将事件传送到 amzn-s3-demo-bucket2

使用 AWS Management Console 记录数据事件

以下程序介绍如何通过使用 AWS Management Console更新现有的事件数据存储或跟踪以记录数据事件。有关如何创建事件数据存储以记录数据事件的信息,请参阅使用控制台为 CloudTrail 事件创建事件数据存储。有关如何创建跟踪以记录数据事件的信息,请参阅在控制台中创建跟踪

对于跟踪,根据您使用的是高级事件选择器还是基本事件选择器,记录数据事件的步骤会有所不同。您可以使用高级事件选择器记录所有数据事件类型的数据事件,但如果使用基本事件选择器,则只能记录 Amazon S3 存储桶和存储桶对象、AWS Lambda 函数以及 Amazon DynamoDB 表的数据事件。

按照以下程序更新现有的事件数据存储以记录数据事件。有关使用高级事件选择器的更多信息,请参阅本主题中的使用高级事件选择器筛选数据事件

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

  2. 在导航窗格中,在 Lake 下,选择事件数据存储

  3. 事件数据存储页面上,选择要更新的事件数据存储。

    注意

    您只能在包含 CloudTrail 事件的事件数据存储中启用数据事件。您无法在 CloudTrail 事件数据存储中为 AWS Config 配置项目、CloudTrail Insights 事件或非 AWS 事件启用数据事件。

  4. 在详细信息页面上的数据事件中,选择编辑

  5. 如果您尚未记录数据事件,请选择 Data events(数据事件)复选框。

  6. 对于 Data event type(数据事件类型),选择要在其上记录数据事件的资源类型。

  7. 选择日志选择器模板。CloudTrail 包括用于记录资源类型的所有数据事件的预定义模板。要构建自定义日志选择器模板,请选择 Custom(自定义)。

  8. (可选)在选择器名称中,输入用于标识选择器的名称。选择器名称是高级事件选择器的描述性名称,例如“仅记录两个 S3 桶的数据事件”。选择器名称在高级事件选择器中列为 Name,展开 JSON 视图即可查看该名称。

  9. Advanced event selectors(高级事件选择器)中,为您要记录其数据事件的特定资源构建表达式。如果您使用的是预定义日志模板,则可跳过此步骤。

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

      • readOnly - readOnly 可以设置为等于truefalse。只读数据事件是不会更改资源状态的事件,例如 Get*Describe* 事件。写入事件可添加、更改或删除资源、属性或构件,例如 Put*Delete*Write* 事件。要记录 readwrite 两种事件,请不要添加 readOnly 选择器。

      • eventName - eventName 可以使用任何运算符。您可以使用它来包含或排除记录到 CloudTrail 的任何数据事件,例如 PutBucketGetItemGetSnapshotBlock

      • resources.ARN - 您可以将任何运算符与 resources.ARN 配合使用,但如果您使用等于不等于,则该值必须与您在模板中指定为 resources.type 的值的有效资源类型的 ARN 完全匹配。

        下表显示每个 resources.type 的有效 ARN 格式。

        注意

        您不能使用 resources.ARN 字段筛选没有 ARN 的资源类型。

        resources.type resources.ARN
        AWS::DynamoDB::Table1
        arn:partition:dynamodb:region:account_ID:table/table_name
        AWS::Lambda::Function
        arn:partition:lambda:region:account_ID:function:function_name

        AWS::S3::Object2

        arn:partition:s3:::amzn-s3-demo-bucket/ arn:partition:s3:::amzn-s3-demo-bucket/object_or_file_name/
        AWS::AppConfig::Configuration
        arn:partition:appconfig:region:account_ID:application/application_ID/environment/environment_ID/configuration/configuration_profile_ID
        AWS::B2BI::Transformer
        arn:partition:b2bi:region:account_ID:transformer/transformer_ID
        AWS::Bedrock::AgentAlias
        arn:partition:bedrock:region:account_ID:agent-alias/agent_ID/alias_ID
        AWS::Bedrock::FlowAlias
        arn:partition:bedrock:region:account_ID:flow/flow_ID/alias/alias_ID
        AWS::Bedrock::Guardrail
        arn:partition:bedrock:region:account_ID:guardrail/guardrail_ID
        AWS::Bedrock::KnowledgeBase
        arn:partition:bedrock:region:account_ID:knowledge-base/knowledge_base_ID
        AWS::Bedrock::Model

        ARN 必须采用以下格式之一:

        • arn:partition:bedrock:region::foundation-model/resource_ID

        • arn:partition:bedrock:region:account_ID:provisioned-model/resource_ID

        • arn:partition:bedrock:region:account_ID:custom-model/resource_ID

        AWS::Cassandra::Table
        arn:partition:cassandra:region:account_ID:keyspace/keyspace_name/table/table_name
        AWS::CloudFront::KeyValueStore
        arn:partition:cloudfront:region:account_ID:key-value-store/KVS_name
        AWS::CloudTrail::Channel
        arn:partition:cloudtrail:region:account_ID:channel/channel_UUID
        AWS::CodeWhisperer::Customization
        arn:partition:codewhisperer:region:account_ID:customization/customization_ID
        AWS::CodeWhisperer::Profile
        arn:partition:codewhisperer:region:account_ID:profile/profile_ID
        AWS::Cognito::IdentityPool
        arn:partition:cognito-identity:region:account_ID:identitypool/identity_pool_ID
        AWS::DataExchange::Asset
        arn:partition:dataexchange:region:account_ID:data-sets/data_set_ID/revisions/revision_ID/assets/asset_ID
        AWS::Deadline::Fleet
        arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID
        AWS::Deadline::Job
        arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID/job/job_ID
        AWS::Deadline::Queue
        arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID
        AWS::Deadline::Worker
        arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID/worker/worker_ID
        AWS::DynamoDB::Stream
        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time
        AWS::EC2::Snapshot
        arn:partition:ec2:region::snapshot/snapshot_ID
        AWS::EMRWAL::Workspace
        arn:partition:emrwal:region:account_ID:workspace/workspace_name
        AWS::FinSpace::Environment
        arn:partition:finspace:region:account_ID:environment/environment_ID
        AWS::Glue::Table
        arn:partition:glue:region:account_ID:table/database_name/table_name
        AWS::GreengrassV2::ComponentVersion
        arn:partition:greengrass:region:account_ID:components/component_name
        AWS::GreengrassV2::Deployment
        arn:partition:greengrass:region:account_ID:deployments/deployment_ID
        AWS::GuardDuty::Detector
        arn:partition:guardduty:region:account_ID:detector/detector_ID
        AWS::IoT::Certificate
        arn:partition:iot:region:account_ID:cert/certificate_ID
        AWS::IoT::Thing
        arn:partition:iot:region:account_ID:thing/thing_ID
        AWS::IoTSiteWise::Asset
        arn:partition:iotsitewise:region:account_ID:asset/asset_ID
        AWS::IoTSiteWise::TimeSeries
        arn:partition:iotsitewise:region:account_ID:timeseries/timeseries_ID
        AWS::IoTTwinMaker::Entity
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID/entity/entity_ID
        AWS::IoTTwinMaker::Workspace
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID
        AWS::KendraRanking::ExecutionPlan
        arn:partition:kendra-ranking:region:account_ID:rescore-execution-plan/rescore_execution_plan_ID
        AWS::Kinesis::Stream
        arn:partition:kinesis:region:account_ID:stream/stream_name
        AWS::Kinesis::StreamConsumer
        arn:partition:kinesis:region:account_ID:stream_type/stream_name/consumer/consumer_name:consumer_creation_timestamp
        AWS::KinesisVideo::Stream
        arn:partition:kinesisvideo:region:account_ID:stream/stream_name/creation_time
        AWS::MachineLearning::MlModel
        arn:partition:machinelearning:region:account_ID:mlmodel/model_ID
        AWS::ManagedBlockchain::Network
        arn:partition:managedblockchain:::networks/network_name
        AWS::ManagedBlockchain::Node
        arn:partition:managedblockchain:region:account_ID:nodes/node_ID
        AWS::MedicalImaging::Datastore
        arn:partition:medical-imaging:region:account_ID:datastore/data_store_ID
        AWS::NeptuneGraph::Graph
        arn:partition:neptune-graph:region:account_ID:graph/graph_ID
        AWS::One::UKey
        arn:partition:one:region:account_ID:user/user_ID/u-key/u-key_ID
        AWS::One::User
        arn:partition:one:region:account_ID:user/user_ID
        AWS::PaymentCryptography::Alias
        arn:partition:payment-cryptography:region:account_ID:alias/alias
        AWS::PaymentCryptography::Key
        arn:partition:payment-cryptography:region:account_ID:key/key_ID
        AWS::PCAConnectorAD::Connector
        arn:partition:pca-connector-ad:region:account_ID:connector/connector_ID
        AWS::PCAConnectorSCEP::Connector
        arn:partition:pca-connector-scep:region:account_ID:connector/connector_ID
        AWS::QApps:QApp
        arn:partition:qapps:region:account_ID:application/application_UUID/qapp/qapp_UUID
        AWS::QBusiness::Application
        arn:partition:qbusiness:region:account_ID:application/application_ID
        AWS::QBusiness::DataSource
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID/data-source/datasource_ID
        AWS::QBusiness::Index
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID
        AWS::QBusiness::WebExperience
        arn:partition:qbusiness:region:account_ID:application/application_ID/web-experience/web_experienc_ID
        AWS::RDS::DBCluster
        arn:partition:rds:region:account_ID:cluster/cluster_name
        AWS::RUM::AppMonitor
        arn:partition:rum:region:account_ID:appmonitor/app_monitor_name

        AWS::S3::AccessPoint3

        arn:partition:s3:region:account_ID:accesspoint/access_point_name

        AWS::S3Express::Object

        arn:partition:s3express:region:account_ID:bucket/bucket_name
        AWS::S3ObjectLambda::AccessPoint
        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name
        AWS::S3Outposts::Object
        arn:partition:s3-outposts:region:account_ID:object_path
        AWS::SageMaker::Endpoint
        arn:partition:sagemaker:region:account_ID:endpoint/endpoint_name
        AWS::SageMaker::ExperimentTrialComponent
        arn:partition:sagemaker:region:account_ID:experiment-trial-component/experiment_trial_component_name
        AWS::SageMaker::FeatureGroup
        arn:partition:sagemaker:region:account_ID:feature-group/feature_group_name
        AWS::SCN::Instance
        arn:partition:scn:region:account_ID:instance/instance_ID
        AWS::ServiceDiscovery::Namespace
        arn:partition:servicediscovery:region:account_ID:namespace/namespace_ID
        AWS::ServiceDiscovery::Service
        arn:partition:servicediscovery:region:account_ID:service/service_ID
        AWS::SMSVoice::OriginationIdentity

        arn:partition:sms-voice:region:account_ID:.*$

        AWS::SNS::PlatformEndpoint
        arn:partition:sns:region:account_ID:endpoint/endpoint_type/endpoint_name/endpoint_ID
        AWS::SNS::Topic
        arn:partition:sns:region:account_ID:topic_name
        AWS::SocialMessaging::PhoneNumberId

        arn:partition:social-messaging:region:account_ID:phone-number-id/phone_number_ID

        AWS::SQS::Queue
        arn:partition:sqs:region:account_ID:queue_name
        AWS::SSM::ManagedNode

        ARN 必须采用以下格式之一:

        • arn:partition:ssm:region:account_ID:managed-instance/instance_ID

        • arn:partition:ec2:region:account_ID:instance/instance_ID

        AWS::SSMMessages::ControlChannel
        arn:partition:ssmmessages:region:account_ID:control-channel/control_channel_ID
        AWS::StepFunctions::StateMachine

        ARN 必须采用以下格式之一:

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name/label_name

        AWS::SWF::Domain
        arn:partition:swf:region:account_ID:/domain/domain_name
        AWS::ThinClient::Device
        arn:partition:thinclient:region:account_ID:device/device_ID
        AWS::ThinClient::Environment
        arn:partition:thinclient:region:account_ID:environment/environment_ID
        AWS::Timestream::Database
        arn:partition:timestream:region:account_ID:database/database_name
        AWS::Timestream::Table
        arn:partition:timestream:region:account_ID:database/database_name/table/table_name
        AWS::VerifiedPermissions::PolicyStore
        arn:partition:verifiedpermissions:region:account_ID:policy-store/policy_store_ID

        1 对于启用了流的表,数据事件中的 resources 字段同时包含 AWS::DynamoDB::StreamAWS::DynamoDB::Table。如果您为 resources.type 指定 AWS::DynamoDB::Table,则原定设置情况下,它将同时记录 DynamoDB 表和 DynamoDB 流事件。要排除流事件,请对 eventName 字段添加筛选条件。

        2 要记录特定 S3 存储桶中所有对象的所有数据事件,请使用 StartsWith 运算符,并且仅包含存储桶 ARN 作为匹配值。刻意使用尾部斜杠;切勿排除它。

        3 要记录 S3 接入点中的所有对象的事件,建议您仅使用接入点 ARN,而不要包含对象路径,并且使用 StartsWithNotStartsWith 运算符。

      有关数据事件资源的 ARN 格式的更多信息,请参阅 AWS Identity and Access Management用户指南中的操作、资源和条件键

    2. 对于每个字段,请选择 + 条件以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。例如,要从记录到事件数据存储的数据事件中排除两个 S3 存储桶的数据事件,可以将字段设置为 resources.ARN,设置不始于运算符,然后粘贴在 S3 存储桶 ARN 中,或浏览到不想为其记录事件的 S3 存储桶。

      要添加第二个 S3 存储桶,请选择 + 条件,然后重复上述说明,在 ARN 中粘贴或浏览到不同的存储桶。

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

      注意

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

    3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。例如,不要在一个选择器中将 ARN 指定为等于某个值,然后在另一个选择器中指定 ARN 不等于相同的值。

  10. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。重复步骤 6 至此步骤,为数据事件类型配置高级事件选择器。

  11. 查看并验证选择后,选择保存更改

在 AWS Management Console 中,如果跟踪使用高级事件选择器,则可以从记录所选资源上的所有数据事件的预定义模板中进行选择。选择了日志选择器模板后,您可以自定义模板,以仅包含最希望查看的数据事件。有关使用高级事件选择器的更多信息,请参阅本主题中的使用高级事件选择器筛选数据事件

  1. 在 CloudTrail 控制台的控制面板跟踪页面上,选择要更新的跟踪。

  2. 在详细信息页面上的数据事件中,选择编辑

  3. 如果您尚未记录数据事件,请选择 Data events(数据事件)复选框。

  4. 对于 Data event type(数据事件类型),选择要在其上记录数据事件的资源类型。

  5. 选择日志选择器模板。CloudTrail 包括用于记录资源类型的所有数据事件的预定义模板。要构建自定义日志选择器模板,请选择 Custom(自定义)。

    注意

    选择 S3 存储桶的预定义模板可为您的 AWS 账户中现有的所有存储桶和您完成跟踪创建后创建的任何存储桶启用数据事件日志记录。它也将为由 AWS 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 AWS 账户的存储桶执行的。

    如果跟踪仅应用于一个区域,则选择记录所有 S3 存储桶的预定义模板可为跟踪所在的区域中的所有存储桶和您后来在该区域中创建的任何存储桶启用数据事件日志记录。不会为您的 AWS 账户的其他区域中的 Simple Storage Service(Amazon S3)存储桶记录数据事件。

    如果您正在为所有区域创建跟踪,则选择 Lambda 函数的预定义模板将为您的 AWS 账户中当前包含的所有函数以及您在创建跟踪后可能在任何区域中创建的任何 Lambda 函数启用数据事件日志记录。如果您正在为单区域创建跟踪(对于跟踪,只能使用 AWS CLI 完成此操作),则此选择可为 AWS 账户的该区域中当前包含的所有函数以及完成跟踪创建后可能在该区域中创建的任何 Lambda 函数,启用数据事件日志记录。它不会为在其他区域中创建的 Lambda 函数启用数据事件日志记录。

    所有函数的日志记录数据事件也将为由 AWS 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 AWS 账户的函数执行的。

  6. (可选)在选择器名称中,输入用于标识选择器的名称。选择器名称是高级事件选择器的描述性名称,例如“仅记录两个 S3 桶的数据事件”。选择器名称在高级事件选择器中列为 Name,展开 JSON 视图即可查看该名称。

  7. Advanced event selectors(高级事件选择器)中,为您要记录其数据事件的特定资源构建表达式。如果您使用的是预定义日志模板,则可跳过此步骤。

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

      • readOnly - readOnly 可以设置为等于truefalse。只读数据事件是不会更改资源状态的事件,例如 Get*Describe* 事件。写入事件可添加、更改或删除资源、属性或构件,例如 Put*Delete*Write* 事件。要记录 readwrite 两种事件,请不要添加 readOnly 选择器。

      • eventName - eventName 可以使用任何运算符。您可以使用它来包含或排除记录到 CloudTrail 的任何数据事件,例如 PutBucketGetItemGetSnapshotBlock

      • resources.ARN - 您可以将任何运算符与 resources.ARN 配合使用,但如果您使用等于不等于,则该值必须与您在模板中指定为 resources.type 的值的有效资源类型的 ARN 完全匹配。

        下表显示每个 resources.type 的有效 ARN 格式。

        注意

        您不能使用 resources.ARN 字段筛选没有 ARN 的资源类型。

        resources.type resources.ARN
        AWS::DynamoDB::Table1
        arn:partition:dynamodb:region:account_ID:table/table_name
        AWS::Lambda::Function
        arn:partition:lambda:region:account_ID:function:function_name

        AWS::S3::Object2

        arn:partition:s3:::amzn-s3-demo-bucket/ arn:partition:s3:::amzn-s3-demo-bucket/object_or_file_name/
        AWS::AppConfig::Configuration
        arn:partition:appconfig:region:account_ID:application/application_ID/environment/environment_ID/configuration/configuration_profile_ID
        AWS::B2BI::Transformer
        arn:partition:b2bi:region:account_ID:transformer/transformer_ID
        AWS::Bedrock::AgentAlias
        arn:partition:bedrock:region:account_ID:agent-alias/agent_ID/alias_ID
        AWS::Bedrock::FlowAlias
        arn:partition:bedrock:region:account_ID:flow/flow_ID/alias/alias_ID
        AWS::Bedrock::Guardrail
        arn:partition:bedrock:region:account_ID:guardrail/guardrail_ID
        AWS::Bedrock::KnowledgeBase
        arn:partition:bedrock:region:account_ID:knowledge-base/knowledge_base_ID
        AWS::Bedrock::Model

        ARN 必须采用以下格式之一:

        • arn:partition:bedrock:region::foundation-model/resource_ID

        • arn:partition:bedrock:region:account_ID:provisioned-model/resource_ID

        • arn:partition:bedrock:region:account_ID:custom-model/resource_ID

        AWS::Cassandra::Table
        arn:partition:cassandra:region:account_ID:keyspace/keyspace_name/table/table_name
        AWS::CloudFront::KeyValueStore
        arn:partition:cloudfront:region:account_ID:key-value-store/KVS_name
        AWS::CloudTrail::Channel
        arn:partition:cloudtrail:region:account_ID:channel/channel_UUID
        AWS::CodeWhisperer::Customization
        arn:partition:codewhisperer:region:account_ID:customization/customization_ID
        AWS::CodeWhisperer::Profile
        arn:partition:codewhisperer:region:account_ID:profile/profile_ID
        AWS::Cognito::IdentityPool
        arn:partition:cognito-identity:region:account_ID:identitypool/identity_pool_ID
        AWS::DataExchange::Asset
        arn:partition:dataexchange:region:account_ID:data-sets/data_set_ID/revisions/revision_ID/assets/asset_ID
        AWS::Deadline::Fleet
        arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID
        AWS::Deadline::Job
        arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID/job/job_ID
        AWS::Deadline::Queue
        arn:partition:deadline:region:account_ID:farm/farm_ID/queue/queue_ID
        AWS::Deadline::Worker
        arn:partition:deadline:region:account_ID:farm/farm_ID/fleet/fleet_ID/worker/worker_ID
        AWS::DynamoDB::Stream
        arn:partition:dynamodb:region:account_ID:table/table_name/stream/date_time
        AWS::EC2::Snapshot
        arn:partition:ec2:region::snapshot/snapshot_ID
        AWS::EMRWAL::Workspace
        arn:partition:emrwal:region:account_ID:workspace/workspace_name
        AWS::FinSpace::Environment
        arn:partition:finspace:region:account_ID:environment/environment_ID
        AWS::Glue::Table
        arn:partition:glue:region:account_ID:table/database_name/table_name
        AWS::GreengrassV2::ComponentVersion
        arn:partition:greengrass:region:account_ID:components/component_name
        AWS::GreengrassV2::Deployment
        arn:partition:greengrass:region:account_ID:deployments/deployment_ID
        AWS::GuardDuty::Detector
        arn:partition:guardduty:region:account_ID:detector/detector_ID
        AWS::IoT::Certificate
        arn:partition:iot:region:account_ID:cert/certificate_ID
        AWS::IoT::Thing
        arn:partition:iot:region:account_ID:thing/thing_ID
        AWS::IoTSiteWise::Asset
        arn:partition:iotsitewise:region:account_ID:asset/asset_ID
        AWS::IoTSiteWise::TimeSeries
        arn:partition:iotsitewise:region:account_ID:timeseries/timeseries_ID
        AWS::IoTTwinMaker::Entity
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID/entity/entity_ID
        AWS::IoTTwinMaker::Workspace
        arn:partition:iottwinmaker:region:account_ID:workspace/workspace_ID
        AWS::KendraRanking::ExecutionPlan
        arn:partition:kendra-ranking:region:account_ID:rescore-execution-plan/rescore_execution_plan_ID
        AWS::Kinesis::Stream
        arn:partition:kinesis:region:account_ID:stream/stream_name
        AWS::Kinesis::StreamConsumer
        arn:partition:kinesis:region:account_ID:stream_type/stream_name/consumer/consumer_name:consumer_creation_timestamp
        AWS::KinesisVideo::Stream
        arn:partition:kinesisvideo:region:account_ID:stream/stream_name/creation_time
        AWS::MachineLearning::MlModel
        arn:partition:machinelearning:region:account_ID:mlmodel/model_ID
        AWS::ManagedBlockchain::Network
        arn:partition:managedblockchain:::networks/network_name
        AWS::ManagedBlockchain::Node
        arn:partition:managedblockchain:region:account_ID:nodes/node_ID
        AWS::MedicalImaging::Datastore
        arn:partition:medical-imaging:region:account_ID:datastore/data_store_ID
        AWS::NeptuneGraph::Graph
        arn:partition:neptune-graph:region:account_ID:graph/graph_ID
        AWS::One::UKey
        arn:partition:one:region:account_ID:user/user_ID/u-key/u-key_ID
        AWS::One::User
        arn:partition:one:region:account_ID:user/user_ID
        AWS::PaymentCryptography::Alias
        arn:partition:payment-cryptography:region:account_ID:alias/alias
        AWS::PaymentCryptography::Key
        arn:partition:payment-cryptography:region:account_ID:key/key_ID
        AWS::PCAConnectorAD::Connector
        arn:partition:pca-connector-ad:region:account_ID:connector/connector_ID
        AWS::PCAConnectorSCEP::Connector
        arn:partition:pca-connector-scep:region:account_ID:connector/connector_ID
        AWS::QApps:QApp
        arn:partition:qapps:region:account_ID:application/application_UUID/qapp/qapp_UUID
        AWS::QBusiness::Application
        arn:partition:qbusiness:region:account_ID:application/application_ID
        AWS::QBusiness::DataSource
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID/data-source/datasource_ID
        AWS::QBusiness::Index
        arn:partition:qbusiness:region:account_ID:application/application_ID/index/index_ID
        AWS::QBusiness::WebExperience
        arn:partition:qbusiness:region:account_ID:application/application_ID/web-experience/web_experienc_ID
        AWS::RDS::DBCluster
        arn:partition:rds:region:account_ID:cluster/cluster_name
        AWS::RUM::AppMonitor
        arn:partition:rum:region:account_ID:appmonitor/app_monitor_name

        AWS::S3::AccessPoint3

        arn:partition:s3:region:account_ID:accesspoint/access_point_name

        AWS::S3Express::Object

        arn:partition:s3express:region:account_ID:bucket/bucket_name
        AWS::S3ObjectLambda::AccessPoint
        arn:partition:s3-object-lambda:region:account_ID:accesspoint/access_point_name
        AWS::S3Outposts::Object
        arn:partition:s3-outposts:region:account_ID:object_path
        AWS::SageMaker::Endpoint
        arn:partition:sagemaker:region:account_ID:endpoint/endpoint_name
        AWS::SageMaker::ExperimentTrialComponent
        arn:partition:sagemaker:region:account_ID:experiment-trial-component/experiment_trial_component_name
        AWS::SageMaker::FeatureGroup
        arn:partition:sagemaker:region:account_ID:feature-group/feature_group_name
        AWS::SCN::Instance
        arn:partition:scn:region:account_ID:instance/instance_ID
        AWS::ServiceDiscovery::Namespace
        arn:partition:servicediscovery:region:account_ID:namespace/namespace_ID
        AWS::ServiceDiscovery::Service
        arn:partition:servicediscovery:region:account_ID:service/service_ID
        AWS::SMSVoice::OriginationIdentity

        arn:partition:sms-voice:region:account_ID:.*$

        AWS::SNS::PlatformEndpoint
        arn:partition:sns:region:account_ID:endpoint/endpoint_type/endpoint_name/endpoint_ID
        AWS::SNS::Topic
        arn:partition:sns:region:account_ID:topic_name
        AWS::SocialMessaging::PhoneNumberId

        arn:partition:social-messaging:region:account_ID:phone-number-id/phone_number_ID

        AWS::SQS::Queue
        arn:partition:sqs:region:account_ID:queue_name
        AWS::SSM::ManagedNode

        ARN 必须采用以下格式之一:

        • arn:partition:ssm:region:account_ID:managed-instance/instance_ID

        • arn:partition:ec2:region:account_ID:instance/instance_ID

        AWS::SSMMessages::ControlChannel
        arn:partition:ssmmessages:region:account_ID:control-channel/control_channel_ID
        AWS::StepFunctions::StateMachine

        ARN 必须采用以下格式之一:

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name

        • arn:partition:states:region:account_ID:stateMachine:stateMachine_name/label_name

        AWS::SWF::Domain
        arn:partition:swf:region:account_ID:/domain/domain_name
        AWS::ThinClient::Device
        arn:partition:thinclient:region:account_ID:device/device_ID
        AWS::ThinClient::Environment
        arn:partition:thinclient:region:account_ID:environment/environment_ID
        AWS::Timestream::Database
        arn:partition:timestream:region:account_ID:database/database_name
        AWS::Timestream::Table
        arn:partition:timestream:region:account_ID:database/database_name/table/table_name
        AWS::VerifiedPermissions::PolicyStore
        arn:partition:verifiedpermissions:region:account_ID:policy-store/policy_store_ID

        1 对于启用了流的表,数据事件中的 resources 字段同时包含 AWS::DynamoDB::StreamAWS::DynamoDB::Table。如果您为 resources.type 指定 AWS::DynamoDB::Table,则原定设置情况下,它将同时记录 DynamoDB 表和 DynamoDB 流事件。要排除流事件,请对 eventName 字段添加筛选条件。

        2 要记录特定 S3 存储桶中所有对象的所有数据事件,请使用 StartsWith 运算符,并且仅包含存储桶 ARN 作为匹配值。刻意使用尾部斜杠;切勿排除它。

        3 要记录 S3 接入点中的所有对象的事件,建议您仅使用接入点 ARN,而不要包含对象路径,并且使用 StartsWithNotStartsWith 运算符。

      有关数据事件资源的 ARN 格式的更多信息,请参阅 AWS Identity and Access Management用户指南中的操作、资源和条件键

    2. 对于每个字段,请选择 + 条件以根据需要添加任意数量的条件,所有条件总共可有最多 500 个指定值。例如,要从记录到事件数据存储的数据事件中排除两个 S3 存储桶的数据事件,可以将字段设置为 resources.ARN,设置不始于运算符,然后粘贴在 S3 存储桶 ARN 中,或浏览到不想为其记录事件的 S3 存储桶。

      要添加第二个 S3 存储桶,请选择 + 条件,然后重复上述说明,在 ARN 中粘贴或浏览到不同的存储桶。

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

      注意

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

    3. 根据需要,选择 + Field(+ 字段)以添加其他字段。为了避免错误,请不要为字段设置冲突或重复的值。例如,不要在一个选择器中将 ARN 指定为等于某个值,然后在另一个选择器中指定 ARN 不等于相同的值。

  8. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。重复步骤 4 至此步骤,为数据事件类型配置高级事件选择器。

  9. 查看并验证选择后,选择保存更改

按照以下程序,使用基本事件选择器更新现有跟踪以记录数据事件。

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

  2. 打开 CloudTrail 控制台的 Trails(跟踪记录)页面,然后选择跟踪记录名称。

    注意

    虽然您可以编辑现有跟踪以记录数据事件,但作为最佳实践,请考虑专门创建单独的跟踪以记录数据事件。

  3. 对于 Data event(数据事件),选择 Edit(编辑)。

  4. 对于 Simple Storage Service(Amazon S3)存储桶:

    1. 对于 Data event source(数据事件源),选择 S3

    2. 您可以选择记录 All current and future S3 buckets(所有当前和未来 S3 存储桶),也可以指定单个存储桶或函数。默认情况下,记录所有当前和未来 S3 存储桶的数据事件。

      注意

      保留默认 All current and future S3 buckets(所有当前和未来 S3 存储桶)选项会为您的 AWS 账户中现有的所有存储桶和您完成跟踪创建后创建的任何存储桶启用数据事件日志记录。它也将为由 AWS 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 AWS 账户的存储桶执行的。

      如果您正在为单个区域创建跟踪(通过使用 AWS CLI 完成),则选择 Select all S3 buckets in your account(选择您账户中的所有 S3 存储桶)选项会为跟踪所在的区域中的所有存储桶和您后来在该区域中创建的任何存储桶启用数据事件日志记录。不会为您的 AWS 账户的其他区域中的 Simple Storage Service(Amazon S3)存储桶记录数据事件。

    3. 如果保留默认值 All current and future S3 buckets(所有当前和未来 S3 存储桶),则选择记录 Read(读取)事件、Write(写入)事件,还是记录两者。

    4. 要选择单个存储桶,请清空 All current and future S3 buckets(所有当前和未来 S3 存储桶)的 Read(读取)和Write(写入)复选框。在 Individual bucket selection(单个存储桶选择)中,浏览要在其上记录数据事件的存储桶。要查找特定存储桶,键入所需存储桶的存储桶前缀。您可以在此窗口中选择多个存储桶。选择添加存储桶,记录更多存储桶的数据事件。选择记录 Read(读取)事件(如 GetObject)、Write(写入)事件(如 PutObject)或同时记录两种事件。

      此设置优先于为各个存储桶配置的个别设置。例如,如果指定记录所有 S3 存储桶的 Read 事件,然后选择为数据事件日志记录添加一个特定存储桶,则所添加存储桶的 Read 已经是选中状态。您无法清除此选择。只能配置 Write 选项。

      要从日志记录中删除存储桶,请选择 X

  5. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。

  6. 对于 Lambda 函数:

    1. 对于 Data event source(数据事件源),选择 Lambda

    2. Lambda function(Lambda 函数)中,选择 All regions(所有区域)记录所有 Lambda 函数,或选择 Input function as ARN(输入函数作为 ARN)以记录特定函数上的数据事件。

      要记录 AWS 账户中的所有 Lambda 函数的数据事件,请选择 Log all current and future functions(记录所有当前和未来函数)。此设置优先于为各个函数配置的个别设置。将记录所有函数,即便这些函数未显示。

      注意

      如果为所有区域创建了一个跟踪,则此选择将为您的 AWS 账户中当前包含的所有函数以及您在创建跟踪后可能在任何区域中创建的任何 Lambda 函数启用数据事件日志记录。如果您正在为单个区域创建跟踪(通过使用 AWS CLI 完成),则此选择将为您的 AWS 账户中的该区域中当前包含的所有函数以及您在创建跟踪后可能在该区域中创建的任何 Lambda 函数启用数据事件日志记录。它不会为在其他区域中创建的 Lambda 函数启用数据事件日志记录。

      所有函数的日志记录数据事件也将为由 AWS 账户中的任何用户或角色执行的数据事件活动启用日志记录,即使该活动是对属于其他 AWS 账户的函数执行的。

    3. 如果选择 Input function as ARN(输入函数作为 ARN),则输入 Lambda 函数的 ARN。

      注意

      如果您的账户中有 15000 个以上的 Lambda 函数,则在创建跟踪时,您无法在 CloudTrail 控制台中查看或选择所有函数。您仍可以选择该选项来记录所有函数,即使未显示这些函数也是如此。如果您要记录特定函数的数据事件,则可手动添加一个函数 (如果您知道其 ARN)。您也可以在控制台中完成跟踪的创建操作,然后使用 AWS CLI 和 put-event-selectors 命令为特定 Lambda 函数配置数据事件日志记录。有关更多信息,请参阅 使用 AWS CLI 管理跟踪记录

  7. 要添加需要记录数据事件的其他数据类型,请选择 Add data event type(添加数据事件类型)。

  8. 对于 DynamoDB 表:

    1. 对于 Data event source(数据事件源),选择 DynamoDB

    2. DynamoDB table selection(DynamoDB 表选择)中,选择 Browse(浏览)以选择一个表,或粘贴到您有权访问的 DynamoDB 表的 ARN 中。DynamoDB 表 ARN 使用以下格式:

      arn:partition:dynamodb:region:account_ID:table/table_name

      要添加另一个表,请选择 Add row(添加行),然后浏览到某个表或粘贴到您有权访问的表的 ARN 中。

  9. 选择 Save changes(保存更改)

使用 AWS Command Line Interface 记录数据事件

您可以使用 AWS CLI 配置跟踪或事件数据存储以记录数据事件。

使用 AWS CLI 记录跟踪记录的数据事件

您可以使用 AWS CLI 配置您的跟踪记录以记录管理事件和数据事件。

注意
  • 请注意,如果您的账户正在记录管理事件的多个副本,将会产生费用。记录数据事件始终需要收取费用。有关更多信息,请参阅 AWS CloudTrail 定价

  • 您可以使用高级事件选择器或基本事件选择器,但不能同时使用两者。如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。

  • 如果您的跟踪使用基本的事件选择器,则您只能记录以下资源类型:

    • AWS::DynamoDB::Table

    • AWS::Lambda::Function

    • AWS::S3::Object

    要记录其他资源类型,您需要使用高级事件选择器。要将跟踪转换为高级事件选择器,请运行 get-event-selectors 命令以确认当前事件选择器,然后将高级事件选择器配置为与以前的事件选择器的覆盖范围相匹配,然后为要记录数据事件的任何资源类型添加选择器。

  • 您可以使用高级事件选择器根据 eventNameresources.ARNreadOnly 字段的值来进行筛选,从而使您能够仅记录感兴趣的数据事件。有关配置这些字段的详细信息,请参阅《AWS CloudTrail API 参考》中的 AdvancedFieldSelector 和本主题中的 使用高级事件选择器筛选数据事件

要查看您的跟踪是否正在记录管理事件和数据事件,请运行 get-event-selectors 命令。

aws cloudtrail get-event-selectors --trail-name TrailName

该命令将返回跟踪的事件选择器。

使用高级事件选择器记录事件

注意

如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。在配置高级事件选择器之前,请运行 get-event-selectors 命令以确认当前事件选择器,然后将高级事件选择器配置为与以前的事件选择器的覆盖范围相匹配,然后为要记录的任何其他数据事件添加选择器。

以下示例为名为 TrailName 的跟踪创建自定义高级事件选择器,以包括读取和写入管理事件(通过忽略 readOnly 选择器)、所有 Simple Storage Service(Amazon S3)存储桶/前缀组合的 PutObjectDeleteObject 数据事件(名为 amzn-s3-demo-bucket 的存储桶除外)以及名为 MyLambdaFunction 的 AWS Lambda 函数的数据事件。由于这些都是自定义高级事件选择器,因此每组选择器都有一个描述性名称。请注意,尾随斜杠是 S3 存储桶的 ARN 值的一部分。

aws cloudtrail put-event-selectors --trail-name TrailName --advanced-event-selectors '[ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] }, { "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] } ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction"] } ] } ]'

以下示例返回为跟踪配置的高级事件选择器。

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "NotStartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/" ] }, ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ] }, { "Field": "eventName", "Equals": [ "Invoke" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

使用高级事件选择器记录 Amazon S3 存储桶的所有 Amazon S3 事件

注意

如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。

以下示例说明如何配置您的跟踪以包含特定 S3 存储桶中的所有 Simple Storage Service(Amazon S3)对象的所有数据事件。S3 事件在 resources.type 字段中的值为 AWS::S3::Object。由于 S3 对象和 S3 存储桶的 ARN 值略有不同,因此必须为 resources.ARN 添加 StartsWith 运算符以捕获所有事件。

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] } ] } ]'

该命令将返回以下示例输出。

{ "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:partition:s3:::amzn-s3-demo-bucket/" ] } ] } ] }

使用高级事件选择器记录 Simple Storage Service(Amazon S3)on AWS Outposts 事件

注意

如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。

以下示例说明如何配置您的跟踪以包含您的 Outpost 中的 Outposts 对象上的所有 Simple Storage Service(Amazon S3)的所有数据事件。

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

该命令将返回以下示例输出。

{ "TrailARN": "arn:aws:cloudtrail:region:account_ID:trail/TrailName", "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ] }

使用基本事件选择器记录事件

下面是显示基本事件选择器的 get-event-selectors 命令结果示例。默认情况下,当您使用 AWS CLI 创建跟踪时,跟踪会记录所有管理事件。默认情况下,跟踪记录不记录数据事件。

{ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName", "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ] }

要将跟踪配置为记录管理事件和数据事件,请运行 put-event-selectors 命令。

以下示例说明如何使用基本事件选择器配置跟踪,以包含两个 S3 存储桶前缀中 S3 对象的所有管理事件和数据事件。您可以为一个跟踪指定 1 至 5 个事件选择器。您可以为一个跟踪指定 1 至 250 个数据资源。

注意

如果您选择使用基本事件选择器限制数据事件,则最多只能有 250 个 S3 数据资源。

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{ "ReadWriteType": "All", "IncludeManagementEvents":true, "DataResources": [{ "Type": "AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-bucket1/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2;/prefix2"] }] }]'

该命令将返回为跟踪配置的事件选择器。

{ "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName", "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::amzn-s3-demo-bucket1/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2", ], "Type": "AWS::S3::Object" } ], "ReadWriteType": "All" } ] }

使用 AWS CLI 记录事件数据存储的数据事件

您可以使用 AWS CLI 配置事件数据存储以包含数据事件。使用 create-event-data-store 命令创建新的事件数据存储以记录数据事件。使用 update-event-data-store 命令为现有事件数据存储更新高级事件选择器。

要查看事件数据存储是否包含数据事件,请运行 get-event-data-store 命令。

aws cloudtrail get-event-data-store --event-data-store EventDataStoreARN

该命令会返回事件数据存储的设置。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE6441aa", "Name": "ebs-data-events", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "Log all EBS direct APIs on EBS snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::EC2::Snapshot" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-04T15:57:33.701000+00:00", "UpdatedTimestamp": "2023-11-20T20:37:34.228000+00:00" }

包含存储桶的所有 Amazon S3 事件

以下示例说明如何配置事件数据存储以包含特定 S3 存储桶中所有 Amazon S3 对象的所有数据事件。S3 事件在 resources.type 字段中的值为 AWS::S3::Object。由于 S3 对象和 S3 存储桶的 ARN 值略有不同,因此必须为 resources.ARN 添加 StartsWith 运算符以捕获所有事件。

aws cloudtrail create-event-data-store --name "EventDataStoreName" --multi-region-enabled \ --advanced-event-selectors \ '[ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] }, { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] } ] } ]'

该命令将返回以下示例输出。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLE492-301f-4053-ac5e-EXAMPLE441aa", "Name": "EventDataStoreName", "Status": "ENABLED", "AdvancedEventSelectors": [ { "Name": "S3EventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.ARN", "StartsWith": [ "arn:partition:s3:::amzn-s3-demo-bucket/" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-11-04T15:57:33.701000+00:00", "UpdatedTimestamp": "2023-11-20T20:49:21.766000+00:00" }

包含 Amazon S3 on AWS Outposts 事件

以下示例说明如何配置事件数据存储,以包含 Outpost 中所有 Amazon S3 on Outposts 对象的全部数据事件。

aws cloudtrail create-event-data-store --name EventDataStoreName \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

该命令将返回以下示例输出。

{ "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:111122223333:eventdatastore/EXAMPLEb4a8-99b1-4ec2-9258-EXAMPLEc890", "Name": "EventDataStoreName", "Status": "CREATED", "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 366, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-02-20T21:00:17.673000+00:00", "UpdatedTimestamp": "2023-02-20T21:00:17.820000+00:00" }

记录 AWS Config 合规性的数据事件

如果您使用 AWS Config 一致性包帮助您的企业保持对正式标准的合规性,例如联邦风险和授权管理计划(FedRAMP)或美国国家标准和技术研究所(NIST)要求的标准,则合规性框架的一致性包通常要求您至少记录 Simple Storage Service(Amazon S3)存储桶的数据事件。合规性框架的一致性包中包括名为 cloudtrail-s3-dataevents-enabled托管规则,它检查您账户中的 S3 数据事件日志记录。许多未与合规性框架关联的一致性包也需要 S3 数据事件日志记录。下面是包含此规则的一致性包示例。

有关 AWS Config 中可用的示例一致性包的完整列表,请参阅 AWS Config 开发人员指南中的一致性包示例模板

使用 AWS SDK 记录数据事件

运行 GetEventSelectors 操作以查看跟踪是否正在记录数据事件。您可以配置您的跟踪记录以通过运行 PutEventSelectors 操作来记录数据事件。有关更多信息,请参阅 AWS CloudTrail API 参考

运行 GetEventSelectors 操作以查看事件数据存储是否正在记录数据事件。通过运行 CreateEventDataStoreUpdateEventDataStore 操作并指定高级事件选择器,可以将事件数据存储配置为包含数据事件。有关更多信息,请参阅 使用 AWS CLI 创建、更新和管理事件数据存储 和《AWS CloudTrail API Referencehttps://docs.aws.amazon.com/awscloudtrail/latest/APIReference/》。