3. AWS账户与网络基础规划
容器平台一旦进入规模化阶段,网络底座就不再是“先跑起来再说”的附属品。EKS集群、ALB Ingress、服务网格、跨团队共享的镜像仓库与日志系统,都会把账户边界和VPC拓扑的缺陷放大成运维事故。本节围绕四个相互约束的决策展开:多账户如何切分、VPC如何组织、子网如何划分、安全组与NACL如何分工。目标是让网络底座在业务增长、团队扩张和合规审计时都能平滑扩展,而不是推倒重来。
多账户策略:用OU承载治理意图
AWS Organizations是账户治理的骨架。推荐按“职能+环境”二维切分,而不是把所有环境塞进一个账户。一个可落地的结构是:根下先建 Security、Infrastructure、Workloads、Sandbox 四个OU。安全OU放日志归档账户和审计账户;基础设施OU放网络枢纽账户、共享服务账户(镜像仓库、CI/CD);工作负载OU再按业务域和环境细分,例如 Workloads/Prod、Workloads/NonProd。这样做的直接收益是:SCP可以按OU施加硬性边界,比如禁止关闭CloudTrail、禁止创建公网可写的S3桶;而环境隔离让生产变更无法被非生产凭证误触。
账户数量不是越多越好。经验值是:每个业务域每套环境一个账户,共享能力集中到基础设施账户。若团队少于三个,可先合并NonProd,但生产账户必须独立。账户创建后立即做三件事:启用CloudTrail组织级跟踪并投递到日志账户、开启GuardDuty与Security Hub、通过RAM共享必要的Transit Gateway与子网。这些动作决定了后续网络能否被统一观测。
VPC拓扑:枢纽辐射与共享子网
规模化容器平台推荐“枢纽辐射(Hub-and-Spoke)+ 共享子网”混合拓扑。网络枢纽账户持有Transit Gateway(TGW)和集中式出口VPC,各业务VPC作为辐射通过TGW Attachment接入。TGW负责VPC间路由与集中出口,避免每个VPC各建NAT网关造成成本与审计碎片。对于需要被多个账户复用的子网(如EKS控制面ENI所在子网、共享ALB子网),使用VPC共享(RAM)把子网共享给业务账户,业务账户在自己的VPC里创建EKS节点,但控制面ENI落在共享子网中,从而简化跨账户访问。
CIDR规划必须一次做对。建议给整个组织预留 10.0.0.0/8,按区域和用途切块:10.10.0.0/16 给枢纽与共享服务,10.20.0.0/16 起按业务域分配,每个业务域再按环境细分到 /20。单个VPC建议不超过 /16,且与本地数据中心、其他云、合作伙伴网段不得重叠。若已有重叠,必须在TGW路由层做NAT或迁移,代价很高,因此规划阶段就要把未来三年的业务增长算进去。
子网划分:三层结构与IP预留
每个业务VPC至少划分三类子网:公有子网承载ALB与NAT网关,私有子网承载EKS节点与Pod,数据子网承载RDS、ElastiCache等。以 10.20.0.0/16 为例,可切成 10.20.0.0/20(公有)、10.20.16.0/20(私有)、10.20.32.0/20(数据),每个 /20 提供约4091个可用地址。EKS节点若使用 t3.medium,默认每节点可分配约17个Pod IP,一个 /20 私有子网可支撑约200个节点,足以覆盖中等规模集群。若使用VPC CNI的自定义网络或Prefix Delegation,可把Pod IP从节点ENI中解耦,进一步降低子网压力。
关键约束是:EKS控制面需要至少两个可用区的子网,且这些子网必须打上 kubernetes.io/cluster/<cluster-name>=shared 标签。生产环境建议三个可用区,每个区各一套公有/私有/数据子网,形成 /20 × 9 的布局。子网预留要留出扩容空间:不要把一个 /16 一次性切满,保留至少 /18 的连续块给未来新增可用区或专用子网。
安全组与NACL:有状态与无状态的分工
安全组是有状态的实例级防火墙,NACL是无状态的子网级防火墙。容器平台中,安全组应作为主要访问控制手段,NACL只做子网级粗粒度隔离。典型规则链是:ALB安全组允许来自 0.0.0.0/0 的443入站;EKS节点安全组只允许来自ALB安全组的流量进入NodePort范围(默认30000-32767);Pod之间通过安全组引用或Security Group for Pods实现细粒度控制。NACL则用于拒绝已知恶意网段或隔离数据子网,例如数据子网NACL入站只允许来自私有子网CIDR的3306端口。
一个常见错误是只配安全组而忽略NACL的返回流量。由于NACL无状态,若入站放行了443,出站必须放行1024-65535的临时端口,否则TCP握手无法完成。排障时可用 aws ec2 describe-network-acls 与 VPC Flow Logs 交叉验证:Flow Logs中 REJECT 记录能直接指出是安全组还是NACL拦截。
可扩展性的三个检查点
第一,CIDR是否与本地IDC、其他VPC、合作伙伴网段无重叠;第二,TGW路由表是否按OU或环境做了分段,避免生产与非生产路由互相泄露;第三,安全组规则是否使用安全组引用而非硬编码IP,这样新增节点或Pod时无需改规则。满足这三点,网络底座就能在账户增加、集群扩容和合规审计时保持稳定。