2. AWS账户与生产环境基础规划
在真正创建第一台生产实例之前,最值得投入时间的工作其实是“账户与治理地基”。AWS 把账户视为最强的隔离边界:网络、配额、账单、IAM 信任域、服务限制都以账户为界。如果一开始把所有业务塞进一个账户,后续再拆分将极其痛苦——资源迁移、ARN 变更、跨账户权限重建都会带来大量返工。因此本章的核心任务是:用 AWS Organizations 与 Control Tower 建立多账户结构,用 CIDR 与区域/可用区规划确定网络骨架,再用 IAM Identity Center 与权限边界把“谁能做什么”约束清楚。
一、多账户策略:OU 是治理的抓手
多账户不是按“每个应用一个账户”机械切分,而是按治理边界切分。常见做法是先划分几类 OU(Organizational Unit,组织单元):
- Security OU:存放日志归档账户(Log Archive)与安全工具账户(Security Tooling)。前者集中接收全组织的 CloudTrail、Config、VPC Flow Logs;后者运行 GuardDuty 委派管理员、Security Hub 聚合、IAM Access Analyzer。
- Infrastructure OU:存放共享网络账户(Network)、共享服务账户(Shared Services,如 CI/CD、镜像仓库、DNS)。
- Workloads OU:按环境再分 Prod / NonProd 子 OU,业务账户挂在其下。
- Sandbox OU:给开发者自由实验,但用 SCP 禁止访问生产数据、禁止关闭日志。
Organizations 提供两层控制:SCP(Service Control Policy)定义“账户内主体最多能做什么”,是权限的上限;Tag Policy 与 Backup Policy 则约束标签规范与备份策略。SCP 不授予权限,只做减法,因此它天然适合做“护栏”而非“授权”。
二、Control Tower:把 Landing Zone 标准化
手工搭多账户容易漏项。Control Tower 在 Organizations 之上提供 Landing Zone:自动创建 Log Archive 与 Audit 账户、部署 CloudTrail 组织跟踪、配置 AWS Config 记录器、下发 IAM Identity Center、并通过 Account Factory 用模板化账号基线(如统一 VPC、统一 SSO 权限集)创建新账户。它的价值在于“可重复”:新业务账户上线时,基线自动就位,而不是靠人肉 checklist。
落地时通常先启用 Control Tower,再在其管理的 OU 下创建业务账户。若已有存量账户,可通过注册(Enroll)方式纳入,但需注意已有 CloudTrail、Config 可能与 Landing Zone 基线冲突,应先评估再注册。
三、网络 CIDR 规划:一次算清,十年不返工
CIDR 规划的关键是预留与不重叠。推荐给整个组织分配一个较大的私有地址块,例如 10.0.0.0/8,再按账户/环境切分。一个可参考的示例划分(属于教学示例,非实测结果):
| 用途 | CIDR | 说明 |
|---|---|---|
| 共享网络账户 | 10.0.0.0/16 | Transit Gateway、集中出口 |
| 生产环境 | 10.10.0.0/16 | 按可用区再切 /20 子网 |
| 非生产环境 | 10.20.0.0/16 | 开发、测试、预发 |
| 沙箱 | 10.30.0.0/16 | 实验用途 |
| 预留 | 10.40.0.0/14 起 | 未来扩展 |
每个 VPC 内再按可用区划分子网。以生产 VPC 10.10.0.0/16 为例,可给三个可用区各分配一个 /20 的私有子网(约 4091 个可用 IP)与一个 /24 的公有子网。注意 AWS 每个子网会保留 5 个 IP(网络地址、VPC 路由、DNS、未来保留、广播),计算容量时要扣除。
四、区域与可用区选择
区域选择要综合四点:合规与数据驻留(数据能否出境)、延迟(与用户和上下游系统的距离)、服务可用性(目标服务是否在该区域提供)、成本(不同区域价格有差异)。生产系统至少跨两个可用区部署,关键系统建议三个,以容忍单 AZ 故障。若使用多区域,需明确主备或双活模式,并考虑跨区域数据复制与 DNS 故障转移(如 Route 53 健康检查 + 故障转移路由)。
五、IAM Identity Center 与权限边界
IAM Identity Center(原 AWS SSO)解决“人如何登录多账户”的问题:对接企业 IdP(如 Okta、Azure AD)或内置目录,用权限集(Permission Set)定义角色模板,再通过组到账户的分配把权限授予人。这样人员变动只需改 IdP 组,无需逐账户改 IAM。权限集底层会为每个账户生成对应 IAM 角色,因此仍受 SCP 约束。
权限边界(Permissions Boundary)则用于“授权上限”:当需要把创建角色的能力下放给团队时,给他们一个边界策略,规定其创建出的角色最多只能拥有哪些权限,防止权限提升。它与 SCP 的区别是:SCP 作用于账户内所有主体,权限边界作用于单个 IAM 实体。
六、落地顺序建议
- 启用 Organizations,创建 Log Archive 与 Security Tooling 账户,开启 CloudTrail 组织跟踪。
- 启用 Control Tower,建立 Landing Zone,确认基线部署成功。
- 按 OU 结构创建业务账户,用 Account Factory 保证基线一致。
- 在共享网络账户规划 Transit Gateway 与集中出口,各业务 VPC 通过 TGW 互联。
- 配置 IAM Identity Center,对接 IdP,定义权限集并分配组。
- 为需要下放创建角色能力的团队设置权限边界,并纳入 SCP 复核。
Deny 精确到具体资源 ARN,并在沙箱 OU 验证后再推广。