【问题标题】:Retrieving Username from CloudTrail logs for RunInstances event从 CloudTrail 日志中检索 RunInstances 事件的用户名
【发布时间】:2019-06-29 18:51:45
【问题描述】:

我们有大量的 EC2 实例在 AWS 中运行了大约 1 年。现在我们正在尝试根据我们启动实例所使用的用户名对未使用的实例执行清理活动。

我已尝试从 S3 Bucket 下载 cloudtrail 日志并尝试过滤用户名和“RunInstances”事件,以便我可以找到启动实例的用户以及实例详细信息。

以下是我用来将所有 cloudtrail 日志下载到单个文件夹中的脚本,解压缩它们并通过“RunInstances”事件过滤实例并给出实例计数。

我需要帮助从每个带有“RunInstances”事件的日志中检索用户名并停止实例。

我的脚本:

#!bin/sh

s3url="s3://S3bucket/AWSCloudtrailLogs/<accountno>/CloudTrail/region/2016/" 

for (( i=1; i<=12; i++ ))
do
   for (( j=1; j<=31; j++ ))
   do
        if [[ $i -le 9 && $j -le 9 ]]
        then
           aws s3 cp $s3url/0$i/0$j/ ~/test/ --recursive
        elif [[ $i -le 9 && $j -ge 10 ]]
        then
           aws s3 cp $s3url/0$i/$j/ ~/test/ --recursive
        elif [[ $i -ge 10 && $j -le 9 ]]
        then
           aws s3 cp $s3url/$i/0$j/ ~/test/ --recursive
        elif [[ $i -ge 10 && $j -ge 10 ]]
        then
           aws s3 cp $s3url/$i/$j/ ~/test/ --recursive
        fi
   done
done

for v in `ls ~/test/` ; do gunzip $v ; done

for v in `ls ~/test/` ; do cat ~/test/$v | grep RunInstances >> ~/test/result.txt; done

grep -o 'RunInstances' ~/test/result.txt | wc -l

有没有我可以在不下载 zip 文件并直接从 s3 存储桶本身获取信息的情况下做到这一点?因为这需要很长时间,因为我们有大约 100 万个日志文件。

我需要一种方法来使用任何编程语言或脚本来解决这个问题。

感谢您的支持。

【问题讨论】:

  • 您是在 EC2 实例上还是在您的 PC 上运行它?从 EC2 实例连接到 S3 会快很多。由于您需要解压缩,我真的看不到下载的替代方法,除了 github.com/s3fs-fuse/s3fs-fuse

标签: amazon-web-services amazon-s3 amazon-ec2 boto3 amazon-cloudtrail


【解决方案1】:

directly get info from s3 bucket itself 是什么意思? S3 是存储资源而不是计算资源。您可以避免下载到磁盘文件。相反,您可以在内存中处理它而不保存到文件中,但仍然需要下载它。

建议:

  • 不要下载全年所有地区的所有轨迹。这需要很长时间
  • 一次处理一个地区的一个月数据。在其他月份/地区重复此操作
  • 使用 Python/Boto3,它有许多方便的功能来处理跟踪日志并提取您想要的信息

我每天都这样做(仅针对前一天的日志),但我无法提供代码。

【讨论】:

    【解决方案2】:

    与其下载所有 s3 日志然后查询它,为什么不使用 Athena 之类的东西!这将节省您的时间并大大减少您的工作量。 Cloudtrail 确实提供了有关谁启动了实例及其 sdk 可用的足够信息;您可以使用 boto3 编写一个 python 脚本,也可以设置一个 cron 作业来每天运行它。

    【讨论】:

      猜你喜欢
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 2019-06-29
      相关资源
      最近更新 更多