terraform - 如何为 AWS 组织账户实施集中式日志记录
问题描述
我正在开展一个项目来集中我们的 AWS 安全日志。我们遇到的问题是我们刚刚启用了组织级别的日志记录。以前,我们为每个单独的 aws 帐户提供了安全 terraform。现在我们正在遵循这种做法。这种情况的问题在于,我们有多个帐户和多个 s3 存储桶、多个 cloudwatch 日志、多个 cloudwatch 警报。将所有这些集中到一个“安全”/“组织”帐户中会更容易。
创建一个仅用于日志记录的 aws 帐户是否有意义?如果是这样,创建安全组 (Security Admin) 和安全角色 (ops-sec-role) 是否有意义。例如,我们可以将安全用户 (sec-op-1) 添加到组中,以便他们可以在安全帐户中担任角色。理性存在是遵循角色分离的哲学。
我正在研究使用 CloudFormation 的潜在解决方案,但最好使用 terraform 来实现它。
以前有这样做过吗?
解决方案
是的,拥有一个集中的日志帐户绝对有意义。如果您要在整个组织中推广此功能,我建议这实际上是使用CloudFormation Stack Sets的最佳时机。
- 在主组织帐户中定义一个堆栈集,该堆栈集将为每个帐户创建您的日志记录基础设施以及它如何转发到中央帐户(IAM 角色、Cloudtrail 日志、存储桶复制等)
- 将此堆栈集应用于您的整个组织。这将在每个子账户中自动创建一个堆栈实例。以后添加的任何新帐户也将自动创建此堆栈。
- 使用组织服务控制策略来阻止任何人修改子账户中的日志记录基础设施。
您可以在 Terraform 中做同样的事情,但您必须编写自己的自动化程序才能将其应用于许多帐户,并且还必须记住或自动运行新组织帐户。我通常更喜欢 Terraform for IaC,但这是 CloudFormation 真正大放异彩的少数情况之一。混合方法也可以工作,将 CloudFormation 用于 CloudTrail 和 IAM 等标准事物,并将自定义 Terraform 用于具有自己特定要求的帐户。
您可能还想看看AWS Control Tower服务,它可以为您自动执行其中的一些操作,同时应用一些其他安全最佳实践。
资料来源:我是经过认证的 AWS 解决方案架构师专业人士和开发运营工程师专业人士。
推荐阅读
- android - 如何在sharedpreferences android中保存应用程序选择的语言
- ios - 具有大型数据集的 Firestore 地图字段性能
- c++ - 有没有办法找出我的操作系统在我的 RAM 中的位置?
- xslt - XSLT 将多个输入文件从 hocr 转换为 alto xml Saxon
- android - 为什么Bitmap会使图像如此模糊?
- php - 识别哪些类具有注释并获取也具有注释的属性的值
- reactjs - 为什么视频没有缓存在浏览器上?
- pandas - 如何将 +/- 1% 添加到条件中?
- entity-framework-core - 在 .net core 3.1 中分组
- typescript - 如何升级 React Native 使用的 Typescript 版本?