【網路安全】VPC Network 基礎安全防護與操作設定

在 Google Cloud Platform (簡稱 GCP) 的世界中,Virtual Private Cloud(簡稱 VPC)為使用者提供了全球性、可擴展且靈活的虛擬私有網絡,在 GCP 中是一項非常重要的基礎服務,它能夠讓使用者部署像是 Google Compute EngineGoogle Kubernetes Engine  Google App Engine 等 GCP 服務到雲端。提醒您,越複雜的架構到後期更會無法輕易地去進行變動,因此會建議使用者應在一開始時就對 VPC Network 的設計進行規劃。本篇文章我們將會實作 Custom VPC Network 與 Firewall 建立。

在 Google Cloud 中使用安全性較高的 VPC

雖然在 GCP 中已經有預設的 VPC 與 Firewalls 可以用來進行資源的部署,但其實這不是最正確的做法。我們會建議您使用 Custom 模式的 VPC Network,特別是在正式環境之中。此外,根據 GCP 官方給出的 Best Practices,當您建立了自己的網路後,也應該刪除 GCP 預設的網路。在以下的情況中您可以考慮使用 Custom VPC  [1]

  1. 不需要每個 Region 中都有一個自動創建的子網段 (Subnet)。
  2. 避免因為衝突而干擾到您整體的網絡規劃 (像是新 Region 推出時其自動創建的新網段與既有的網段 IP 有重疊)。
  3. 需要完全控制在 VPC Network 中所創建的子網段,包括其區域與 IP 範圍。
  4. 未來有計劃要使用 VPC Network Peering 或 Cloud VPN 等服務來連接不同的 VPC 網絡。(Auto 模式下的 VPC Network 其子網段具有相同的 IP 地址,會產生衝突)。
  5. 您需要擁有 IPv6 範圍的子網段。

VPC 基礎操作

接下來將開始一個涵蓋了 Custom VPC Network 與 Firewall 建立的範例。在開始前有一點需要向您提醒,如果您使用非 Free Tier 的 GCP 帳號做測試,以 1 個小時的時間來計算大約需要花費 USD 1.04,主要的費用由 Compute Engine 的機器類型、使用資源 (CPU、Memory) 所產生,詳情還請參考 GCP Pricing Calculator [2]。

一、GCP 上操作所需的 IAM 權限

使用者需要先在專案層級 (Project Level) 中的 IAM 內擁有 2 個由 GCP 所事先定義好的 Predefined Role:

  • Compute Network Admin」 [3] 這個 Role 能授予使用者具備建立、修改和刪除網絡相關資源的權限,但只能讓您對 Firewalls 進行讀取,並不包含其餘的操作,因此還需與下述第 2 個 Role 搭配使用。
  • Compute Security Admin」 [4] 這個 Role 能夠讓使用者擁有對 Firewalls 進行操作的所有權限 (像是建立、修改和刪除)。

二、實作步驟

2-1 建立 Custom 模式的 VPC Network

當您進入到 VPC networks 的頁面後應該可以發現 GCP 已經幫您自動建立了一個模式為 Auto 的網路,但我們將嘗試手動後續範例所需要的 Custom VPC。

  1. 首先您需要進入 VPC 的 Console,並點擊上方「CREATE VPC NETWORK」的按鈕來開始建立 Custom VPC [5]。
test

圖 2-1:VPC Network 首頁

b. 請於 Name 的欄位為您的 Custom VPC 指定一個名字,本範例將以 「demo-custom-vpc-network」做為例子。

c. 您可以依照自身的需求,決定在 VPC network ULA internal IPv6 range 的區塊中是否要啟用 IPv6 的 IP 地址,在這個範例中並不會使用到 IPv6,因此可以使用「Disabled」的選項即可。

d. 在 Subnet creation mode 的區塊中選擇使用「Custom」的選項,接下請參考步驟 e 來繼續建立您的 Subnet。



test

圖 2-2:Subnet 模式設定

e. 請在 Name 的欄位為 Subnet 指定一個名字並選擇要建立在哪個 Region (每個 Region 可以有一個或多個的 Subnets),本範例中將命名為「demo-custom-vpc-network-subnet1」,並把 Region 設定為「asia-east1」。在 IPv4 range 的欄位,則是需填寫一個未與其他 Subnets 衝突的網段,本範例以 10.100.0.0/24 範例。其他地方您可以先使用預設的配置即可,請記得點擊「DONE」的按鈕來儲存。



test

圖 2-3:建立自己的子網段

