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 不授予权限,只做减法,因此它天然适合做“护栏”而非“授权”。

建议在根 OU 就挂上一条“拒绝关闭 CloudTrail、拒绝删除 GuardDuty 检测器、拒绝修改日志账户的 S3 桶策略”的 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/16Transit 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 实体。

多账户治理与网络骨架总览 AWS Organizations 根 SCP 护栏:禁止关闭 CloudTrail / GuardDuty,禁止修改日志桶策略 Security OU Log Archive / Security Tooling Infrastructure OU Network / Shared Services Workloads OU Prod / NonProd Sandbox OU 实验账户 Control Tower Landing Zone 基线 Account Factory 开户 CloudTrail / Config 自动部署 IAM Identity Center 企业 IdP 对接 权限集 → 账户角色 组 → 账户分配 Permissions Boundary 限制单个 IAM 实体上限 防止权限提升 与 SCP 互补 CIDR 规划(示例) 10.0.0.0/16 共享网络 10.10.0.0/16 生产 10.20.0.0/16 非生产 10.30.0.0/16 沙箱 10.40.0.0/14 预留

六、落地顺序建议

  1. 启用 Organizations,创建 Log Archive 与 Security Tooling 账户,开启 CloudTrail 组织跟踪。
  2. 启用 Control Tower,建立 Landing Zone,确认基线部署成功。
  3. 按 OU 结构创建业务账户,用 Account Factory 保证基线一致。
  4. 在共享网络账户规划 Transit Gateway 与集中出口,各业务 VPC 通过 TGW 互联。
  5. 配置 IAM Identity Center,对接 IdP,定义权限集并分配组。
  6. 为需要下放创建角色能力的团队设置权限边界,并纳入 SCP 复核。
常见坑:CIDR 重叠会导致 VPC 无法对等或接入 TGW;SCP 写错可能把自己锁在账户外,务必先用 Deny 精确到具体资源 ARN,并在沙箱 OU 验证后再推广。