亚马逊AWS官方博客

利用 Amazon Client VPN, Amazon Directory Service 和 Amazon Transit Gateway 打造安全稳定的全球办公解决方案

1. 背景说明

随着全球化进程的加速,全球移动办公已成为企业发展的关键策略。这种工作方式使企业能够整合全球资源,提升竞争力与创新能力,同时打破地理和文化障碍,实现无缝协作。此外,它还为企业带来更大的市场机会和更低的运营成本,使其能够迅速进入新市场并拓展业务版图。全球移动办公不仅帮助企业应对全球化挑战,还让它们抓住其中的机遇。

本篇文章将探索怎样借助亚马逊云科技的服务解决全球移动办公的诸多挑战以打造可落地的解决方案。

2. 挑战

  • 全球范围内无缝连接公司内部网络
  • 统一管理账号与密码
  • 稳定地访问公司内部应用

以上三点是全球移动办公中会遇到的主要挑战,下一章会使用亚马逊云科技的服务逐步解决。

为了模拟真实环境以呈现效果,将使用新加坡 Region 作为海外中心,香港 Region 作为互联互通中转点,东京和俄勒冈作为全球移动办公地点。最终实现如下架构:

3. 实现

1. 全球范围内无缝连接公司内部网络:通过Amazon Client VPN,可以让员工使用笔记本等移动端设备,在全球各地连接到公司内部网络进行办公。

(1)创建 VPC 和 Subnet

Region 可用区 子网 网段
东京 ap-northeast-1c ad-c 192.168.2.0/24
Instance(公有子网) 192.168.0.0/24
ap-northeast-1d ad-d 192.168.3.0/24
client-vpn 192.168.1.0/24

(2)创建 Managed Microsoft AD:用作 Client VPN Authentication Option

Edition Standard Edition
Directory DNS Name 自己设置,参考:managed.successzy.link
Admin password 自己设置
VPC 选择第一步创建的 VPC
Subnets 选择 ad-c 和 ad-d

(3)创建 Client VPN

Client IPv4 CIDR 10.0.0.0/16
Server certificate ARN

可以手动生成证书导入 Amazon Certificate Manager

亦可使用 Amazon Certificate manager 生成证书

参考:Client authentication – Amazon Client VPN (amazon.com)

Authentication options Use user-based authentication
User-based authentication options Active directory authentication->选择第二步创建的 Directory ID
Enable split-tunnel 开启
VPC ID 选择第一步创建的 VPC

(4)创建 Domain Controller EC2:用作 Managed Microsoft AD 管理

Application and OS Images Microsoft Windows Server 2022 Base
Instance Type c7a.xlarge
Key pair 自己设置
Network Settings 选择第一步创建的 VPC 和 Instance 子网
Firewall (Security groups) 自己设置,允许 3389 访问
Configure storage 选择 gp3
Advanced details->Domain join directory 选择第二步创建的 Managed Microsoft AD

(5)Client VPN 中执行 Target network associations

VPC 选择第一步创建的 VPC
Choose a subnet to associate 选择第一步创建的 client-vpn 子网

(6)Client VPN 中创建 Authorization rules:放行流量

Destination network to enable access 192.168.0.0/16(客户端需要访问的网段)
Grant access to Allow access to all users

(7)验证

首尔 Region 启动一台 EC2 模拟海外用户,安装 OpenVPN 客户端,下载 Client VPN endpoint configuration file,连接 Client VPN,访问 Domain Controller EC2。

  • 验证连通性

2. 统一管理账号与密码:通过 Amazon Directory Service,可以帮助公司网络管理员进行账号与密码统一管理

(1)创建 VPC 和 Subnet:参考第一节第一步(创建 VPC 和 Subnet)

(2)创建 VPC Peering Connection 并配置路由

  • VPC Peering Connection
Requester Accepter
俄勒冈 VPC 东京 VPC
  • 配置路由:只需关注 connector-c、connector-d 和 ad-c、ad-d 四个子网的路由表
Region 目的地址 下一跳
俄勒冈 192.168.0.0/16 VPC Peering Connection
东京 10.0.0.0/16 VPC Peering Connection

(3)创建 AD Connector

注:第一步第二节(创建 Managed Microsoft AD)会自动生成一个安全组,需要在安全组里放通来自俄勒冈的流量,至少包括 TCP/UDP 53 – DNS、TCP/UDP 88 – Kerberos authentication、TCP/UDP 389 – LDAP

参考:Getting started with AD Connector – Amazon Directory Service (amazon.com)

Directory size Small
VPC 第一步创建的 VPC
Subnets Connector-c 和 connector-d
Directory DNS name 第一节第二步创建的 Managed Microsoft AD 的 Directory DNS Name
DNS IP addresses 第一节第二步创建的 Managed Microsoft AD 的 DNS IP(需要保证网络可达,因此配置了 VPC Peering Connection)
Service account username Admin
Service account password 第一节第二步创建的 Managed Microsoft AD 的 Admin password

(4)创建 Client VPN:需要修改 User-based authentication options 为 AD Connector,其他选项参考第一节第三步(创建 Managed Microsoft AD)

(5)Client VPN 中执行 Target network associations:参考第一节第五步(Client VPN 中执行 Target network associations)

