阻止 CloudTrail 记录 CloudWatch 事件

问题描述 投票:0回答:1

我有一个 CloudTrail 设置来记录管理事件,但是每月的服务成本已上升到不合理的数额。做了一些调查后,90% 的事件似乎都是 Lambda 写入 CloudWatch Log,并且还读取活动。

理想情况下,我只想记录写入事件,并完全排除 CloudWatch。

首先,我尝试调整现有的 CloudTrail,将 readOnly 设置为 false,并排除 messages.amazaon.aws.com,如下所示:

aws cloudtrail put-event-selectors --trail-name existing-management-trail --region eu-west-1 --advanced-event-selectors "[{\"Name\":\"Write Management Events (Excluding CloudWatch)\",\"FieldSelectors\":[{\"Field\":\"eventCategory\",\"Equals\":[\"Management\"]},{\"Field\":\"readOnly\",\"Equals\":[\"false\"]},{\"Field\":\"eventSource\",\"NotEquals\":[\"logs.amazonaws.com\"]}]}]"

An error occurred (InvalidEventSelectorsException) when calling the PutEventSelectors operation: The specified eventSource selectors are not supported when eventCategory is set to "Equals": "Management".

然后我想,如果您无法对管理事件放置过滤器,我会创建一个全新的过滤器,并指定我想要跟踪的各个资源:

aws cloudtrail create-trail --name test-trail --s3-bucket-name aws-cloudtrail-test-writeonly --is-multi-region-trail --region eu-west-1

aws cloudtrail put-event-selectors --trail-name test-trail --region eu-west-1 --advanced-event-selectors "[{\"Name\":\"Write Events (Excluding CloudWatch)\",\"FieldSelectors\":[{\"Field\":\"resources.type\",\"Equals\":[\"AWS::IAM::User\",\"AWS::IAM::Role\",\"AWS::IAM::Policy\",\"AWS::S3::Bucket\",\"AWS::EC2::Instance\",\"AWS::EC2::Volume\",\"AWS::EC2::SecurityGroup\",\"AWS::RDS::DBInstance\",\"AWS::Lambda::Function\",\"AWS::ElasticLoadBalancingV2::LoadBalancer\",\"AWS::CloudFormation::Stack\",\"AWS::EKS::Cluster\",\"AWS::SNS::Topic\",\"AWS::SQS::Queue\",\"AWS::Route53::HostedZone\",\"AWS::SecretsManager::Secret\",\"AWS::KMS::Key\"]},{\"Field\":\"readOnly\",\"Equals\":[\"false\"]}]}]"

An error occurred (UnsupportedOperationException) when calling the PutEventSelectors operation: The operation requested is not supported in the region.

这个错误有点令人困惑,因为 eu-west-1 应该支持这个吗?我对如何正确设置它有点困惑 - 或者为什么很难排除 CloudWatch 事件。当前的设置确实有很多 lambda 处于有意的详细状态!我什至认为我们认为拥有 CloudTrail 的目的是记录 AWS 用户活动,以便我们可以跟踪我们的一位工程师是否无意中修改了某些内容,以便我们可以解决错误 - 它并不是真的打算记录我们的 lambda 活动.

任何有关如何提供帮助的想法,我都很感激。如果不可能,我也很想知道为什么不(如果你知道的话!)

amazon-web-services amazon-cloudwatch amazon-cloudtrail
1个回答
0
投票

管理事件不支持 eventSource,当您未在命令中指定任何 eventCategory 时,CloudTrail 默认采用管理事件。

AWS 设计了 CloudTrail 来进行全面审核,确保关键管理操作不会被意外排除。由于 Lambda 与 CloudWatch 的交互是服务到服务的,因此这些事件仍被视为“写入”事件并记录为管理活动的一部分。因此,AWS cloudtrail 会跟踪 AWS 账户内的所有 API 调用,无论是服务还是 IAM 用户都已完成此操作。

您可以将日志记录限制为仅写入管理事件,这可以显着减少记录的交互量。

aws cloudtrail put-event-selectors --trail-name test-trail --region eu-west-1 --event-selectors '[
  {
    "ReadWriteType": "WriteOnly",
    "IncludeManagementEvents": true
  }
]'

aws cloudtrail put-event-selectors --trail-name test-trail --region eu-west-1 --advanced-event-selectors '[{
  "Name": "Write Management Events",
  "FieldSelectors": [
    {"Field": "eventCategory", "Equals": ["Management"]},
    {"Field": "readOnly", "Equals": ["false"]}
  ]
}]'

管理事件记录管理 AWS 资源的高级控制平面 API 操作。这些事件包括:

  • 创建、修改或删除 AWS 资源(例如,创建 S3 存储桶、启动 EC2 实例、部署 Lambda 函数)。

  • 服务配置更改(例如,更新 IAM 策略、更改安全组规则)。

© www.soinside.com 2019 - 2024. All rights reserved.