AWS-WorkSpaces雲端桌面服務 (上集)

2022/10/14

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關鍵字,如下圖所示。

PVC關鍵字 


在部署VPC之前請確認要在哪一個Region(如右上角Tokyo區域)進行VPC的建立。

確認後請點選【Create VPC】建立。如下圖所示。

 

Create VPC

這裡請輸入VPC名稱、CIDR網段其餘採預設值即可,例如VPC only。

Create VPC 

 


下圖為完成VPC的建立。

完成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內的子網路 


請指定哪一個VPC、子網名稱、子網路所在可用區以及IP位址範圍。

建立VPC內的子網路 

 

 


下圖為完成子網路的建立。

建立VPC內的子網路 

小提醒: 在新增另一組子網路時,儘量避免在同一可用區內(AZ)。


4. 新增一組Security Group

主要目的是讓EC2 Instance能與地端互Ping 以及能夠SSH管理EC2主機。請在左邊功能選項中->Security groups,並點選右上角【Create security group】建立。如下圖所示。

新增一組Security Group 


這裡請輸入安全群組名稱、套用哪一個VPC網段以及增加Inbound進來的規則,例如允許任何來源主機可對該網段裡的主機做Ping (ICMP)動作和SSH連線,Outbound出去的規則則全開 。

新增一組Security Group 

 

 


可再給安全群組一個識別名稱,以便日後方便管理。

新增一組Security Group 


5. 建立一個Internet Gateways (IGW)

網際網路閘道是一種可水平擴充且高可用性的VPC元件,允許VPC與Internet之間的通訊。請在左邊功能選項中->Internet gateways,並點選右上角【Create internet gateway】建立。如下圖所示。

建立一個Internet Gateways 


這裡請輸入網際網路閘道名稱。

建立一個Internet Gateways 


Attach附加到一開始所建立的VPC。

建立一個Internet Gateways 

建立一個Internet Gateways 


下圖為完成IGW的建立。

建立一個Internet Gateways 


於Route Tables路由中加入一筆0.0.0.0/0並且對應到剛剛所建的IGW。

請在左邊功能選項中->Route tables並點選該路由表->點選下面的路由標籤->【Edit routes】。

建立一個Internet Gateways 


這裡加入0.0.0.0/0預設路由並指向目標IGW。表示預設路由經由IGW出Internet。

建立一個Internet Gateways 


下圖為完成預設路由的建立。

建立一個Internet Gateways 



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】建立。如下圖所示。

建立Customer Gateways 


這裡主要輸入CGW IP位址(地端設備的Public IP)以及Tag名稱。BGP ASN預設即可。

建立Customer Gateways 

 


下圖為完成CGW的建立。

建立Customer Gateways 


步驟2 建立Virtual Private Gateways (VGW)

請在左邊功能選項中->Virtual private gateways,並點選右上角【Create virtual private  gateway】建立。如下圖所示。

建立Virtual Private Gateways 


請輸入VGW Tag名稱。

建立Virtual Private Gateways 


完成VGW建立後,並Attach附加到所建立的VPC。

建立Virtual Private Gateways 

建立Virtual Private Gateways 


下圖為完成VGW的建立。

建立Virtual Private Gateways 


步驟3 配置路由傳播

請在左邊功能選項中->Route tables並點選該路由表->點選下面的Route propagation標籤->【Edit route propagation】編輯路由傳播。如下圖所示。

配置路由傳播 


請勾選Propagation。

配置路由傳播 


下圖為完成啟用路由傳播。

配置路由傳播 


步驟4 建立Site-to-Site VPN連線

建立兩端的VPN連線。請在左邊功能選項中->Site-to-Site VPN Connections,並點選右上角【Create VPN connection】建立。如下圖所示。

建立Site-to-Site VPN連線 


請下拉選取剛剛新增的CGW以及點選靜態路由選項。在靜態路由IP Prefixes請加入要通往地端的網段,例如172.19.0.0/16、172.16.0.0/16等。

建立Site-to-Site VPN連線 


這裡Tunnel1及Tunnel2的PSK(Pre-Shared Key)自訂義密碼為vdi-test。地端設備也記得要設定相同的PSK。

建立Site-to-Site VPN連線 


下圖為完成VPN連線的資訊。

建立Site-to-Site VPN連線 


下圖為VPN Tunnel連線的Public IP資訊。

建立Site-to-Site VPN連線 


下圖為VPN路由資訊。

建立Site-to-Site VPN連線 