2-2 建立用來測試的 VM

  1. 在這一章節中,將使用 Google Compute Engine [6] (後簡稱為 GCE) 這個 GCP 服務來測試 Firewall 的效果,因此先建立一台 VM [7] 於剛剛新增完成的 Custom VPC 內。請進入 GCE 的 Console 內,並請點選上方「CREATE INSTANCE」的按鈕。(請注意,此步驟需要您的 IAM 中有 Compute Admin 此 Predefined Role)
  2. 請於 Name 的欄位為您的 VM 指定一個名字,本範例將以「instance-1」做為例子。
  3. 將 Region 的欄位調整成「asia-east1」,接著到設定最下方展開 Advanced options 的下拉式選單,在 Networking > Network interfaces 的部分,將 Network 更改成 Custom VPC「demo-custom-vpc-network」,此時 Subnetwork 會自動替換為「demo-custom-vpc-network-subnet1」,點擊「DONE」的按鈕來完成 Network 部分的設定。


test

圖 2-4:建立一台 VM

d. 點擊「CREATE」的按鈕來完成 VM 的建立。

e. 當您點擊右側「SSH」的按鈕後,您應該會發現無法順利連進去剛剛建好的 VM,因為目前這個 VPC 中並沒有任何 Firewalls 有開放 SSH 連線所需的 22 Port。



test

圖 2-5:VM SSH 連線失敗

2-3 建立專屬的 Firewall

進入到 Firewall 的頁面後,可以發現 GCP 已經自動產生了 6 條以 default 名稱為開頭的防火牆規則,但我們將手動為已建立完的 Custom VPC 添加對應的 22 Port 規則。

a. 重新回到 VPC 的 Console,並點擊左側 Firewall 的選單,接著點擊上方「CREATE FIREWALL RULE」的按鈕 [8]。

b. 將此 Firewall 命名為「demo-custom-vpc-network-allow-22」,並將 Network 的欄位更改成稍早建立的 Custom VPC「demo-custom-vpc-network」。Priority 是用於決定此 Firewall 的優先程度,數字越小會越優先被判斷。

test

圖 2-6:Firewall 名稱與 Network 設定

c. 您可以選擇此 Firewall 的類型(Ingress / Egress)和允許的動作(Allow / Deny),由於此範例是想要通過 22 Port 順利連進去 VM,因此還請分別選擇 Ingress 及 Allow 的選項。

test

圖 2-7:Firewall 類型與動作

d. 在下方 Targets 的部分,請選擇「All instances in the network」的選項 (在設定上更為嚴謹的做法是為 VM 添加不同的 Network tags,這樣您就可以針對不同的 VM 利用「Specified target tags」的選項去做防火牆的控制)。

test

圖 2-8:Firewall 設定目標對象

e. 在 Source IPv4 ranges 的欄位需決定那些網段可以透過此 Firewall 來連進您的 VM 中,舉例來說像是您的個人 / 企業 IP 位址。本範例中將以 "35.74.166.229" 此 IP 來做示範,還請記得更換為您自身的 IP。

test

圖 2-9:設定允許的 IP 位址

f. 最後則是決定哪些 Port 要被開放使用,此範例因為要使用 SSH,您需要先將「TCP」做勾選的動作,並在下方填入「22」。到這裡為止 Firewall 的設定就已經完成了,還請記得按「CREATE」來完成操作。

test

圖 2-10:指定使用的 Protocols 與 Ports

g. 為了測試 Firewall 是否建立成功,請再回到 GCE 的 Console,點擊相同的「SSH」按鈕,此時應該已經可以順利連進去 VM 了,如果仍然是連線失敗的狀態,還請檢查上述步驟是否有設定錯誤的情況。


test

圖 2-11:VM SSH 連線成功

結論

在進行任何部署之前,請先替您的 VPC 網絡設計規劃仔細地考慮,VPC 的配置可能會對其路由、規模和安全性產生重大的影響。雖然使用預設的 VPC Networks 與 Firewall 是很方便又快速,但其實這是非常不安全的方式,建議還是事先規劃好相關網路的架構,採用客製化的做法,也利於自己日後能較方便的去維護。如果想了解更多與 VPC Network 或是 Firewall 的介紹,還請參考官方文件 [9,10],或是您也可以瀏覽官方針對 VPC 所提出的最佳建議(Best Practices)  [11]。

撰文者:Oaklynn Lin, Cloud Support Engineer

協助客戶調查、解決有關雲端環境上的疑難雜症,並負責 MSP 客戶專案環境的代管。

Contact CloudMile

聯絡我們

不論產業,我們擁有豐富的服務經驗

Phone Number

電話

  • TW+886
  • TW+886
  • Reason for Inquiry

    諮詢服務

  • Electrum Advisory 策略諮詢

  • MileInfra 雲端基礎架構現代化

  • 企業教育訓練

  • MileSec 多雲資安防禦與維運

  • MileData 雲端數據管理與⾃動化

  • MileOps 混合雲多雲雲端維運

  • MileAI 企業⽣成式 AI 應⽤與創新

  • LumiTure.ai 以 AI 驅動的FinOps 平台

  • 其他

  • 請填寫電子信箱