Amazon Workspaces 强制通过专线内网传输画面 Streaming 交互流量
本文描述了在法兰克福区域为 Amazon WorkSpaces Personal 配置 Streaming Interface VPC Endpoint,使 IDC 客户端的 DCV 桌面流式传输强制经由 AWS Direct Connect 专线到达云上,不再经过公共互联网,同时保留受控公网出口用于身份认证。内容涵盖 Direct Connect 双向路由确认、Endpoint 安全组与 VPC Endpoint 创建、Directory 绑定、企业 DNS 解析配置,以及为兼容旧版客户端配置 Route 53 Resolver Inbound Endpoint 转发专有域名解析,最后通过 VPC Flow Logs 和 dig 命令验证流量与解析路径的正确性。
一、背景
1、配置目标
本文介绍如何在法兰克福区域 eu-central-1 中,通过 AWS Direct Connect 和 WorkSpaces Streaming Interface VPC Endpoint,使 IDC 用户的 Amazon DCV 桌面流式传输不经过公共互联网,同时保留 WorkSpaces 身份认证所需的受控公网出口。
本文只使用 AWS Management Console 完成 AWS 侧配置。Direct Connect 物理连接应已交付,IDC 路由器、DNS 和防火墙由企业网络团队按本文参数配置。
2、流量路径
目标流量分为两条路径:
认证流量:IDC 客户端 → 企业受控公网出口 → WorkSpaces 公共认证服务(TCP/UDP 443)
流式流量:IDC 客户端 → Direct Connect → Interface VPC Endpoint → AWS PrivateLink → DCV WorkSpace
必须使用以下组合:
- WorkSpaces Personal 和 Amazon DCV 协议。
- Direct Connect Private VIF,或者 Transit VIF、Direct Connect Gateway 和 Transit Gateway。
- WorkSpaces Streaming Interface VPC Endpoint,其绑定的安全规则组只允许指定 IDC 私网 CIDR 进入。
配置 Streaming VPC Endpoint 后,Workspaces 流式会话不能再从公共互联网建立,Workspaces 控制台左侧菜单中 IP Access Control Group 功能不再生效。
3、专线接入 VPC 方案对比
专线接入 VPC 时候,有两种方案。
| 对比 | Private VIF + Virtual Private Gateway | Transit VIF + Direct Connect Gateway + Transit Gateway |
|---|---|---|
| 适用范围 | 单个 VPC 或几个 VPC 的简单网络 | 大量 VPC、集中式网络 |
| 配置复杂度 | 较低 | 较高 |
| VPC 路由目标 | Virtual Private Gateway | Transit Gateway |
| 成本 | 低 | 高 |
由于当前已经有了 Virtual Private Gateway,因此就选 Private VIF 方案。
二、Direct Connect 私网访问架构
1、参考架构
以下步骤以 IDC 网段 10.20.30.0/24、VPC 网段 10.100.0.0/16 为示例,实际配置时应替换为正式地址。
┌─ 受控公网出口 ─> WorkSpaces 公共认证服务
IDC 客户端 10.20.30.0/24 ────┤
└─ Direct Connect ─> VGW ─> VPC 内的Streaming VPC Endpoint
│
AWS PrivateLink
│
WorkSpaces 画面流
Streaming VPC Endpoint 的私有地址只能从 VPC 或与其连接的 IDC 网络到达,因此互联网上的终端可以做身份认证,但不能建立流式会话。
2、环境和前提
配置前确认以下条件:
| 检查项 | 要求 |
|---|---|
| 区域 | 法兰克福 eu-central-1 |
| WorkSpaces 类型 | WorkSpaces Personal |
| 流式协议 | Amazon WSP (DCV) |
| Endpoint 服务名 | com.amazonaws.eu-central-1.highlander |
| 流量端口 | Endpoint 安全组及中间防火墙放行 TCP 443、UDP 443、TCP 4195、UDP 4195 |
| 账户边界 | Endpoint 与 Directory 位于同一 AWS 账户 |
| Endpoint 数量 | 每个 Directory 只能选择一个 |
| DNS Record IP Type | 选择 IPv4 或 IPv6,不选择 Dualstack |
| FIPS | 配置 Endpoint 前必须关闭 Directory 的 FIPS |
| Global Accelerator | 目录服务中禁用,Endpoint 流式传输不支持该集成 |
| IAM | 管理员至少具有 ec2:DescribeVpcEndpoints 及相关 VPC、WorkSpaces 修改权限 |
三、法兰克福区域配置步骤
1、配置 Direct Connect 双向路由
当前 Direct Connect 已能从办公室访问 Endpoint 所在 VPC,因此不需要重新创建 Virtual Private Gateway、Private VIF 或 BGP 配置,只需确认现有网络满足以下条件:
- 在 Direct Connect Console → Virtual interfaces 中确认现有 VIF 状态为
Available、BGP peer 状态为Up。 - 确认当前生效路径使用既有 Virtual Private Gateway 或 Transit Gateway,不要重复创建新的 VIF。
- 在 VPC Console → Route tables 中确认 Endpoint 子网具有返回办公室网段
10.20.30.0/24的路由。 - 确认办公室路由器发布办公室网段,并能够接收 VPC 网段
10.100.0.0/16。 - 确认企业防火墙和中间网络允许从客户端发出 TCP 443、UDP 443、TCP 4195、UDP 4195 端口的请求,通过专线到达云上。
- 确认 Endpoint ENI 私有地址的请求和返回流量均经过 Direct Connect,不经过互联网或 NAT Gateway。
只有现有网络不满足上述条件时,才需要补充 VIF、BGP 或路由表配置。
2、创建 Endpoint 专用安全组
- 打开 EC2 Console → Security Groups → Create security group。
- 名称填写
workspaces-streaming-endpoint-sg,选择 Endpoint 所在 VPC。 - 添加以下入站规则:
| 类型 | 端口 | 来源 |
|---|---|---|
| Custom TCP | 443 | 10.20.30.0/24 |
| Custom TCP | 4195 | 10.20.30.0/24 |
| Custom UDP | 443 | 10.20.30.0/24 |
| Custom UDP | 4195 | 10.20.30.0/24 |
- 不要添加
0.0.0.0/0。如使用自定义网络 ACL,同时允许上述入站流量和返回 IDC 的临时端口流量。
3、创建 WorkSpaces Streaming VPC Endpoint
- 打开 VPC Console → Endpoints → Create endpoint。
- Service category 选择 AWS services。
- Service name 选择
com.amazonaws.eu-central-1.highlander。 - VPC 选择 Direct Connect 能够到达的 VPC。
- 保持 Enable Private DNS Name 已启用。
- DNS record IP type 选择 IPv4;不要选择 Dualstack。
- 建议选择两个可用区中的子网,IP address type 选择 IPv4。
- 安全组选择
workspaces-streaming-endpoint-sg,然后创建 Endpoint。 - 等待状态变为
Available,在 Details → DNS names 中记录 Regional DNS name 和 Endpoint ENI 私有地址。
4、将 WorkSpaces Directory 绑定到 Endpoint
- 打开法兰克福区域的 WorkSpaces Console → Directories。
- 选择目标 Directory,进入 VPC Endpoints → Edit。
- 在 Streaming Endpoint 中选择前一步创建的 Endpoint。
- 不启用 Allow users with PCoIP WorkSpaces to stream from the internet。
- 选择 Save。
- 完全断开现有会话后重新连接。只有新建流式会话会使用新 Endpoint。
注意:保存后,该 Directory 中的 DCV WorkSpaces 不再支持公共互联网流式接入;PCoIP WorkSpaces 将无法通过该 Endpoint 连接。
5、配置 IDC/企业网络一侧自有 DNS 解析
- 在 VPC Console → Endpoints → 目标 Endpoint → Details 中复制 Regional DNS name,其格式如下:
vpce-<endpoint-id>-<random>.prod.highlander.eu-central-1.vpce.amazonaws.com
- 确认企业 DNS 能将该名称解析为 Endpoint ENI 的私有地址。
- IDC 防火墙仅通过 Direct Connect 放行以下流式目标和端口:
| 目标域名 | 端口 |
|---|---|
*.prod.highlander.eu-central-1.vpce.amazonaws.com |
TCP/UDP 443、4195 |
privatelink.prod.eu-central-1.highlander.aws.a2z.com |
TCP/UDP 443、4195 |
WorkSpaces 客户端默认使用唯一的 Regional DNS name。企业自有 DNS 需要添加以上解析。
不要对 DCV 流式域名执行 TLS 解密,也不要允许代理缓存 Endpoint DNS 结果。
6、保留受控的认证出口
在企业公网防火墙中,为 WorkSpaces 客户端保留 TCP/UDP 443,并按 AWS 官方 WorkSpaces Allow List 放行以下类别:
- CAPTCHA 和用户登录页面。
- Directory Settings 和 WorkSpaces Broker。
- SAML SSO Endpoint,如已启用 SAML。
- Pre-session Smart Card Authentication Endpoint,如已启用智能卡。
认证策略与流式策略应分开:认证流量允许经过企业公网出口,highlander 流式域名只允许经过 Direct Connect。
四、配置验证
1、验证专线外无法建立流式会话
- 将测试终端切换到手机热点或其他不经过 Direct Connect 的网络。
- 使用 WorkSpaces 客户端登录。
- 确认客户端可以访问公共认证页面,但无法连接 Endpoint 私有地址,最终不能建立桌面流式会话。
验收标准是“专线外不能建立桌面流式会话”,而不是“专线外完全不能显示登录页面”。
2、检查 VPC Flow Logs 日志可确认流量完全来自专线另一侧
- 打开 VPC Console → Network Interfaces,找到 Endpoint 对应的 ENI。
- 选择 Actions → Create flow log,Filter 选择 All,目标选择 CloudWatch Logs。
- 打开 CloudWatch Console → Logs Insights,选择对应日志组。
- 检查允许连接是否满足:源地址属于
10.20.30.0/24,目标为 Endpoint ENI,目标端口为 443 或 4195,Action 为ACCEPT。 - 确认不存在非授权来源的
ACCEPT记录;如存在,检查安全组、网络 ACL、VPC 路由表和 Transit Gateway Route Table。 - 确认完毕关闭 VPC Flow Logs,避免额外费用
五、小结
完成配置后,来自 IDC 和企业办公职场的 Workspaces 客户端仍通过企业办公网出口访问 WorkSpaces 认证服务,认证成功后,桌面图像、键盘、鼠标、音频、USB、剪贴板及文件传输等流式流量只通过 Direct Connect 到达 Streaming Interface VPC Endpoint,再进入 WorkSpaces 服务。
六、配置 Route 53 Resolver Inbound Endpoint
本文章节三、第 5 小节,有个 Workspaces 专有域名 privatelink.prod.eu-central-1.highlander.aws.a2z.com,这个域名仅能在 VPC 内被解析,因此需要配置 DNS 转发。
1、说明适用场景和 DNS 解析链路
本文章节三、第 5 小节,有个 Workspaces 专有域名 privatelink.prod.eu-central-1.highlander.aws.a2z.com。他的使用场景是 WorkSpaces 客户端需要兼容旧版本或发生 DNS 回退时,客户端需要能解析出来这个域名。
privatelink.prod.eu-central-1.highlander.aws.a2z.com
该通用名称只能由 Streaming Interface VPC Endpoint 所在 VPC 的 Route 53 VPC Resolver 正确解析。IDC 自有 DNS 不能直接查询 VPC CIDR 加 2 的 AmazonProvidedDNS 地址,必须通过 Route 53 Resolver Inbound Endpoint 转发查询。
Inbound Endpoint 必须创建在 Streaming Interface VPC Endpoint 所在 VPC 中。如果 WorkSpaces Directory 与 Streaming Endpoint 位于同一个 VPC,就是在 WorkSpaces 所在 VPC 中配置;如果 Streaming Endpoint 集中部署在共享服务 VPC,则应在共享服务 VPC 中配置。
IDC WorkSpaces 客户端
│
▼
企业 DNS 服务器
│ 条件转发 TCP/UDP 53
▼
Direct Connect 专线服务
│
▼
云上 Workspaces 所在 VPC 的 Route 53 Resolver Inbound Endpoint
│
▼
云上 Workspaces 所在 VPC 的 Route 53 VPC Resolver
│
▼
privatelink.prod.eu-central-1.highlander.aws.a2z.com
│
▼
解析为 Streaming Interface VPC Endpoint ENI 在 VPC 的私有地址
如果使用的 Workspaces 客户端是 2026 年 8 月 15 日之后的最新版本,不配置本解析也能连接到 Workspaces。但为了特定版本兼容,建议增加这个域名解析。
2、检查网络与 VPC 前提条件
配置前确认以下条件:
| 检查项 | 要求 |
|---|---|
| AWS 区域 | 法兰克福 eu-central-1 |
| 目标 VPC | Streaming Interface VPC Endpoint 所在 VPC |
| VPC DNS 属性 | DNS resolution 和 DNS hostnames 均已启用 |
| Endpoint Private DNS | WorkSpaces Streaming Endpoint 已启用 Enable Private DNS Name |
| 高可用 | 准备位于至少两个可用区的子网 |
| 路由 | Resolver 子网路由表具有返回企业 DNS 服务器网段的 Direct Connect 路由 |
| 网络 ACL | 允许企业 DNS 到 Resolver 的 TCP/UDP 53,以及返回企业 DNS 的临时端口 |
| 企业 DNS | 支持条件转发,并能通过 Direct Connect 到达 Resolver 私有地址 |
3、创建 Resolver Inbound Endpoint 安全组
- 打开 EC2 Console → Security Groups → Create security group。
- 名称填写
workspaces-resolver-inbound-sg,VPC 选择 Streaming Interface VPC Endpoint 所在 VPC。 - 添加以下入站规则,其中
<enterprise-dns-server-cidr>应替换为企业 DNS 服务器地址或其最小网段,不应直接填写整个办公终端网段:
| 类型 | 端口 | 来源 |
|---|---|---|
| DNS (UDP) | 53 | <enterprise-dns-server-cidr> |
| DNS (TCP) | 53 | <enterprise-dns-server-cidr> |
- 不要将来源设置为
0.0.0.0/0。安全组是有状态的,匹配入站查询的返回流量会自动允许。 - 如果子网使用自定义网络 ACL,允许来自企业 DNS 的 TCP/UDP 53 入站,并允许发往企业 DNS 的 TCP/UDP
1024-65535临时端口出站。
DNS 通常使用 UDP 53,但响应较大、截断重试和部分 DNS 操作会使用 TCP 53,因此两种协议都必须放行。完成安全组后,下面创建 Inbound Endpoint。
4、创建 Route 53 Resolver Inbound Endpoint
- 打开 Route 53 Console,确认当前区域为 Europe (Frankfurt)
eu-central-1。 - 进入 Resolver → Inbound endpoints → Create inbound endpoint。
- Endpoint name 填写
workspaces-resolver-inbound。 - VPC in the region 选择 Streaming Interface VPC Endpoint 所在 VPC。
- Security group for this endpoint 选择
workspaces-resolver-inbound-sg。 - Endpoint type 选择 IPv4。
- Protocols for this endpoint 选择 Do53。Do53 即 DNS Over 53,是传统 DNS 协议,使用 UDP/TCP 53,与前文的企业 DNS 条件转发、安全组规则和
dig验证命令一致。 - 在 IP addresses 中选择至少两个不同可用区的子网,每个子网创建一个地址。可以让 AWS 自动选择私有地址,也可以从企业 DNS 规划的地址段中指定未使用的私有地址。
- 选择 Create inbound endpoint,等待状态变为
Operational。 - 记录 Inbound Endpoint 的全部私有 IP 地址,例如:
<resolver-inbound-ip-az1>
<resolver-inbound-ip-az2>
Route 53 Resolver Inbound Endpoint 没有供企业 DNS 使用的 FQDN。企业 DNS 条件转发器必须直接填写上述私有 IP 地址。两个地址应全部配置,避免单个可用区或单个 ENI 故障形成 DNS 单点。创建完成后,下面配置企业 DNS 条件转发。
5、配置 IDC 侧的企业 DNS 条件转发
在企业 DNS 上为以下最小范围的域名创建条件转发,不建议将整个 amazonaws.com 或 aws.a2z.com 转发到该 Inbound Endpoint:
privatelink.prod.eu-central-1.highlander.aws.a2z.com
转发目标填写前一步记录的全部 Inbound Endpoint IP:
<resolver-inbound-ip-az1>
<resolver-inbound-ip-az2>
如果企业使用 Windows DNS Server,执行以下操作:
- 打开 DNS Manager → Conditional Forwarders。
- 选择 New Conditional Forwarder。
- DNS Domain 填写
privatelink.prod.eu-central-1.highlander.aws.a2z.com。 - 在 IP addresses of the master servers 中添加两个 Inbound Endpoint IP。
- 根据企业 DNS 管理策略决定是否将该条件转发器存储到 Active Directory;如存储到 Active Directory,应仅复制到需要该规则的 DNS 服务器范围。
如果企业使用 BIND,可以配置如下转发区域:
zone "privatelink.prod.eu-central-1.highlander.aws.a2z.com" {
type forward;
forward only;
forwarders {
<resolver-inbound-ip-az1>;
<resolver-inbound-ip-az2>;
};
};
企业防火墙应允许企业 DNS 服务器通过 Direct Connect 访问两个 Resolver IP 的 TCP/UDP 53。不要让办公终端绕过企业 DNS 直接查询 Inbound Endpoint,否则会扩大安全组和网络 ACL 的来源范围。条件转发完成后,下面验证解析结果。
6、验证私有 DNS 解析
首先从能够通过 Direct Connect 到达 Inbound Endpoint 的测试终端,分别向两个 Resolver IP 发起查询。
执行如下命令:
dig @<resolver-inbound-ip-az1> privatelink.prod.eu-central-1.highlander.aws.a2z.com A
dig @<resolver-inbound-ip-az2> privatelink.prod.eu-central-1.highlander.aws.a2z.com A
预期返回结果包含 Streaming Interface VPC Endpoint ENI 私有地址,格式如下:
;; ANSWER SECTION:
privatelink.prod.eu-central-1.highlander.aws.a2z.com. 60 IN A <endpoint-eni-private-ip-1>
privatelink.prod.eu-central-1.highlander.aws.a2z.com. 60 IN A <endpoint-eni-private-ip-2>
再通过企业 DNS 的正常解析路径查询,不在命令中指定 Resolver IP。
执行如下命令:
dig privatelink.prod.eu-central-1.highlander.aws.a2z.com A
返回结果应与直接查询 Inbound Endpoint 一致。然后执行如下命令,确认 TCP 53 回退路径也能工作:
dig +tcp @<resolver-inbound-ip-az1> privatelink.prod.eu-central-1.highlander.aws.a2z.com A
最后进行 WorkSpaces 客户端验证:
- 完全断开现有 WorkSpaces 会话,避免继续使用旧会话和 DNS 缓存。
- 重新登录并建立 DCV 流式会话。
- 在 VPC Flow Logs 中确认客户端流量仍到达 Streaming Endpoint ENI 的 TCP/UDP 443 或 4195。
- 如需审计 DNS 查询,可启用 Route 53 Resolver Query Logging,并将日志发送到 CloudWatch Logs、Amazon S3 或 Kinesis Data Firehose。日志会产生额外存储和分析成本。
七、参考文档
AWS 官方的 WorkSpaces Streaming Interface VPC Endpoint 配置说明:
Create and Stream from Interface VPC Endpoints
AWS 官方的 WorkSpaces 网络端口和域名要求:
IP address and port requirements for WorkSpaces Personal
AWS 官方的 IP Access Control Group 说明:
IP access control groups for WorkSpaces Personal
AWS 官方的 Direct Connect Private VIF 配置说明:
Create a Direct Connect private virtual interface
AWS 官方的 Direct Connect Virtual Interface 说明:
Direct Connect virtual interfaces and hosted virtual interfaces
AWS 官方的混合网络 DNS 解析和 Resolver Endpoint 说明:
Resolving DNS queries between VPCs and your network
AWS 官方的 Inbound Endpoint 配置说明:
Forwarding inbound DNS queries to your VPCs
AWS 官方的 PrivateLink 与 Route 53 Resolver 集成架构说明:
Integrating AWS Transit Gateway with AWS PrivateLink and Amazon Route 53 Resolver
AWS 官方的 Route 53 定价说明:
最后修改于 2026-08-15