<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] 使用 Amazon VPC Lattice 简化并保护共享服务和资源的访问
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# 产品功能分析
## 新功能/新产品概述
Amazon VPC Lattice 是一种用于简化和管理跨组织共享服务访问的云服务,它通过抽象 IP 地址依赖,实现安全且高效的服务间通信。核心目标是解决传统 IP 基于网络在多环境(如生产、开发和测试)中面临的路由复杂性和安全挑战,提供细粒度的访问控制。**VPC Lattice** 适用于 HTTP/HTTPS、通用 TCP 和 AWS PrivateLink 服务,允许应用在无需直接网络路由的情况下进行连接。背景信息显示,随着组织规模扩大,服务共享变得复杂,该产品针对多 VPC 环境的需求,提供更灵活的架构。该服务面向拥有多个 VPC 的企业用户,市场定位为提升网络治理和安全性的中大型云部署场景。
## 关键客户价值
- **简化服务连接**:通过消除 IP 地址依赖和路由复杂性,VPC Lattice 使客户能够轻松地在不同 VPC 间访问共享服务,与传统 IaaS 架构相比,显著降低了网络管理开销,但可能在多服务网络关联时增加配置复杂度。
- **增强安全性**:利用 **Auth policies** 强制执行最小权限访问控制,支持对认证和未认证流量的一致管理,这在多环境间共享服务时提升了合规性,与直接 peering 或 Transit Gateway 相比,提供更强的隔离,但需注意策略配置的潜在错误可能导致访问问题。
- **成本优化**:相比使用 Transit Gateway 和 AWS Network Firewall 的集中式设置,VPC Lattice 在 HTTPS 或 TCP 访问中可实现显著成本节约,例如减少冗余端点开销;业务价值体现在提高资源利用率和减少运维工作量,适用于突发流量场景。
- **可扩展性和灵活性**:支持服务网络关联和端点,允许跨 AWS 区域或本地网络访问,提升了整体架构的适应性,在高并发环境中体现出优势,但大规模部署时可能面临监控挑战。
## 关键技术洞察
- **技术原理和独特性**:VPC Lattice 通过抽象 IP 地址和集成 **Route 53 Resolver**,实现主机头基于路由和 TLS 终止,支持毫秒级响应。该技术工作原理包括注册服务到服务网络,然后通过服务网络关联或端点进行流量转发,避免了传统网络层的直接路由依赖。创新点在于细粒度访问控制和应用层逻辑(如路径基于路由),这对性能和安全性有积极影响,例如提升了服务可用性,但可能在 TCP 服务中由于不终止 TLS 而增加端到端加密的复杂性。
- **对性能、安全性和可用性的影响**:该服务整合 **CloudWatch 指标** 和访问日志,提供实时监控和优化能力,显著提高了服务依赖的可观测性;然而,在高并发场景下,冷启动或资源网关转发可能引入延迟问题。技术实现的挑战包括跨区域流量私密传输依赖 PrivateLink,这解决了传统架构的网络瓶颈,但需管理 IP 地址映射的潜在冲突。
- **与其他技术的比较**:相比 AWS Transit Gateway,VPC Lattice 的服务网络端点机制更灵活,支持多个服务网络关联,避免了单一 VPC 限制,但在大规模组网时可能增加管理开销。
## 其他信息
- **安全和访问控制**:可使用 IAM 策略和 AWS Resource Access Manager 共享服务,确保最小权限访问,增强跨账户治理。
- **网络监控**:通过 **VPC Lattice CloudWatch 指标** 和访问日志,客户可分析访问模式,但需注意日志存储的成本影响。
- **部署考虑**:文档建议先决条件包括 VPC 和 IAM 权限,实际生产环境中,应评估与现有架构的兼容性,如避免与 Transit Gateway 的冗余配置。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 使用 Amazon VPC Lattice (Amazon VPC Lattice) 简化并保护共享服务和资源的访问
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/streamline-and-secure-access-to-shared-services-and-resources-with-amazon-vpc-lattice/](https://aws.amazon.com/blogs/networking-and-content-delivery/streamline-and-secure-access-to-shared-services-and-resources-with-amazon-vpc-lattice/)
**发布时间:** 2025-06-01
**厂商:** AWS
**类型:** BLOG
---
在本帖中,我们探讨如何使用 [Amazon VPC Lattice](https://aws.amazon.com/vpc/lattice/) 在组织内部暴露共享服务和资源,同时保持安全性和治理性。我们将涵盖关键架构概念、安全最佳实践,以及在生产环境中部署 VPC Lattice (VPC Lattice) 的注意事项。
随着组织的发展,管理跨多个环境(如生产、开发和测试环境)的共享服务访问变得日益复杂。传统上,服务间通信依赖基于 IP 的网络,往往受重叠 IP 地址、路由复杂性和网络层安全强制执行的限制。
VPC Lattice 通过抽象 IP 地址依赖性,简化服务连接,使应用程序能够安全通信,而无需直接网络路由。此外,它通过 [Auth policies](https://docs.aws.amazon.com/vpc-lattice/latest/ug/auth-policies.html) 提供细粒度访问控制,允许安全团队在多个环境强制执行一致的访问控制。Auth policies 适用于对 VPC Lattice 服务 的认证和未认证流量。
## 先决条件
要跟随本帖内容,您应具备以下条件:
* 基本的 [Amazon Virtual Private Cloud (Amazon VPC)](https://aws.amazon.com/vpc/) 网络概念的理解。
* 对 VPC Lattice 及其关键特性的熟悉,例如暴露服务和资源之间的差异。
* 正确的 [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) 权限,用于创建和管理 VPC Lattice 服务、资源和策略。
* 至少两个 VPC 的设置(例如生产、开发或测试环境),以演示跨 VPC 服务访问。
## 架构概述
以下架构展示了高层设计,使用 VPC Lattice 暴露不同类型的应用程序:基于 HTTP 的应用程序、通用 TCP 应用程序,以及通过 [AWS PrivateLink](https://aws.amazon.com/privatelink/) 接口端点暴露的 AWS 服务。您可以将此设置扩展到组织中的其他 AWS PrivateLink 端点,用于共享服务和自定义服务,包括 Software as a Service (SaaS) 端点。

图 1: VPC Lattice 用于共享服务—高层架构
### 关键组件
1. **共享服务**:一组集中式应用程序,包括自管理类型(如认证、日志记录或监控)或 AWS 服务(如 [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)、[Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) 等)。用户拥有的基于 HTTP 的应用程序映射到 VPC Lattice 服务,而 TCP 应用程序或 AWS PrivateLink 端点(针对 AWS 管理和自定义服务)映射到资源。
2. **客户端 VPC**:多个代表不同路由域的 VPC(如生产、开发和测试环境),这些 VPC 需要访问共享服务。客户端 VPC 可以通过服务网络关联或服务网络端点连接到服务网络,从而访问共享服务。
3. **VPC Lattice**:VPC Lattice 抽象 IP 地址,并允许无缝服务连接,同时强制执行最小权限访问安全策略。对于服务,VPC Lattice 支持 Auth policies 以添加额外访问控制层。
### 工作原理
* 您将共享服务和资源注册到 VPC Lattice,使它们通过 VPC Lattice 服务和资源名称访问。
* 来自不同 VPC 的客户端使用 VPC Lattice 连接到共享服务,而无需直接对等连接、[AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) 或 [AWS Cloud WAN](https://aws.amazon.com/cloud-wan/) 配置。
* 流量通过 VPC Lattice 路由,确保隔离并符合安全策略。
## 流量流
本节展示了使用服务网络 VPC 关联和服务网络端点访问这些共享服务和资源的流量流。服务网络 VPC 关联允许直接关联 VPC 中的客户端访问共享服务和资源。然而,一个 VPC 只能有一个服务网络关联 (SNA)。相反,服务网络端点 (SNE) 提供更多灵活性。客户端可以通过服务网络端点访问共享服务,这允许同一 VPC 连接到多个服务网络。这也支持从远程 VPC、跨 [AWS Regions](https://aws.amazon.com/about-aws/global-infrastructure/) 或从本地网络访问服务网络。
### 客户端访问共享 HTTP/HTTPS 服务
#### 选项 1: 使用服务网络 VPC 关联 (SNA)
以下图示显示了客户端通过服务网络 VPC 关联连接到 HTTP/S 应用程序的请求流。该应用程序可以运行在任何计算平台上—如 [Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/)(例如 Auto Scaling 组)、[Amazon Elastic Kubernetes Service (Amazon EKS)](https://aws.amazon.com/eks/)、[Amazon Elastic Container Service (Amazon ECS)](https://aws.amazon.com/ecs/) 和 [AWS Lambda](https://aws.amazon.com/lambda/)。

图 2: 使用服务网络 VPC 关联访问共享服务
以下步骤显示了从客户端到服务的流量流:
* **(1)** 客户端对自定义域(如 app1.example.com)执行 DNS 查询,该域代表 VPC Lattice Service 1。
* **(2)** [VPC Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html) 检查关联的私有托管区域,该区域将 VPC Lattice 服务 FQDN (Fully Qualified Domain Name) 映射到自定义名称 (app1.example.com)。解析器返回由 VPC Lattice 管理的 IP 地址(不属于 VPC CIDR)。
* **(3)** 客户端连接到服务上的正确端口(如 443 端口用于 HTTPS)。在服务网络内,VPC Lattice 执行基于主机头的路由,可以终止 TLS、验证 IAM 凭证,并应用应用层逻辑(如基于路径的路由)。对于端到端加密,您可以配置 [HTTPS target groups](https://docs.aws.amazon.com/vpc-lattice/latest/ug/target-groups.html#target-group-routing-configuration)。
* **(4)** 请求负载均衡到适当的目标(如 Auto Scaling 组中的 EC2 实例)。
#### 选项 2: 使用服务网络端点 (SNE)
以下图示显示了客户端通过服务网络端点连接到 HTTP/S 应用程序的请求流。

图 3: 使用服务网络端点访问共享服务
以下步骤显示了从客户端到服务的流量流:
* **(1)** 客户端对自定义域(如 app1.example.com)执行 DNS 查询,该域代表 VPC Lattice Service 1。
* **(2)** VPC Route 53 Resolver 检查关联的私有托管区域,该区域将从服务网络端点 (SNE) ID 和服务网络服务关联 (SNSA) ID 派生的 VPC Lattice 管理的 FQDN 名称映射到自定义名称 (app1.example.com)。解析器返回服务网络端点的 IP 地址。
* **(3)** 客户端通过 SNE 连接到服务上的正确端口(如 443 端口用于 HTTPS)。
* **(4)** 流量通过 PrivateLink 私密传输到服务网络,在那里 VPC Lattice 执行基于主机头的路由,可以终止 TLS、验证 IAM 凭证,并应用应用层逻辑(如基于路径的路由)。
* **(5)** 请求负载均衡到适当的目标(如 Auto Scaling 组中的 EC2 实例)。
### 客户端访问共享 TCP 服务
以下图示说明了客户端通过服务网络资源关联(使用服务网络 VPC 关联或端点)连接到用户拥有的 TCP 应用程序的流量流。该应用程序可以使用不同的资源配置暴露,如 IP 地址、公开可解析的 DNS 名称(如 AWS 管理的 FQDN)或 Amazon Resource Names (ARN)。资源可以代表例如 [Amazon Relational Database Service (RDS)](https://aws.amazon.com/rds/) 数据库(包括 [Amazon Aurora](https://aws.amazon.com/rds/aurora/))、[Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://aws.amazon.com/msk/) 集群、[Elastic Load Balancer (ELB)](https://aws.amazon.com/elasticloadbalancing/) FQDN,或从资源网关 VPC 可达的本地工作负载。对于整体视图,我们在图中显示了两种流。

图 4: 使用资源关联和端点访问共享服务
以下步骤显示了从客户端到 TCP 应用程序的流量流:
* **(1)** 客户端对自定义域(如 app2.example.com)执行 DNS 查询,该域代表 Resource Configuration 1。
* **(2)** VPC DNS 解析器检查关联的私有托管区域,该区域映射自动生成的资源 DNS 名称。对于通过 VPC 关联连接的客户端,返回的 IP 地址由 VPC Lattice 管理(不属于 VPC CIDR)。对于通过服务网络端点连接的客户端,返回的 IP 地址是服务网络端点的地址,每个注册的资源都会获得唯一的服务网络端点 IP。
* **(3) 使用 SNA**:客户端通过服务网络 VPC 关联在 Resource 1 使用的 TCP 端口 80 上连接到 Resource。服务网络不会终止 TLS,而是将原始 TCP 流转发到关联资源的资源网关。
* **(3a), (3b) 使用 SNE**:客户端通过服务网络端点在 Resource 1 使用的 TCP 端口上连接到 Resource。流量通过 PrivateLink 私密传输到服务网络。服务网络不会终止 TLS,而是将原始 TCP 流转发到关联资源的资源网关。
* **(4)** 资源网关将流量转发到目标资源。资源看到的源 IP 是资源网关的 IP。如果目标资源配置基于 DNS,则资源网关会执行 DNS 查询以识别目标 IP。
### 客户端访问共享 AWS PrivateLink 端点,用于 AWS 管理和自定义服务
客户通常将 AWS PrivateLink 端点集中用于 AWS 管理和自定义服务,以简化管理、通过集中控制增强安全、减少端点扩散,并通过避免多个 VPC 中的冗余端点优化成本。通常,此设置依赖于 Transit Gateway 或 AWS Cloud WAN 连接到集中式 VPC。
以下图示显示了客户端连接到通过 VPC 接口端点使用 VPC Lattice 集中暴露的 AWS 服务(如 AWS Secrets Manager)的流量流。我们在此使用 Secrets Manager 作为示例,但此模型适用于任何支持 VPC Endpoints 的 AWS 服务,以及通过 PrivateLink 暴露的自定义服务。AWS 服务通过服务网络资源关联暴露给服务网络客户端,使用基于 DNS 的资源配置,该配置指向 VPC 端点 FQDN。

图 5: 使用资源关联访问 AWS PrivateLink 端点共享服务
以下步骤显示了从客户端到 AWS 服务的流量流:
* **(1)** 客户端对 AWS 服务域(如 `secretsmanager.us-east-2.amazonaws.com`)执行 DNS 查询,该域代表 Resource Configuration 2。
* **(2)** VPC Route 53 解析器检查关联的私有托管区域,该区域映射自动生成的资源 DNS 名称。对于通过 VPC 关联连接的客户端,返回的 IP 地址由 VPC Lattice 管理(不属于 VPC CIDR)。对于通过服务网络端点连接的客户端,返回的 IP 地址是服务网络端点的地址。每个注册的资源配置都会获得唯一的 IP。
* **(3) 使用 SNA**:客户端通过服务网络 VPC 关联在资源配置 2 使用的 TCP 端口 443 上连接到 Resource。服务网络不会终止 TLS,而是将原始 TCP 流转发到关联资源配置的资源网关。
* **(3a), (3b) 使用 SNE**:客户端通过服务网络端点在资源配置 2 使用的 TCP 端口 443 上连接到 Resource。流量通过 PrivateLink 私密传输到服务网络。服务网络不会终止 TLS,而是将原始 TCP 流转发到关联资源配置的资源网关。
* **(4)** 资源网关对配置的 VPC 端点域(如 `vpce-<id>.<service>.<region>.vpce.amazonaws.com`)执行 DNS 查询。在解析 AWS 服务的接口端点 IP 地址后,资源网关相应转发流量。VPC 端点看到的源 IP 是资源网关的 IP。
* **(5)** PrivateLink VPC 接口端点将流量私密转发到 AWS 服务(如 secretsmanager.us-east-2.amazonaws.com)。
## 注意事项
### 安全性和访问控制
* 您可以使用 IAM policies 强制执行对共享服务的最小权限访问。
* 您可以使用 [AWS Resource Access Manager (AWS RAM)](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 安全地在账户间共享 VPC Lattice 服务和资源。
### 网络监控和可观察性
* 您可以使用 [VPC Lattice CloudWatch metrics](https://docs.aws.amazon.com/vpc-lattice/latest/ug/monitoring-cloudwatch.html) 监控服务访问模式并优化性能。
* 您可以使用 [VPC Lattice access logs](https://docs.aws.amazon.com/vpc-lattice/latest/ug/monitoring-access-logs.html) 对于服务和资源,获取对访问模式和服务依赖性的深入可见性。
### 成本优化
* 与使用 Transit Gateway 和 AWS Network Firewall 的集中式设置相比,VPC Lattice 在访问基于 HTTPS 或 TCP 的共享服务时,可以提供显著的成本节约。
## 结语
Amazon VPC Lattice 为启用安全、可扩展和策略驱动的共享服务访问提供了一个强大的抽象层。通过消除 IP 地址依赖性和与基于 IAM 的访问控制集成,组织可以简化跨多个环境的服務间连接。此外,实施本帖中概述的最佳实践允许组织增强安全、减少网络复杂性,并实现跨 AWS 基础设施的无缝共享服务访问。要开始使用 VPC Lattice,请查看 [VPC Lattice 文档](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html)。如果您对本帖有疑问,请在 [AWS re:Post](https://repost.aws/) 上启动新线程,或联系 [AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。
## 作者介绍

### Alexandra Huides
Alexandra Huides 是 Amazon Web Services 战略账户的高级网络专家解决方案架构师。她专注于帮助客户构建和开发高度可扩展和弹性的 AWS 环境。Alex 还是 AWS 的公共演讲者,并帮助客户采用 IPv6。工作之外,她热爱航海,尤其是双体船,旅行、探索新文化和阅读。

### Tom Adamski
Tom 是专注于网络的首席解决方案架构师。他拥有超过 15 年的经验,在各种行业(如电信、ISP 和小型初创公司)构建网络和安全解决方案。他过去 4 年帮助 AWS 客户构建其 AWS 云网络环境。在业余时间,Tom 可以被发现在加利福尼亚海岸寻找冲浪波。
<!-- AI_TASK_END: AI全文翻译 -->