AWS-WorkSpaces雲端桌面服務 (上集)
Amazon WorkSpaces是一項受管的以雲端為基礎的虛擬桌面,可替代傳統桌面。可使用WorkSpaces在幾分鐘部署Windows或Linux桌面,並快速地擴展,為全球工作者提供數千個桌面。 WorkSpaces服務包結合了作業系統、運算資源、儲存空間和軟體用程式,讓使用者就像使用傳統桌面一樣的執行日常任務。
此次情境為部署一個雲地Site-to-Site VPN連線並支援二條VPN Tunnel通道,以確保高可用性,如果其中一條Tunnel異常,將會收到告警通知信。在雲端上部署Amazon WorkSpaces VDI虛擬桌面提供各單位使用,並透過VPN連回企業網路使用OA服務資源。
在這裡會有二種情境需求,情境一: 位於子網路A與子網路B部門的WorkSpaces主機皆直接透過AWS IGW出Ineternet外網,而情境二: 位於在子網路C與子網路D部門的WorkSpaces主機因特殊需求則必須VPN回地端才能出Internet。本文因篇幅限制,會依上下集分別完成情境一及情境二章節部份。下面就讓我們一起來部署情境一吧!
完整架構圖
Site-to-Site VPN架構
作業流程
-建立VPC
-建立VPC的子網路
-建立一個Internet Gateways (IGW)
-Site-to-Site VPN設定
-配置地端設備(FortGate 60E)
-驗證VPN Tunnel通訊
-驗證VPN Tunnel備援
-監控VPN Tunnel狀態
-設定Directory Service (AD Connector)
-啟用WorkSpaces服務
-驗證WorkSpaces存取
雲端AWS配置
1. 需求
VPC CIDR網段: 10.80.0.0/16 (不能與地端網段重疊)
A Subnet 網段: 10.80.1.0/24 (Public subnet)
B Subnet 網段: 10.80.2.0/24 (Public subnet)
C Subnet 網段: 10.80.3.0/25 (Private subnet)
D Subnet 網段: 10.80.3.128/25 (Private subnet)
2. 建立VPC
首先規劃建立AWS的VPC,此範例10.80.0.0/16網段為測試使用。建議部署前請詳細規劃網段範圍,並避免與地端網段重疊,一旦設定後就不能更改並會影響後面所有子網段範圍設定。
請搜尋VPC關鍵字,如下圖所示。
在部署VPC之前請確認要在哪一個Region(如右上角Tokyo區域)進行VPC的建立。
確認後請點選【Create VPC】建立。如下圖所示。
這裡請輸入VPC名稱、CIDR網段其餘採預設值即可,例如VPC only。
下圖為完成VPC的建立。
3. 建立VPC內的子網路
在VPC裡, 直接將剛剛的10.80.0.0/16網段再劃分給底下的子網路。這裡分別先切出子網路A 10.90.1.0/24與子網路B 10.90.2.0/24等網段。
請在左邊功能選項中->Subnets,並點選右上角【Create subnet】建立。如下圖所示。
請指定哪一個VPC、子網名稱、子網路所在可用區以及IP位址範圍。
下圖為完成子網路的建立。
小提醒: 在新增另一組子網路時,儘量避免在同一可用區內(AZ)。
4. 新增一組Security Group
主要目的是讓EC2 Instance能與地端互Ping 以及能夠SSH管理EC2主機。請在左邊功能選項中->Security groups,並點選右上角【Create security group】建立。如下圖所示。
這裡請輸入安全群組名稱、套用哪一個VPC網段以及增加Inbound進來的規則,例如允許任何來源主機可對該網段裡的主機做Ping (ICMP)動作和SSH連線,Outbound出去的規則則全開 。
可再給安全群組一個識別名稱,以便日後方便管理。
5. 建立一個Internet Gateways (IGW)
網際網路閘道是一種可水平擴充且高可用性的VPC元件,允許VPC與Internet之間的通訊。請在左邊功能選項中->Internet gateways,並點選右上角【Create internet gateway】建立。如下圖所示。
這裡請輸入網際網路閘道名稱。
Attach附加到一開始所建立的VPC。
下圖為完成IGW的建立。
於Route Tables路由中加入一筆0.0.0.0/0並且對應到剛剛所建的IGW。
請在左邊功能選項中->Route tables並點選該路由表->點選下面的路由標籤->【Edit routes】。
這裡加入0.0.0.0/0預設路由並指向目標IGW。表示預設路由經由IGW出Internet。
下圖為完成預設路由的建立。
6. Site-to-Site VPN設定
主要設定步驟:
步驟1:建立Customer Gateways (CGW)
步驟2:建立Virtual Private Gateways (VGW)
步驟3:配置路由傳播
步驟4:建立Site-to-Site VPN連線
步驟5:下載VPN設定檔
步驟1 建立Customer Gateways (CGW)
請在左邊功能選項中->Customer gateways,並點選右上角【Create customer gateway】建立。如下圖所示。
這裡主要輸入CGW IP位址(地端設備的Public IP)以及Tag名稱。BGP ASN預設即可。
下圖為完成CGW的建立。
步驟2 建立Virtual Private Gateways (VGW)
請在左邊功能選項中->Virtual private gateways,並點選右上角【Create virtual private gateway】建立。如下圖所示。
請輸入VGW Tag名稱。
完成VGW建立後,並Attach附加到所建立的VPC。
下圖為完成VGW的建立。
步驟3 配置路由傳播
請在左邊功能選項中->Route tables並點選該路由表->點選下面的Route propagation標籤->【Edit route propagation】編輯路由傳播。如下圖所示。
請勾選Propagation。
下圖為完成啟用路由傳播。
步驟4 建立Site-to-Site VPN連線
建立兩端的VPN連線。請在左邊功能選項中->Site-to-Site VPN Connections,並點選右上角【Create VPN connection】建立。如下圖所示。
請下拉選取剛剛新增的CGW以及點選靜態路由選項。在靜態路由IP Prefixes請加入要通往地端的網段,例如172.19.0.0/16、172.16.0.0/16等。
這裡Tunnel1及Tunnel2的PSK(Pre-Shared Key)自訂義密碼為vdi-test。地端設備也記得要設定相同的PSK。
下圖為完成VPN連線的資訊。
下圖為VPN Tunnel連線的Public IP資訊。
下圖為VPN路由資訊。
步驟5 下載VPN設定檔
AWS VPN大致已設定完成,接下來地端設備的設定。在串接VPN之前可先知道地端設備是用什麼型號,例如Cisco、Fortinet或是Juniper設備等,依設備型號下載設定檔案,提供給網工人員參考設定(只要雲地設定一致即可),記得此設定檔案僅供參考。
此範例地端設備為FortiGate OS版本為6.4.4以上。
配置地端設備(FortiGate 60E)
下表為依據的設定檔匯集:
IPSec Tunnel1 設定資訊IPSec Tunnel2 設定資訊
IP address: 3.115.205.133
Authentication Method: Pre-shared Key
Pre-Shared Key: vdi-test
IKE Version: 1
Phase 1 Proposal:
- Encryption: aes128
- Authentication: sha1
- DH group: 2
- Keylife: 28800 seconds
Phase 2 Proposal:
- Encryption: aes128
- Authentication: sha1
- Select Enable Replay Detection
- Select Perfect Forward Secrecy
- DH Group: 2
- Keylife: 3600 seconds
IP address: 54.248.60.48
Authentication Method: Pre-shared Key
Pre-Shared Key: vdi-test
IKE Version: 1
Phase 1 Proposal:
- Encryption: aes128
- Authentication: sha1
- DH group: 2
- Keylife: 28800 seconds
Phase 2 Proposal:
- Encryption: aes128
- Authentication: sha1
- Select Enable Replay Detection
- Select Perfect Forward Secrecy
- DH Group: 2
- Keylife: 3600 seconds
建立IPSec Tunnel介面
請在左邊功能選項中->IPSec Wizard,並點選【Custom】建立。如下圖所示。
這裡請輸入VPN Tunnel名稱、所要連接的AWS Tunnel1 Public IP位址、指定VPN介面、Pre-share key、IPSec Phase1 Proposal以及Phase2 Proposal加密及驗證演算法等資訊。
確認後請點選【OK】建立。
建立位址物件
請在左邊功能選項中->Addresses,在【+ Create New】下拉點選【Address】建立。如下圖所示。
這裡請輸入物件名稱、AWS那邊的網段以及剛剛所建立的介面。
確認後請點選【OK】建立。
-設定防火牆策略
請在左邊功能選項中->Firewall Policy,並點選【+Create New】建立。如下圖所示。
首先建立雲->地的ACL,例如名稱為AWS_VDI_tunnel1-to-OA、指定相對的In/Out介面、來源網段/目的網段以及ACCEPT允許。如下圖所示。
確認後請點選【OK】建立。
再建立地->雲的ACL,可快速對原先的那筆規則點選右鍵【Clone Reverse】反向複製一份再進行修改。如下圖所示。
請輸入OA-to-AWS_VDI_tunnel1名稱、指定相對的In/Out介面、來源網段/目的網段以及ACCEPT允許。如下圖所示。
確認後請點選【OK】建立。
-設定靜態路由
請在左邊功能選項中->Static Routes,並點選【+Create New】建立。如下圖所示。
確認後請點選【OK】建立。
第一條VPN Tunnel1已完成,請依相同步驟再把第二條VPN Tunnel2建立起來。
如下圖為二條VPN Tunnel連線狀態。
下圖為Tunnel1&Tunnel2的ACL規則。
下圖為Tunnel1&Tunnel2的靜態路由。
Administrative Distance值都相同,表示負載均衡功能。這個值可依需求調整。
驗證VPN Tunnel通訊
如下圖為AWS二條VPN Tunnel連線狀態。
在AWS環境開啟二台VM虛擬主機並各自往地端不同網段去ping。如下圖所示。
驗證VPN Tunnel備援
在VPN備援測試可以持續ping著,同時在地端設備將某一VPN介面停用,觀察是否會有掉封包的可能性,經實測結果完全沒掉包,不論停用哪一介面都沒有被影響。
監控VPN Tunnel狀態
主要設定步驟:
步驟 1:設定SNS通知
步驟 2:設定CloudWatch監控
步驟 3:測試告警
步驟1 設定SNS通知
Amazon CloudWatch使用Amazon SNS傳送電子郵件。首先,建立並訂閱SNS主題。當建立CloudWatch告警時,可以新增此SNS主題,以在告警變更狀態時傳送電子郵件通知。請搜尋SNS關鍵字,如下圖所示。
-建立Topic主題
請在左邊功能選項中->Topics,並點選【Create topic】建立。如下圖所示。
依據預設,主控台會建立【FIFO】。這裡請選擇【Standard】並輸入主題的名稱,例如VPN_Tunnel_Status。
-建立主題的訂閱
請在左邊功能選項中->Topics,並點選【Create subscription】建立訂閱。如下圖所示。
對於Protocol,支援多種協定例如AWS SQS、Email、HTTP、HTTPS以及SMS簡訊系統等。這裡以Email方式簡單示範告警接收,請下拉選取Email,並針對 Endpoint,請輸入可用於接收通知的Email地址。
下圖為完成Topic主題訂閱。
請檢查電子郵件收件匣並在AWS通知的電子郵件中選擇Confirm subscription (確認訂閱)。寄件者ID通常是「no-reply@sns.amazonaws.com」。下圖為電子郵件待確認狀態。
下圖為電子郵件已確認狀態。
步驟2 設定CloudWatch監控
請搜尋cloudwatch關鍵字,如下圖所示。
請在左邊功能選項中->Alarms,並點選【Create alarm】建立。如下圖所示。
這裡請選擇Select metric。
請輸入VPN,然後選擇VPN Tunnel Metrics。
選擇VPN通道的IP位址和TunnelState指標。並選取【Select metric】。
這裡監控任一通道的「關閉」狀態。對於Whenever (每當),請選擇 Lower (低於) (<) 並輸入1。Period預設為5分鐘為一個定期監控點,可調整為1分鐘。在Additional configuration下輸入3,讓資料點發出告警。例如Period=1,Datapoints=3 表示達3分後會發出告警
請在Select an SNS topic下,下拉選取現有的通知清單或建立新的通知清單。
這裡請輸入規則的名稱和描述。
最後檢查告警的設定,然後選擇【Create alarm】建立告警。
第一條VPN Tunnel1監控告警已設定完成,請依相同步驟再把第二條VPN Tunnel2監控建立起來。下圖為完成VPN Tunnel狀態監控。
步驟3 測試告警
最後就是要來驗收看看是否因某一條VPN Tunnel異常而發告警通知管理人員,可隨意中斷某一Tunnel並觀察是否收到告警信件。
-監測到介面異常
-發出告警信
小提醒: VPN Tunnel狀態如果恢復正常,預設是不會再發信通知已恢復的。
設定Directory Service (AD Connector)
AWS WorkSpaces是AWS的VDI服務,也是微軟2019年10月1日修改服務條款後,在AWS使用MicroSoft Office的唯一服務。請搜尋directory關鍵字。如下圖所示。
請在左邊功能選項中Directories,請點選右上角【Set up directory】建立。
這裡目錄類型選擇【AD Connector】。
因目前使用人數需求較少,故選擇【small】即可。
選擇VPC和子網,子網必須選擇在不同AZ可用區,AWS會在你選擇的2個子網部署AD Connector。如果要在增加其它子網則須另再新增一個AD Connector。
輸入部署目錄的完整名稱,例如gamania.com。
DNS主機的IP位址,以及AD Query的服務帳密。
確認資訊無誤後,點選【Create directory】。
建立AD Connector需要20-30分鐘。下圖為目錄的狀態。
啟用WorkSpaces服務
-註冊目錄
開始建立WorkSpaces之前,需先註冊執行WorkSpaces子網到目錄(AD Connector)。這樣WorkSpaces就會依據註冊目錄所在的子網部署到該網段裡。
請搜尋workspaces關鍵字。如下圖所示。
請在左邊功能選項中->Directories,下拉Actions選項【Register】註冊。
小提醒: 可新增多個Directory並註冊多個AD Connector子網。 例如某一組子網段(10.80.1.0/24和10.80.2.0/24)為AD Connector1; 另一組子網段(10.80.3.0/24和10.80.4.0/24)為AD Connector2。
這樣設計是為了WorkSpaces可由不同AD Connector去部署在不同的網段。
在這裡選擇部署WorkSpaces的子網。必須選擇二個子網是因為備援機制。
確認目錄的狀態為已註冊。
-執行WorkSpaces主機
選擇左側WorkSpaces後,請點選【Launch WorkSpaces】,開始建立。
選擇WorkSpaces所在的目錄。該目錄(AD Connector)會依據所在的子網而部署。
輸入AD使用者並點選【Search】搜尋。
將該AD使用者加入WorkSpaces。
選擇啟動的WorkSpaces映像檔,可選擇帶有Office映像。WorkSpaces也是目前在AWS上利用Office的唯一選擇。
這裡選擇【AutoStop】預設的模式,採用小時計費,適合短期使用。AlwaysOn類似月租概念,如需長期使用建議可選擇此模式,一個月下來會省非常多成本。
確認內容後,點選啟動WorkSpaces。
下圖為WorkSpaces在建立中。
WorkSpaces建立成功後,有二個重要資訊須知。
-下載WorkSpaces Clients Link的連結
-註冊代碼
下載WorkSpaces Client程式
依據Clients Link連結,請下載客戶端程式。
在安裝過程中依Wizard步驟指示安裝即可,如下圖所示。
<…中間省略>
登入WorkSpaces
啟動WorkSpaces Client程式,輸入註冊代碼後,並點選【Register】。
輸入AD使用者帳號及密碼後,請點選【Sign In】登入。
顯示如下頁面,成功登入WorkSpaces桌面 。
驗證WorkSpaces存取
由此可知,該主機順利由AWS出Internet(日本區域),也可順利存取Domain網域內的OA資源(檔案伺服器)。
可對WorkSpaces主機做一些編輯、重啟、停止、刪除及客製映像檔等操作。
本章完整介紹雲端VPC、Internet Gateways (IGW)、與地端Site-to-Site VPN的建立、AD Connector的設定以及使用WorkSpaces服務等實際的操作,雖然章節篇幅有點冗長,但很值得大家從無到有地建置一遍,增加實戰經驗。在下一章節 (下集) 中,會針對情境二的設定開始,將位於在子網路C與子網路D部門的WorkSpaces主機因特殊需求則必須VPN回地端才能出Internet。必要時要微調一些架構參數、路由修改以及新增一些VPC Endpoint相關功能等。
參考文件
啟動WorkSpace使用AD Connector
https://docs.aws.amazon.com/zh_tw/workspaces/latest/adminguide/launch-workspace-ad-connector.html
Amazon WorkSpaces 常見問答集
https://aws.amazon.com/tw/workspaces/faqs/
如何使用RDP連接到我的WorkSpace
https://aws.amazon.com/tw/premiumsupport/knowledge-center/connect-workspace-rdp/
Amazon SNS入門
https://docs.aws.amazon.com/zh_tw/sns/latest/dg/sns-getting-started.html
使用Amazon CloudWatch VPN通道
https://docs.aws.amazon.com/zh_tw/vpn/latest/s2svpn/monitoring-cloudwatch-vpn.html
什麼是 AWS Site-to-Site VPN?
https://docs.aws.amazon.com/zh_tw/vpn/latest/s2svpn/VPC_VPN.html