首页 AWS Control Tower vs 手动部署多账号架构:对比与实践注意点
文章
取消

AWS Control Tower vs 手动部署多账号架构:对比与实践注意点

管理 AWS 多账号安全架构通常有两种方式:传统的手动 Terraform 部署和 AWS 推荐的 Control Tower。本文从实践中总结两者的核心差异。

两种方式概述

传统手动方式

通过 Terraform 自行管理所有资源,包括 AWS Organizations、OU 结构、账号创建、SCP、日志审计等全部基础设施。灵活性最高,但需要从零搭建。

Control Tower 方式

Control Tower 作为托管服务,自动化创建 Landing Zone(组织、默认 OU、日志归档/审计账号、基础 CloudTrail、IAM Identity Center)。在此基础上再通过 Terraform 部署自定义安全服务。

覆盖范围对比

能力传统手动Control Tower
AWS Organization 创建Terraform 管理CT 自动创建
OU 结构Terraform 自由定义CT 管理,Terraform 只能读取
成员账号创建Terraform 或手动Account Factory
基础 CloudTrail手动配置自动创建
审计 S3 桶手动创建,名称自定CT 自动创建,名称固定
IAM Identity Center手动启用自动集成
GuardRails(强/建议/可选)需自行实现开箱即用
AWS Config 基础规则手动配置自动配置
SCPTerraform 管理Terraform 管理(不受 CT 限制)
安全服务(GuardDuty/Security Hub 等)Terraform 管理Terraform 管理
工作负载(VPC/EC2/ALB)Terraform 管理Terraform 管理

Control Tower 的优势

快速落地最佳实践 Landing Zone(基础 CloudTrail + 审计 S3 + Config 规则 + IAM Identity Center)一键部署,无需手动拼装各组件。

内置治理能力 GuardRails 覆盖 S3 加密、公开访问限制、CloudTrail 启用等常见安全基线,分强/建议/可选三级,开箱即用。

账号生命周期管理 Account Factory 提供标准化的账号创建流程,新增账号自动加入对应 OU 并继承 GuardRails。

降低配置漂移风险 CT 持续检测 Landing Zone 配置漂移(如手动改动了 CT 管理的 S3 桶策略),通过 Console 即可修复。

迁移/实施中的注意点

1. OU 管理被 CT 锁定

CT 接管后不能使用 Terraform 的 aws_organizations_organizational_unit 创建或管理 OU。OU 的创建和调整必须在 CT Console 操作或通过 AWS API(需 CT 授权)。

Terraform 中需要将 Organization 模块的 resource 改为 data source:

1
2
3
4
5
# 之前(手动方式)
resource "aws_organizations_organization" "this" { ... }

# 之后(CT 方式)
data "aws_organizations_organization" "this" { }

2. 审计桶名称不一致

CT 自动创建的审计 S3 桶名称遵循固定格式(如 aws-controltower-logs-xxxx-xxxx),和手动定义的不同。如果 SCP 中有针对审计桶的 aws:ResourceArn 条件,需要更新桶名变量。

3. Terraform 代码需适配

大部分安全服务模块(SCP、GuardDuty、Security Hub、Config、Inspector、Cross-Account IAM 等)可以直接复用,只需调整 Organization 相关的 resource→data source 迁移。

4. RCP 兼容性

RCP(Resource Control Policy)在 CT 环境下可能和 IAM Identity Center 冲突,需根据实际情况权衡是否启用。

5. Landing Zone 漂移检测

CT 管理的资源(如审计 S3 桶策略、CloudTrail 配置)如果被外部 Terraform 或其他工具意外修改,CT 会报告漂移。运维时需注意区分哪些资源归 CT 管、哪些归 Terraform 管。

建议

场景推荐方式
新建多账号环境Control Tower + Terraform 补充
已有手动部署,账号少(< 5)评估迁移成本,可考虑继续手动
已有手动部署,账号多逐步迁移到 CT,注意 OU 和审计桶的适配
需要完全自定义 OU 和账号流程手动方式更灵活

Control Tower 不是银弹——它在 Organizations 层做了限制以保障治理一致性,适合”标准化优先”的场景。如果团队需要极高的 OU 灵活度或不希望被 CT 约束,手动方式仍然是合理的选择。

本文由作者按照 CC BY 4.0 进行授权

OpenCode 中转导致 WebSearch 失效的排查与可用方案

AWS 多账号架构中的 Break-Glass 应急账号设计与实践