Answers:
AWS提供了CloudTrail服务,该服务可跟踪您帐户中完成的大多数API调用。然后将它们存储在指定的S3存储桶中的文件中。
https://aws.amazon.com/cloudtrail/
使用CloudTrail,您可以查看谁或哪个服务调用了哪个更改-在许多情况下还包括使用了哪些参数。
不幸的是,它目前不支持所有服务。
有多种AWS服务可以帮助您解决此问题,这实际上取决于您的确切需求,哪种才最适合您。每种功能都有不同的功能(和成本)。
提到了CloudTrail,但是考虑到您的问题(在@Evgeny的答案的评论中提到),我想到的第一个选项是AWS Config Service。它会在某个时间点(在S3存储桶中)存储您的AWS配置的“快照”,但是也可以将所有更改发送到SNS主题。然后,您可以根据需要处理这些问题。例如,在人流量少的帐户中,我直接将这些发送到Slack;在流量较高的帐户上,我正在跟踪NumberOfMessagesPublished
有关该SNS主题的指标,以了解是否进行了比平常更多的更改。
AWS Config还提供了“规则”服务;这些比我期望的要贵一些,但是根据您的需求,它们可能会有用。只是不要像我在玩耍时那样一次激活所有这些……每个规则的当月费用立即适用。;)(但是您可以使用Config而不使用规则-这就是我目前正在做的事情)。
还有Trusted Advisor,它不会完全满足您的要求,但是可以方便地对工程师如何配置您的基础结构进行某些检查,例如是否有人打开了S3存储桶。对于业务级别支持计划或更高级别的计划,此功能最有用,因为否则会阻止许多检查。
然后是第三方工具,例如CloudCheckr,结合了AWS Cost Explorer,Trusted Advisor,Config,CloudTrail,CloudWatch,Inspector和GuardDuty的各个方面。如果您想深入了解,但可以节省时间自行配置所有内容,则很有用。
另外,您可以使用Terraform或CloudFormation之类的工具管理基础架构,并要求必须通过这些工具进行所有更改。然后,您可以将配置文件/模板提交给源代码管理,甚至可以对CI中的实时基础架构进行测试,如果有人进行了非跟踪更改,则构建失败。这样,您的提交历史记录将成为您的审核日志-但这确实需要对您的工程师进行纪律检查!