记录对amazon s3 /其他AWS服务的操作

时间:2013-02-07 17:27:13

标签: amazon-web-services amazon-s3 amazon-ec2 amazon-cloudfront amazon-iam

我正在尝试查看哪个用户负责S3中的更改(在存储桶级别)。 我找不到在S3桶级别或EC2创建实例的操作的审计跟踪。 Beanstalk记录了机器执行的操作,但不记录哪个用户。

我们是否可以通过AWS在IAM或任何其他位置查看此信息?

P.S:我不想知道提供访问日志的S3日志桶

2 个答案:

答案 0 :(得分:9)

更新

AWS刚刚宣布AWS CloudTrail,最终提供截至今天(并且免费)的审核API调用,有关详细信息,请参阅介绍性帖子AWS CloudTrail - Capture AWS API Activity

  

您是否需要跟踪一个或多个AWS的API调用   账户?如果是这样,新的AWS CloudTrail服务适合您。

     

启用后,AWS CloudTrail会记录对AWS API的调用   使用AWS Management ConsoleAWS Command Line Interface (CLI),您自己的应用程序以及第三方软件和发布   生成的日志文件到您选择的Amazon S3桶。   CloudTrail还可以向Amazon SNS主题发出通知   您每次发布文件时的选择。每个调用都以JSON格式记录   格式,便于解析和处理。

请注意以下(临时)约束:

  • 并非所有服务都已涵盖,但最重要的服务已包含在初始版本中,AWS计划随时添加对其他服务的支持
    • 更新:AWS最近添加了Seven New Services,今天又添加了另一个,请参阅下文。
  • 更重要的是,并非所有地区都得到支持(现在美国东部(弗吉尼亚北部)和美国西部(俄勒冈州)),尽管AWS将尽快添加对其他区域的支持

初步答复

这是一项长期存在的功能请求,但遗憾的是AWS从今天开始不提供(公共)审计跟踪 - 添加此功能的最合理方式可能是AWS Identity and Access Management (IAM)的相应扩展,这是越来越普遍存在的身份验证和授权层,用于跨所有现有Products & Services访问AWS资源。

因此,IAM FAQs中的这些答案中提供了一些相应的答案:

  

答案 1 :(得分:1)

单个CloudTrail的当前定价是免费的。

<强> 1。启用CloudTrail

使用CloudTrail仪表板并将所有事件发送到S3存储桶,例如my-cloudtrail

<强> 2。完成结果

CloudTrail仪表板允许您进行粗略搜索,但如果您有数千个事件,则使用起来很麻烦。

假设我想为用户foo_user采取行动,我只使用CLI工具:

mkdir -p /tmp/cloudtrail
cd /tmp/cloudtrail
aws s3 sync s3://mc10-cloudtrail .
cd AWSLogs
zcat `find . -type f` | jq '.Records[] | "\(.eventName) \(.userIdentity.userName)"' | grep food_user | sort | uniq

示例输出:

"CreateGrant foo_user"
"DescribeInstances foo_user"
"GetConsoleOutput foo_user"
"ModifyInstanceAttribute foo_user"
"StartInstances foo_user"
"StopInstances foo_user"

注意:在CloutTrail中,S3数据事件的计费方式不同,但这有点多余,因为您只需启用S3存储桶的日志记录并grep这些日志,或将它们指向Logstash / Kibana。