跨多账号收集CloudTrail日志
在本篇文章中,我将介绍如何设置跨账户收集 AWS CloudTrail 事件日志。如果不是构建了多账户管理方式则可以跳过此文内容。
基本概念
如果不了解这个基本概念对于后面的内容理解起来就会比较困难,建议先查看基本概念。
假设前提
有多个AWS账户:dev,test,prod,security,management。为了对每个账户进行合规性审计,我们需要将日志集中存储到security账户中。Management是主账户,拥有最大的权限。
收集所有账户的 CloudTrail Logs到Account S(security-account),
Account A (dev-account),
Account B (test-account),
Account C (prod-account),
Account D (manage-account) 。
部署
在Account S(security-account)创建一个S3存储桶,更改存储桶策略允许Account D (manage-account)写入文件。以下的示例存储桶策略实现的是允许账户只要在组织范围内,就可以读取和写入。your-organization-id可以从AWS Organizations这个服务中获取到,https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_details.html#orgs_view_org
通过CLI命令可以获取出Organization ID:ID类似于"o-aa111bb222"
$ aws organizations describe-organization
S3存储桶示例策略如下:
登录管理账户Account D,创建组织跟踪,并发送到CloudWatch Logs。创建跟踪(trail)的时候要注意勾选2个配置,一个是“为我组织中的所有账户启用”,另外一个是启用“CloudWatch Logs”,使用刚才在安全账号创建好的S3存储桶。其余配置根据需要进行设置。
“为我组织中的所有账户启用”可以实现多个账户中cloudtrail的日志统一收集;
“CloudWatch Logs”启用是实现安全告警通过邮件或者slack等方式发送的前提条件;
使用刚才在Account S(security-account)创建好的S3存储桶名称。
创建完成后即实现了跨多账号收集CloudTrail日志,并且可以通过CloudWatch触发安全告警。
最后更新于