S3 日志事件问题

S3 日志事件问题

有没有办法查看“g2”IAM 用户在 S3 中执行的操作以及他们从哪些 IP 运行?我已经启用了 S3 操作的日志记录。

我仍然无法弄清楚的一点是,当我尝试在两种情况下使用 AWS 访问密钥或用户名在 Cloud trail 中查找日志时,我得到的结果为无匹配项。但是,根据时间来看,该用户 (g2) 一整天都在与 S3 交互,这似乎是某个服务器上运行的 CRON。如何识别它?

我确实分析了 CloudTrail 事件历史记录,并使用 CloudWatch Logs Insights 通过使用“用户名”和“AWS 访问密钥”找出了 90 天内的访问日志记录 IP 地址,但似乎对查找“g2”用户数据没有太大帮助。“g2”IAM 用户确实具有管理员访问权限。该用户没有控制台管理访问权限。我怀疑它只是在执行“ls”来检查某些文件是否存在。我认为它每天都会执行相同的操作

我知道用户执行的日期/时间和资源 (S3),但仅此而已(没有存储桶、没有 IP 等)。我们能用这些信息做什么吗?

I already tested these queries but was not able to get the output 

    fields @timestamp, eventName, eventType, requestParameters.bucketName, requestParameters.key, resources.0.ARN
    | filter sourceIPAddress == "xx.xx.xx.xx" and userIdentity.sessionContext.sessionIssuer.userName == "g2" and eventSource == "s3.amazonaws.com"
    | sort @timestamp desc
    | limit 100

    fields @timestamp, @message
    | filter userIdentity.userName == "g2"
    | sort @timestamp desc
    | limit 20

    fields @timestamp, @message
    | filter sourceIPAddress == "192.168.1.1"
    | sort @timestamp desc
    | limit 20

Athena 查询 CloudTrail 日志是否有用?CLI 工具 CloudTrail 日志对我的情况有帮助吗?有人能帮我吗?

答案1

我设置了一条新的 Trail 来测试这一点。流程如下:

  1. 创建新的 CloudTrail,按照 @Tim 的建议启用向 CloudWatch 的传输,并在 S3 上启用数据事件。您可能只想在 S3 上启用数据事件并过滤相关存储桶,否则您可能会生成大量日志!
  2. 已将一些文件复制到测试存储桶中(foo.txt
  3. CloudWatch -> 日志组 -> 我的组 -> “在 Log Insights 中查看”

一旦日志开始到达,我就可以轻松执行以下操作:

从我的 IP 中查找用法(如果您知道 IP,请替换 192.168.1.1):

fields @timestamp, @message
| filter sourceIPAddress == "192.168.1.1"
| sort @timestamp desc
| limit 20

查找我所担任角色的活动:

fields @timestamp, @message
| filter userIdentity.sessionContext.sessionIssuer.userName == "Admin"
| sort @timestamp desc
| limit 20

然后,我可以使用左侧的箭头展开任意行以查找更多有用的字段。可以将任何字段添加到列表中以fields使其显示得更好,例如使用 IP & 角色 & 服务来缩小搜索范围并显示有用的信息:

fields @timestamp, eventName, eventType, requestParameters.bucketName, requestParameters.key, resources.0.ARN
| filter sourceIPAddress == "xx.xx.xx.xx" and userIdentity.sessionContext.sessionIssuer.userName == "Admin" and eventSource == "s3.amazonaws.com"
| sort @timestamp desc
| limit 100

快速更新:我登录了我的备份存储帐户,要找到实际的 IAM 用户,关键是:

filter userIdentity.userName == "iam-user-name"

相关内容