(6)Client VPN 中创建 Authorization rules:参考第一节第六步(Client VPN 中创建 Authorization rules)

(7)创建 Test EC2:参考第一节第四步(创建 Domain Controller EC2),但是不需要选择 Advanced details->Domain join directory

(8)第一节第四步(创建 Domain Controller EC2)创建的 Domain Controller EC2 中安装 Domain Administrative Tools

参考:Install the Active Directory Administration Tools for Amazon Managed Microsoft AD – Amazon Directory Service (amazon.com)

(9)在 Managed Microsoft AD 中添加用户

参考:Create a user – Amazon Directory Service (amazon.com)

(10)验证

  • 验证连通性

3. 稳定地访问公司内部应用:通过 Amazon Transit Gateway 和遍布全球的亚马逊云科技骨干网,可以让员工在全球各地都能稳定地访问公司内部应用以满足日常办公需求。

(1)创建 VPC 和 Subnet

  • 东京 Region:新建一个 tgw-d 子网
  • 香港 Region:仅创建 VPC
  • 新加坡 Region:参考第一节第一步(创建 VPC 和 Subnet)

(2)创建 Amazon Transit Gateway:东京、香港和新加坡分别创建

按照默认配置创建即可

(3)创建 Amazon Transit Gateway VPC Attachment:东京、香港和新加坡分别创建

  • 东京
1 Transit gateway ID 选择第二步创建的东京 Transit gateway
Attachment type VPC
VPC ID 选择第一节第一步(创建 VPC 和 Subnet)的 VPC
Subnet IDs 选择第一步创建的东京 tgw-d
2 Transit gateway ID 选择第二步创建的东京 Transit gateway
Attachment type Peering Connection
Account My account
Region ap-east-1
Transit gateway (accepter) 选择第二步创建的香港 Transit Gateway
  • 新加坡
1 Transit gateway ID 选择第二步创建的新加坡 Transit gateway
Attachment type VPC
VPC ID 选择第一步创建的新加坡 VPC
Subnet IDs 选择第一步创建的新加坡 tgw-a
2 Transit gateway ID 选择第二步创建的新加坡 Transit gateway
Attachment type Peering Connection
Account My account
Region ap-east-1
Transit gateway (accepter) 选择第二步创建的香港 Transit Gateway
  • 香港

Accept 东京和新加坡的 Peering Connection 请求

(4)添加 Transit gateway route tables 条目->Routes->Create static route

  • 东京
CIDR 172.17.0.0/16
Choose attachment 选择第三步创建的东京 Peering Connection
  • 新加坡
CIDR 192.168.0.0/16
Choose attachment 选择第三步创建的新加坡 Peering Connection
  • 香港
1 CIDR 192.168.0.0/16
Choose attachment 选择第三步 Accept 的东京 Peering Connection
2 CIDR 172.17.0.0/16
Choose attachment 选择第三步 Accept 的新加坡 Peering Connection

(5)东京 Client VPN 中,创建新的 Route table

Route destination 172.17.0.0/16
Subnet ID for target network association client-vpn子网

(6)东京 Client VPN 中,创建新的 Authorization rules

Destination network to enable access 172.17.0.0/16
Grant access to Allow access to all users

(7)添加路由表条目

  • 东京
路由表 目标 下一跳
client-vpn 子网路由表 172.17.0.0/16 选择第二步创建的东京 Transit gateway
  • 新加坡
路由表 目标 下一跳
test-a 子网路由表 192.168.0.0/16 选择第二步创建的新加坡Transit gateway

(8)安装 dnsmasq:使用新加坡 Test EC2 安装 dnsmasq,模拟本地 dns server,使连接 Client VPN 的用户将 example.com 解析为 172.17.0.71

参考:Linux 安装 DNSmasq 搭建自己的公共 DNS – 小z 博客 (xiaoz.org)

(9)安装 Nginx:使用新加坡 Test EC2 安装 Nginx

(10)修改 Client VPN

(11)验证:通过 Device Farm 进行验证

4. 总结

本篇文章从全球移动办公面临的挑战入手,通过引入亚马逊云科技的不同服务,逐步解决了这些问题,并以 Demo 的形式进行了展示。

5. 清理环境

请手动删除创建的所有资源。

本篇作者

郑毅

西云数据解决方案架构师,曾就职于外企、互联网企业和央企,擅长系统交付、运维和解决方案设计,对于传统 IT 技术以及云计算技术有深入了解和丰富的实战经验。

董杰

西云数据解决方案架构师,曾就职于多家外企、知名民企,主要负责支持企业客户上云,专注于亚马逊云解决方案设计和技术咨询,15+年软件开发、项目交付、售前咨询等丰富的行业实践建议。

刘兵

亚马逊云科技高性能计算专业解决方案架构师,专注于协助客户在亚马逊云科技上构建经济、可持续的高性能计算解决方案。拥有 Linux 系统及内核优化、定制和构建各种 HPC 方案的丰富经验,擅长为客户量身定制高度优化的 HPC 解决方案。同时,在系统编程、故障排除和调试以及可观察性领域拥有深厚的专业知识,确保客户能够高效、顺利地在云端构建和迁移应用程序,覆盖多种架构。目标是充分发挥云计算的优势,助力客户的业务实现可持续发展。