使用 Amazon CloudTrail 日志监控 S3 on Outposts
Amazon S3 on Outposts 与 Amazon CloudTrail 集成,后者是在 S3 on Outposts 中提供用户、角色或 Amazon Web Services 服务所采取操作的记录的服务。您可以使用 Amazon CloudTrail 获取关于 S3 on Outposts 桶级别请求以及对象级别请求的信息,这些请求旨在审计和记录您的 S3 on Outposts 事件活动。
要为所有 Outposts 桶或特定 Outposts 桶的列表启用 CloudTrail 数据事件,您必须在 CloudTrail 中手动创建跟踪。有关 CloudTrail 日志文件条目的更多信息,请参阅 S3 on Outposts 日志文件条目。
有关 S3 on Outposts 的 CloudTrail 数据事件的完整列表,请参阅《Amazon S3 用户指南》中的 CloudTrail 中的 Amazon S3 数据事件。
注意
-
最佳实践是为 Amazon CloudTrail 数据事件 Outposts 桶创建生命周期策略。配置生命周期策略,以便在您需要审计日志文件的时间段之后定期删除这些日志文件。这样做可以减少 Amazon Athena 为每个查询分析的数据量。有关更多信息,请参阅 为 Amazon S3 on Outposts 桶创建和管理生命周期配置。
-
有关如何查询 CloudTrail 日志的示例,请参阅 Amazon 大数据博客文章使用 Amazon CloudTrail 和 Amazon Athena 分析安全性、合规性和操作活动
。
为 S3 on Outposts 桶中的对象启用 CloudTrail 日志记录
您可以使用 Amazon S3 控制台配置 Amazon CloudTrail 跟踪来记录 Amazon S3 on Outposts 桶中对象的数据事件。CloudTrail 支持记录 S3 on Outposts 对象级别 API 操作,例如 GetObject
、DeleteObject
和 PutObject
。这些事件称为数据事件。
原定设置情况下,CloudTrail 跟踪不记录数据事件。但是,可以将跟踪配置为记录您指定的 S3 on Outposts 存储桶的数据事件,或记录 Amazon Web Services 账户中所有 S3 on Outposts 存储桶的数据事件。
CloudTrail 不会在 CloudTrail 事件历史记录中填充数据事件。此外,并非所有 S3 on Outposts 桶级别 API 操作都会填充在 CloudTrail 事件历史记录中。有关如何查询 CloudTrail 日志的更多信息,请参阅 Amazon 知识中心上的使用 Amazon CloudWatch Logs 筛选条件模式和 Amazon Athena 查询 CloudTrail 日志
要配置跟踪以记录某个 S3 on Outposts 桶的数据事件,您可以使用 Amazon CloudTrail 控制台或 Amazon S3 控制台。如果您要配置跟踪以记录您的 Amazon Web Services 账户中所有 S3 on Outposts 桶的数据事件,使用 CloudTrail 控制台会更轻松。有关使用 CloudTrail 控制台配置跟踪以记录 S3 on Outposts 数据事件的信息,请参阅《Amazon CloudTrail 用户指南》中的数据事件。
重要
记录数据事件将收取额外费用。有关更多信息,请参阅 Amazon CloudTrail 定价
以下过程演示如何使用 Amazon S3 控制台配置 CloudTrail 跟踪来记录 S3 on Outposts 桶的数据事件。
注意
创建桶的 Amazon Web Services 账户拥有该桶,并且是唯一可以配置要发送到 Amazon CloudTrail 的 S3 on Outposts 数据事件的账户。
为 S3 on Outposts 桶中的对象启用 CloudTrail 数据事件日志记录
登录到Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择 Outposts buckets(Outposts 桶)。
-
选择要使用 CloudTrail 记录其数据事件的 Outposts 桶的名称。
-
选择属性。
-
在 Amazon CloudTrail 数据事件部分中,选择在 CloudTrail 中配置。
Amazon CloudTrail 控制台将打开。
您可以创建新的 CloudTrail 跟踪或重用现有跟踪,并配置要在跟踪中记录的 S3 on Outposts 数据事件。
-
在 CloudTrail 控制台的控制面板页面上,选择创建跟踪。
-
在步骤 1 选择跟踪属性页面上,提供跟踪的名称,选择用于存储跟踪日志的 S3 桶,指定所需的任何其他设置,然后选择下一步。
-
在步骤 2 选择日志事件页面的事件类型下,选择数据事件。
对于数据事件类型,选择 S3 Outposts。选择下一步。
注意
-
当为 S3 on Outposts 创建跟踪和配置数据事件日志记录时,必须正确指定数据事件类型。
-
如果您使用 CloudTrail 控制台,请对于数据事件类型选择 S3 Outposts。有关如何在 CloudTrail 控制台中创建跟踪的信息,请参阅 Amazon CloudTrail 用户指南中的使用控制台创建和更新跟踪。有关如何在 CloudTrail 控制台中配置 S3 on Outposts 数据事件日志记录的信息,请参阅《Amazon CloudTrail 用户指南》中的记录 Amazon S3 对象的数据事件。
-
如果您使用 Amazon Command Line Interface(Amazon CLI)或 Amazon SDK,请将
resources.type
字段设置为AWS::S3Outposts::Object
。有关如何使用 Amazon CLI 记录 S3 on Outposts 数据事件的更多信息,请参阅《Amazon CloudTrail 用户指南》中的记录 S3 on Outposts 事件。
-
-
如果您使用 CloudTrail 控制台或 Amazon S3 控制台配置某个跟踪以记录 S3 on Outposts 桶的数据事件,Amazon S3 控制台将显示已为该桶启用对象级别日志记录。
-
在步骤 3 查看和创建页面上,查看您配置的跟踪属性和日志事件。然后,选择创建跟踪。
为 S3 on Outposts 桶中的对象禁用 CloudTrail 数据事件日志记录
登录到 Amazon Web Services Management Console,然后通过以下网址打开 CloudTrail 控制台:https://console.aws.amazon.com/cloudtrail
。 -
在左侧导航窗格中,选择跟踪。
-
选择您创建用于记录 S3 on Outposts 桶的事件的跟踪名称。
-
在跟踪的详细信息页面上,选择右上角的停止记录。
-
在随后显示的对话框中,选择停止记录。
Amazon S3 on Outposts Amazon CloudTrail 日志文件条目
Amazon S3 on Outposts 管理事件可通过 Amazon CloudTrail 提供。此外,您还可以选择性地为 Amazon CloudTrail 中的数据事件启用日志记录。
跟踪是一种配置,可用于将事件作为日志文件传送到您指定的区域的 S3 存储桶中。Outposts 存储桶的 CloudTrail 日志包括一个新字段 edgeDeviceDetails
,该字段用于识别指定存储桶所在的 Outpost。
其他日志字段包括请求的操作、操作的日期和时间以及请求参数。CloudTrail 日志文件不是公用 API 调用的有序堆栈跟踪,因此它们不会按任何特定顺序显示。
下面的示例显示了一个 CloudTrail 日志条目,该条目说明了 s3-outposts
上的 PutObject 操作。
{ "eventVersion": "1.08", "userIdentity": { "type": "IAMUser", "principalId": "
111122223333
", "arn": "arn:aws:iam::111122223333
:user/yourUserName
", "accountId": "222222222222
", "accessKeyId": "AKIAIOSFODNN7EXAMPLE
", "userName": "yourUserName
" }, "eventTime": "2020-11-30T15:44:33Z", "eventSource": "s3-outposts.amazonaws.com", "eventName": "PutObject", "awsRegion": "us-east-1
", "sourceIPAddress": "26.29.66.20
", "userAgent": "aws-cli/1.18.39 Python/3.4.10 Darwin/18.7.0 botocore/1.15.39", "requestParameters": { "expires": "Wed, 21 Oct 2020 07:28:00 GMT", "Content-Language": "english", "x-amz-server-side-encryption-customer-key-MD5": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
", "ObjectCannedACL": "BucketOwnerFullControl", "x-amz-server-side-encryption": "Aes256", "Content-Encoding": "gzip", "Content-Length": "10", "Cache-Control": "no-cache", "Content-Type": "text/html; charset=UTF-8", "Content-Disposition": "attachment", "Content-MD5": "je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
", "x-amz-storage-class": "Outposts", "x-amz-server-side-encryption-customer-algorithm": "Aes256", "bucketName": "", "Key": "path/upload.sh" }, "responseElements": { "x-amz-server-side-encryption-customer-key-MD5": "
amzn-s3-demo-bucket1
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
", "x-amz-server-side-encryption": "Aes256", "x-amz-version-id": "001", "x-amz-server-side-encryption-customer-algorithm": "Aes256", "ETag": "d41d8cd98f00b204e9800998ecf8427f
" }, "additionalEventData": { "CipherSuite": "ECDHE-RSA-AES128-SHA
", "bytesTransferredIn": 10, "x-amz-id-2": "29xXQBV2O+xOHKItvzY1suLv1i6A52E0zOX159fpfsItYd58JhXwKxXAXI4IQkp6
", "SignatureVersion": "SigV4", "bytesTransferredOut": 20, "AuthenticationMethod": "AuthHeader" }, "requestID": "8E96D972160306FA", "eventID": "ee3b4e0c-ab12-459b-9998-0a5a6f2e4015", "readOnly": false, "resources": [ { "accountId": "222222222222
", "type": "AWS::S3Outposts::Object", "ARN": "arn:aws:s3-outposts:us-east-1
:YYY:outpost/op-01ac5d28a6a232904/bucket/path/upload.sh
" }, { "accountId": "222222222222
", "type": "AWS::S3Outposts::Bucket", "ARN": "arn:aws:s3-outposts:us-east-1
:YYY:outpost/op-01ac5d28a6a232904/bucket/
" } ], "eventType": "AwsApiCall", "managementEvent": false, "recipientAccountId": "444455556666", "sharedEventID": "02759a4c-c040-4758-b84b-7cbaaf17747a", "edgeDeviceDetails": { "type": "outposts", "deviceId": "op-01ac5d28a6a232904
" }, "eventCategory": "Data" }