15

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

AWS 周围有没有一种方法可以让我们在 IAM 或任何其他位置看到这些信息?

PS:我对提供访问日志的 S3 日志存储桶不感兴趣

4

2 回答 2

9

更新

AWS 刚刚宣布了AWS CloudTrail,终于从今天开始提供审计 API 调用(并且免费),有关详细信息,请参阅介绍性帖子AWS CloudTrail - 捕获 AWS API 活动

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

启用后,AWS CloudTrail 会使用AWS 管理控制台AWS 命令​​行界面 (CLI )、您自己的应用程序和第三方软件记录对 AWS API 的调用,并将生成的日志文件发布到您的Amazon S3存储桶中。选择。CloudTrail 还可以在每次发布文件时向您选择的 Amazon SNS 主题发出通知。每个调用都以 JSON 格式记录,以便于解析和处理。

请注意以下(临时)限制:

  • 尚未涵盖所有服务,但最重要的服务已包含在初始版本中,并且 AWS 计划随着时间的推移增加对其他服务的支持
    • 更新:AWS 最近增加了七项新服务,今天又增加了一项,见下文。
  • 更重要的是,并非所有区域都受支持(目前仅美国东部(弗吉尼亚北部)和美国西部(俄勒冈)区域),尽管 AWS 将尽快增加对其他区域的支持

初步答案

这是一个长期存在的功能请求,但不幸的是,截至今天,AWS 不提供(公共)审计跟踪 - 添加此功能的最合理方法可能是对AWS Identity and Access Management (IAM)的相应扩展,这是越来越普遍的身份验证和授权层,用于访问所有现有(几乎可以肯定是未来)产品和服务中的 AWS 资源。

因此, IAM 常见问题解答中提供了一些相应的答案:

于 2013-04-08T21:43:21.523 回答
1

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

1. 启用 CloudTrail

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

2.查看结果

CloudTrail 仪表板可让您进行一些粗略的搜索,但如果您有数千个事件,使用起来会很痛苦。

假设我想要 user 的操作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"

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

于 2016-12-30T00:17:54.620 回答