Amazon VPC Lattice 的多账户设计 - RAM 共享与服务网络的配置模式

解析在多账户环境中运营 VPC Lattice 时的 RAM 共享设计、服务网络的分割策略以及 Auth Policy 的分层设计。

多账户环境中 VPC Lattice 的课题

在 AWS 的多账户策略中,按工作负载分离账户以确保安全边界。然而,微服务间的通信需要跨越账户边界,传统上通过 VPC Peering、Transit GatewayPrivateLink 的组合来实现。VPC Lattice 可以在应用层建立跨账户通信,但在多账户环境中的设计有其特有的考量。服务网络的所有权、服务的共享范围、Auth Policy 的管理责任放在哪个账户是设计上的重要判断点。

通过 RAM 共享服务网络

VPC Lattice 的跨账户连接通过 AWS Resource Access Manager(RAM)实现。服务网络的所有者账户创建 RAM 资源共享,向参与账户授予服务网络的关联权限。共享目标可以指定单个账户 ID、Organizations 的组织单位(OU)或整个组织。推荐模式是将服务网络集中到网络管理专用账户(Networking Account),按 OU 单位共享。这样可以一元化服务网络的生命周期管理。

服务网络的分割策略

如何分割服务网络取决于组织规模和安全需求。小规模组织(账户数不到 10 个)中,将所有服务注册到单一服务网络的简单配置更易管理。中规模以上的组织建议按环境(生产、预发布、开发)或按领域(支付、认证、通知等)分割服务网络。按环境分割可以排除生产环境服务被开发环境调用的风险。按领域分割可以明确团队间的责任边界,分散 Auth Policy 的管理。但过细地分割服务网络会增加 RAM 共享的管理复杂度。

Auth Policy 的分层设计

VPC Lattice 的 Auth Policy 在服务网络级别和服务级别两个层次应用。在多账户环境中,利用这种分层结构设计责任分界。服务网络级别的策略由网络管理账户管理,大框架控制「哪些账户的主体可以访问服务网络内的服务」。服务级别的策略由各工作负载账户管理,细粒度控制「允许哪些主体访问自己的服务」。通过这种分离,网络管理员统管安全大框架,各团队自主管理自己服务的访问控制。

总结

VPC Lattice 的多账户设计中,通过 RAM 共享的服务网络集中管理、按环境或领域的服务网络分割、Auth Policy 的两层责任分界是主要设计模式。以将服务网络集中到网络管理账户并按 OU 单位 RAM 共享的配置为基础,根据组织的成长考虑服务网络的分割。