步驟5 下載VPN設定檔

AWS VPN大致已設定完成,接下來地端設備的設定。在串接VPN之前可先知道地端設備是用什麼型號,例如Cisco、Fortinet或是Juniper設備等,依設備型號下載設定檔案,提供給網工人員參考設定(只要雲地設定一致即可),記得此設定檔案僅供參考。

下載VPN設定檔 


此範例地端設備為FortiGate OS版本為6.4.4以上。

下載VPN設定檔 



配置地端設備(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】建立。如下圖所示。

建立IPSec Tunnel介面 


這裡請輸入VPN Tunnel名稱、所要連接的AWS Tunnel1 Public IP位址、指定VPN介面、Pre-share key、IPSec Phase1 Proposal以及Phase2 Proposal加密及驗證演算法等資訊。

建立IPSec Tunnel介面 

建立IPSec Tunnel介面 

建立IPSec Tunnel介面 

建立IPSec Tunnel介面 

建立IPSec Tunnel介面 

確認後請點選【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連線狀態。

驗證VPN Tunnel通訊 


在AWS環境開啟二台VM虛擬主機並各自往地端不同網段去ping。如下圖所示。

驗證VPN Tunnel通訊 






驗證VPN Tunnel備援

在VPN備援測試可以持續ping著,同時在地端設備將某一VPN介面停用,觀察是否會有掉封包的可能性,經實測結果完全沒掉包,不論停用哪一介面都沒有被影響。


監控VPN Tunnel狀態

主要設定步驟:

步驟 1:設定SNS通知

步驟 2:設定CloudWatch監控

步驟 3:測試告警


步驟1 設定SNS通知

Amazon CloudWatch使用Amazon SNS傳送電子郵件。首先,建立並訂閱SNS主題。當建立CloudWatch告警時,可以新增此SNS主題,以在告警變更狀態時傳送電子郵件通知。請搜尋SNS關鍵字,如下圖所示。

監控VPN Tunnel狀態 


-建立Topic主題

請在左邊功能選項中->Topics,並點選【Create topic】建立。如下圖所示。

監控VPN Tunnel狀態 


依據預設,主控台會建立【FIFO】。這裡請選擇【Standard】並輸入主題的名稱,例如VPN_Tunnel_Status。

監控VPN Tunnel狀態 


-建立主題的訂閱

請在左邊功能選項中->Topics,並點選【Create subscription】建立訂閱。如下圖所示。

監控VPN Tunnel狀態 


對於Protocol,支援多種協定例如AWS SQS、Email、HTTP、HTTPS以及SMS簡訊系統等。這裡以Email方式簡單示範告警接收,請下拉選取Email,並針對 Endpoint,請輸入可用於接收通知的Email地址。

監控VPN Tunnel狀態 


下圖為完成Topic主題訂閱。

監控VPN Tunnel狀態 


請檢查電子郵件收件匣並在AWS通知的電子郵件中選擇Confirm subscription (確認訂閱)。寄件者ID通常是「no-reply@sns.amazonaws.com」。下圖為電子郵件待確認狀態。

監控VPN Tunnel狀態 


監控VPN Tunnel狀態 


下圖為電子郵件已確認狀態。

監控VPN Tunnel狀態 


步驟2 設定CloudWatch監控

請搜尋cloudwatch關鍵字,如下圖所示。

監控VPN Tunnel狀態 


請在左邊功能選項中->Alarms,並點選【Create alarm】建立。如下圖所示。

監控VPN Tunnel狀態 


這裡請選擇Select metric。

監控VPN Tunnel狀態 


請輸入VPN,然後選擇VPN Tunnel Metrics。

監控VPN Tunnel狀態 


選擇VPN通道的IP位址和TunnelState指標。並選取【Select metric】。

監控VPN Tunnel狀態 


這裡監控任一通道的「關閉」狀態。對於Whenever (每當),請選擇 Lower (低於) (<) 並輸入1。Period預設為5分鐘為一個定期監控點,可調整為1分鐘。在Additional configuration下輸入3,讓資料點發出告警。例如Period=1,Datapoints=3 表示達3分後會發出告警

監控VPN Tunnel狀態 



請在Select an SNS topic下,下拉選取現有的通知清單或建立新的通知清單。

監控VPN Tunnel狀態 


這裡請輸入規則的名稱和描述。

監控VPN Tunnel狀態 


最後檢查告警的設定,然後選擇【Create alarm】建立告警。

監控VPN Tunnel狀態 


第一條VPN Tunnel1監控告警已設定完成,請依相同步驟再把第二條VPN Tunnel2監控建立起來。下圖為完成VPN Tunnel狀態監控。

監控VPN Tunnel狀態 


步驟3 測試告警

最後就是要來驗收看看是否因某一條VPN Tunnel異常而發告警通知管理人員,可隨意中斷某一Tunnel並觀察是否收到告警信件。


-監測到介面異常

監控VPN Tunnel狀態 


-發出告警信

監控VPN Tunnel狀態 


小提醒: VPN Tunnel狀態如果恢復正常,預設是不會再發信通知已恢復的。



設定Directory Service (AD Connector)

AWS WorkSpaces是AWS的VDI服務,也是微軟2019年10月1日修改服務條款後,在AWS使用MicroSoft Office的唯一服務。請搜尋directory關鍵字。如下圖所示。

設定Directory Service 


請在左邊功能選項中Directories,請點選右上角【Set up directory】建立。

設定Directory Service 


這裡目錄類型選擇【AD Connector】。

設定Directory Service 


因目前使用人數需求較少,故選擇【small】即可。

設定Directory Service 


選擇VPC和子網,子網必須選擇在不同AZ可用區,AWS會在你選擇的2個子網部署AD Connector。如果要在增加其它子網則須另再新增一個AD Connector。

設定Directory Service 

輸入部署目錄的完整名稱,例如gamania.com。

DNS主機的IP位址,以及AD Query的服務帳密。

設定Directory Service 


確認資訊無誤後,點選【Create directory】。

設定Directory Service 

建立AD Connector需要20-30分鐘。下圖為目錄的狀態。

設定Directory Service 


啟用WorkSpaces服務

-註冊目錄

開始建立WorkSpaces之前,需先註冊執行WorkSpaces子網到目錄(AD Connector)。這樣WorkSpaces就會依據註冊目錄所在的子網部署到該網段裡。

請搜尋workspaces關鍵字。如下圖所示。

啟用WorkSpaces服務 


請在左邊功能選項中->Directories,下拉Actions選項【Register】註冊。

啟用WorkSpaces服務 

小提醒: 可新增多個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服務 


-執行WorkSpaces主機

選擇左側WorkSpaces後,請點選【Launch WorkSpaces】,開始建立。

啟用WorkSpaces服務 


選擇WorkSpaces所在的目錄。該目錄(AD Connector)會依據所在的子網而部署。

啟用WorkSpaces服務 


輸入AD使用者並點選【Search】搜尋。

啟用WorkSpaces服務 


將該AD使用者加入WorkSpaces。

啟用WorkSpaces服務 


選擇啟動的WorkSpaces映像檔,可選擇帶有Office映像。WorkSpaces也是目前在AWS上利用Office的唯一選擇。

啟用WorkSpaces服務 


這裡選擇【AutoStop】預設的模式,採用小時計費,適合短期使用。AlwaysOn類似月租概念,如需長期使用建議可選擇此模式,一個月下來會省非常多成本。

啟用WorkSpaces服務 

確認內容後,點選啟動WorkSpaces。

啟用WorkSpaces服務 


下圖為WorkSpaces在建立中。

啟用WorkSpaces服務 


啟用WorkSpaces服務 

WorkSpaces建立成功後,有二個重要資訊須知。

-下載WorkSpaces Clients Link的連結

-註冊代碼


下載WorkSpaces Client程式

依據Clients Link連結,請下載客戶端程式。

下載WorkSpaces Client程式 

在安裝過程中依Wizard步驟指示安裝即可,如下圖所示。

下載WorkSpaces Client程式 

<…中間省略>


下載WorkSpaces Client程式 


登入WorkSpaces

啟動WorkSpaces Client程式,輸入註冊代碼後,並點選【Register】。

下載WorkSpaces Client程式 

輸入AD使用者帳號及密碼後,請點選【Sign In】登入。

下載WorkSpaces Client程式 

顯示如下頁面,成功登入WorkSpaces桌面 。

下載WorkSpaces Client程式 


驗證WorkSpaces存取

由此可知,該主機順利由AWS出Internet(日本區域),也可順利存取Domain網域內的OA資源(檔案伺服器)。

下載WorkSpaces Client程式 


可對WorkSpaces主機做一些編輯、重啟、停止、刪除及客製映像檔等操作。

下載WorkSpaces Client程式 



本章完整介紹雲端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



其他訊息