Kanji
・云架构工程师 / 自由职业 ・1993年出生 ・爱媛县出身 / 现居东京都涩谷区 ・5年 AWS 实战经验 个人资料详情
目录
AWS CloudTrail(以下简称“CloudTrail”)是一项 记录您在 AWS 账户中执行的操作 的服务。
它记录三种类型的事件:管理事件、数据事件和洞察事件。
管理事件记录使用 AWS 管理控制台、AWS 开发工具包、AWS CLI、AWS API 等修改 AWS 资源的 API 调用。
数据事件记录活动,例如访问 S3 存储桶中的对象和执行 Lambda 函数。
Insight 事件记录与您的 AWS 账户的安全性和性能相关的发现结果。
默认情况下,创建 AWS 账户时会启用 CloudTrail。
参考:【什么是AWS CloudTrail?- AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)
但是,默认情况下不会创建“轨迹”。您可以在 AWS 管理控制台中查看最多 90 天的事件,但由于不输出日志文件,因此您无法使用 Athena 或 CloudWatch Logs 分析它们。如果您想延长保留期,则需要配置输出到 S3 存储桶或 CloudWatch Logs。
参考: CloudTrail 的工作原理 - AWS CloudTrail
如果满足以下任一条件,您需要创建 CloudTrail 跟踪:
1:传送到 S3 存储桶的第一个管理事件是免费的。从传送到 S3 存储桶的第二个管理事件开始,将收取传送费用。 2:对于管理和数据事件,在传送到 S3 存储桶时收费,而对于洞察事件,根据分析事件的数量收费。
- AWS::CloudTrail::Channel - AWS::CodeWhisperer::Customization - AWS::CodeWhisperer::Profile - AWS::Cognito::IdentityPool - AWS::DynamoDB::Stream - AWS::DynamoDB::Table - AWS::EC2::Snapshot - AWS::EMRWAL::Workspace - AWS::FinSpace::Environment - AWS::Glue::Table - AWS::GuardDuty::Detector - AWS::KendraRanking::ExecutionPlan - AWS::KinesisVideo::Stream - AWS::Lambda::Function - AWS::ManagedBlockchain::Network - AWS::ManagedBlockchain::Node - AWS::MedicalImaging::Datastore - AWS::PCAConnectorAD::Connector - AWS::S3::AccessPoint - AWS::S3::Object - AWS::S3ObjectLambda::AccessPoint - AWS::S3Outposts::Object - AWS::SageMaker::Endpoint - AWS::SageMaker::ExperimentTrialComponent - AWS::SageMaker::FeatureGroup - AWS::SNS::PlatformEndpoint - AWS::SNS::Topic - AWS::SSMMessages::ControlChannel - AWS::Timestream::Database - AWS::Timestream::Table - AWS::VerifiedPermissions::PolicyStore
录制的目的因资源而异,因此请根据需要进行选择。
例如,通过记录S3存储桶的数据事件,您可以获取存储桶中对象的更改历史记录。
请注意,虽然数据事件保证完整性,但 S3 服务器访问日志却不能。
参考:【如何处理S3服务器访问日志中丢失的访问日志|DevelopersIO](https://dev.classmethod.jp/articles/tsnote-the-s3-server-access-log-Detected-an-unlogged-access/)
另一方面,服务器访问日志有时用于输出 Control Tower 创建的 Config 或 CloudTrail 日志的存储桶,AWS 基础安全最佳实践建议输出服务器访问日志。
参考: AWS 基础安全最佳实践 v1.0.0 (FSBP) 标准 - AWS Security Hub
缺乏保证的完整性可能是一个问题,但由于数据事件的成本可能很高,因此可以选择接受缺乏完整性并使用服务器访问日志。
洞察事件使用机器学习来分析管理事件并在行为偏离常态时检测异常活动。
当有许多 API 调用时,写入事件检测异常活动。
当 API 错误率较高时,写入/读取事件检测异常活动。
检测到异常活动的主要原因包括:
恶意API访问
应用程序错误
由于权限配置错误(例如 IAM 角色或 SCP)而导致访问被拒绝
由于洞察事件比其他事件更昂贵,因此您应该仔细考虑启用它们。
如上所述,如果您在生产环境中经常对系统进行更改,则可能会生成洞察事件,因此请考虑根据需要启用它们。