iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
Build on Google AI

使用gemini 準備 az-900系列 第 12

使用gemini 準備AZ-900 Day12 Network Security Group & ASG Applycation security group

  • 分享至 

  • xImage
  •  

【Day 12】Network Security Group (NSG) & ASG:Azure 網路城牆與工作負載分組 feat. AWS 雙強對照

系列專欄:從 AWS 視角征服 Azure:AZ-900 30 天通關實戰
難度指數:★★★★☆
核心考點:NSG 套用位置(Subnet vs NIC)、雙層評估模型(Effective Rules)、規則優先序(100–4096)、平台預設規則與 DenyAll 收口、狀態式(Stateful)連線追蹤、Service Tag、Application Security Group (ASG) 邊界、Network Watcher 觀測工具(IP Flow Verify / NSG Flow Logs)。

🎯 前言與今日目標

Day 11 我們替 Titan 科技劃出了 VNet、Subnet 與 Private Endpoint 的網路疆域;但「資源在私有網路裡」絕不等於「封包天生安全」。如果內部網路處於完全放任狀態,一旦前台 Web 伺服器遭遇漏洞攻破,黑客便能毫無阻礙地橫向移動(Lateral Movement)直搗核心資料庫。今天我們要在每一道子網路門口與虛擬網卡前部署重兵守衛:誰可以進來、誰可以出去、多條規則發生衝突時誰說了算,以及如何在不手工維護成百上千個動態 IP 的前提下,優雅地為工作負載分組。

這一關最容易把 AWS 的肌肉記憶直接複製過來而釀成大禍。在 AWS 架構中,Security Group (SG) 是掛載在 ENI 上的狀態式防護,而 Network ACL (NACL) 才是掛在 Subnet 上的無狀態(Stateless)邊界;但在 Azure 中,Network Security Group (NSG) 既能掛在 Subnet,也能掛在 NIC,且無論掛在哪裡都是狀態式(Stateful)!很多資深 AWS 架構師看到子網路層級的 NSG,就下意識以為它是 NACL,在 Outbound 手動開放大範圍臨時連接埠(Ephemeral Ports),無形中在城牆上鑿出了致命的大洞。

今天的目標是建立原廠級架構推理鏈:掌握 NSG 雙層過濾機制優先序數值決策鏈ASG 角色分組實務,以及透過 Network Watcher 進行網路流量可觀測性稽核

📚 Part 1:0.5 小時觀念裝備(AWS ↔ Azure 深度對照)

📐 雙雲網路城牆請求路徑架構圖

            Internet / 外部連線請求             
                       ▼                        
┌──────────────────────────────────────────────┐
│ 第 1 道城門:Subnet 層級 NSG                 │
│ • 共同安全基線 (如: 拒絕特定惡意來源 IP)     │
└──────────────────────────────────────────────┘
                       ▼                        
┌──────────────────────────────────────────────┐
│ 第 2 道城門:NIC (網卡) 層級 NSG             │
│ • 工作負載專屬規則 (使用 ASG 限制特定角色)   │
└──────────────────────────────────────────────┘
                       ▼                        
┌──────────────────────────────────────────────┐
│ 目的地:工作負載實體                         │
│ • Azure Virtual Machine / AKS Node           │
└──────────────────────────────────────────────┘

Azure NSG 雙層評估與 ASG 工作負載分組

User
  |
  v
Public IP --> Application Gateway
                  |
                  | HTTPS 443
                  v
+------------------------------------------------------------------+
| Azure VNet: 10.20.0.0/16                                       |
|                                                                  |
|  +----------------------+    +----------------------+           |
|  | Web subnet           |    | API subnet           |           |
|  | Subnet NSG           |--->| Subnet NSG           |           |
|  | Allow Internet:443   |    | Allow ASG-Web:8080   |           |
|  | DenyAll catch-all    |    |                      |           |
|  | Web VM NIC           |    | API VM NIC           |           |
|  | NIC NSG              |    | NIC NSG              |           |
|  | ASG-Web              |--->| ASG-API              |           |
|  +----------------------+    +----------+-----------+           |
|                                         | SQL 1433               |
|                                         v                        |
|                              +----------------------+            |
|                              | Data subnet         |            |
|                              | Subnet NSG          |            |
|                              | Allow ASG-API:1433  |            |
|                              | Database VM NIC     |            |
|                              | NIC NSG             |            |
|                              | ASG-DB              |            |
|                              +----------------------+            |
|                                                                  |
|  Inbound: Subnet NSG ---> NIC NSG                                |
|  Outbound: NIC NSG ---> Subnet NSG                               |
|  ASG rules use workload roles instead of fixed VM IP addresses.  |
+------------------------------------------------------------------+
                                  ^
                                  |
                 +----------------+----------------+
                 | Network Watcher                 |
                 | IP Flow Verify / NSG Flow Logs   |
                 +---------------------------------+
                 Observes effective NSG rules and flow records

讀圖方式:Inbound 流量依序通過 Subnet NSG,再通過 NIC 層級的 NSG;
任一層拒絕即停止。Web 到 API、API 到 Data 的規則以 ASG 代表工作負載角色,
不必把會隨擴縮變動的 VM IP 寫死在規則中。NSG 是狀態式連線追蹤,允許的連線
回應流量會自動放行;Network Watcher 則用來驗證實際有效規則與流量紀錄。

💡 架構師重點筆記:NSG 可以在 Subnet 與 NIC 兩個層級獨立配置。當外部流量流入時,必須先通過 Subnet NSG,再通過 NIC NSG,任一層級被 Deny 封包就立刻丟棄;當內部流量流出時,順序正好相反(先評估 NIC NSG,再評估 Subnet NSG)。

📐 AWS Security Group vs Azure NSG 深度對比

┌────────────┬──────────────────────────────┬──────────────────────────────┐
│ 比較維度   │ AWS Security Group (SG)      │ Azure NSG (安全群組)         │
├────────────┼──────────────────────────────┼──────────────────────────────┤
│ 套用層級   │ ENI / Instance 網卡層級      │ Subnet 或 NIC (網卡)         │
│ 狀態機制   │ Stateful(連線追蹤回程)     │ Stateful(連線追蹤回程)     │
│ 規則模型   │ 僅允許規則 (Allow-only)      │ Allow / Deny 雙向支援        │
│ 優先順序   │ 無序號;任一符合即放行       │ Priority 100-4096 小者優先   │
│ 預設收口   │ 未明確允許即隱式拒絕         │ 規則 65500 DenyAll 收口      │
│ 角色分組   │ SG Reference (參照其他SG)    │ ASG (應用程式安全性群組)     │
└────────────┴──────────────────────────────┴──────────────────────────────┘

💡 架構師重點筆記:AWS SG 只有「允許清單」,未符合者直接隱式拒絕;Azure NSG 則同時支援 Allow 與 Deny,且完全依靠 Priority(優先序) 由小到大評估,第一個符合的規則直接決定生死。

🧱 NSG 核心運作機制與架構風險剖析

NSG 包含一組安全性規則,每條規則由六大要素構成:來源 (Source)、來源連接埠 (Source Port)、目的地 (Destination)、目的地連接埠 (Destination Port)、通訊協定 (Protocol:TCP/UDP/ICMP/Any) 以及 動作 (Action:Allow/Deny)

1. 優先序(Priority)數值決策法則

  • 規則優先序介於 100 至 4096 之間。
  • 數字越小,優先權越高(The lower the number, the higher the priority)
  • 評估引擎由最小數字開始比對,一旦找到第一條相符的規則,便立即執行 Allow 或 Deny,後續的所有規則全數略過

2. 平台內建預設規則(不可刪除,但可覆蓋)

每個 NSG 建立時,Azure 都會自動注入一組隱私預設規則(優先序由 65000 開始),負責維持基礎網路運作:

  • AllowVNetInBound (Priority 65000):允許同一 VNet 內的所有資源互通。
  • AllowAzureLoadBalancerInBound (Priority 65001):允許 Azure 負載平衡器的健康探測封包進入。
  • DenyAllInBound (Priority 65500)全域拒絕收口!所有未被前面自訂規則允許的外部 Inbound 流量一律丟棄。
  • AllowInternetOutBound (Priority 65001 Outbound):預設允許向外連線至公開網際網路。

⚠️ 架構風險與爆炸半徑 (Blast Radius) 深度剖析

  • 全球開洞與組態漂移(Wildcard Exposure)
    • Risk:開發團隊為了除錯,常臨時建立 Priority 100 的規則:Source: 0.0.0.0/0, Port: *, Action: Allow
    • Blast Radius:由於 Priority 100 高於所有防線,這條規則會直接覆蓋後續所有精心設計的 Deny 規則,使整個子網路瞬間裸奔於公網,引發勒索軟體全網感染。
  • 狀態式(Stateful)正確認知
    • 當 NSG 允許一條 Inbound 連線(例如 Port 443)後,該連線的回應流量(Response Traffic)會由底層連線追蹤引擎自動放行返回,絕對不需要在 Outbound 開放臨時連接埠。手動在 Outbound 開放大範圍連接埠,只會替惡意連線建立外洩通道!

🏷️ Service Tag 與 ASG:避免 IP 清單漂移

在傳統資料中心,防火牆規則充斥著寫死的靜態 IP。一旦雲端資源彈性擴縮或微軟服務更換 IP,規則立刻失效或造成安全漏洞。Azure 提供了兩大高階抽象概念:

1. Service Tag(服務標籤)

  • Service Tag 是由 Microsoft 維護與動態更新的特定 Azure 服務 IP 位址前綴群組。
  • 常見內建標籤包括:Internet(所有非私有位址)、VirtualNetwork(VNet 與所有對等互連網路)、AzureLoadBalancer(平台健康探測器)、Storage(Azure 儲存服務)、Sql(Azure SQL 服務)。
  • 安全邊界限制:Service Tag 解決的是 IP 維護問題,它絕不代表身分驗證!允許 Storage 標籤代表允許連往 Azure 儲存體服務,但具體能存取哪個 Storage 帳戶仍需靠 IAM 與金鑰把關。

2. Application Security Group (ASG,應用程式安全性群組)

  • ASG 允許你將虛擬網卡(NIC)按照業務角色進行邏輯分組(例如:ASG-WebASG-APIASG-DB)。
  • 在 NSG 規則中,可以直接將來源或目的地指定為 ASG,宣告如:「允許來源 ASG-Web 存取目的地 ASG-API 的 Port 8080」。
  • 當 VM 擴縮容、新增機器或更換網卡時,只需將新網卡加入該 ASG,所有關聯的網路規則自動生效,零設定變更
  • ⚠️ 原廠核心限制(必考)加入同一個 ASG 的所有 NIC,必須位於「同一個 Virtual Network」之內!ASG 不支援跨 VNet 聚合資源。

🏗️ 實體程式碼解構:Azure Bicep vs AWS Terraform 安全規則

對標 AWS Skill Builder 原廠標準,我們透過 Side-by-Side 程式碼解構 Azure NSG 規則的核心語法與屬性定義:

// Azure Bicep: 定義 NSG 並透過 ASG 宣告工作負載規則
resource nsgBackend 'Microsoft.Network/networkSecurityGroups@2023-09-01' = {
  name: 'nsg-titan-backend'
  location: 'eastus'
  properties: {
    securityRules: [
      {
        name: 'Allow-Web-To-API'
        properties: {
          priority: 110 // 數值小者優先
          direction: 'Inbound'
          access: 'Allow'
          protocol: 'Tcp'
          sourcePortRange: '*'
          destinationPortRange: '8080'
          // 使用 ASG 宣告來源,擺脫靜態 IP
          sourceApplicationSecurityGroups: [
            {
              id: resourceId(
                'Microsoft.Network/applicationSecurityGroups',
                'asg-web'
              )
            }
          ]
          destinationAddressPrefix: 'VirtualNetwork'
        }
      }
    ]
  }
}
# AWS Terraform: 定義 Security Group 規則 (使用 SG Reference)
resource "aws_security_group_rule" "allow_web_to_api" {
  type                     = "ingress"
  from_port                = 8080
  to_port                  = 8080
  protocol                 = "tcp"
  security_group_id        = aws_security_group.api_sg.id
  # ⚠️ AWS 使用 source_security_group_id 參照前台 SG
  source_security_group_id = aws_security_group.web_sg.id
}

🔐 觀測與診斷:Network Watcher IP Flow Verify 與 NSG Flow Logs

安全的最後一哩路是驗證與觀測。Azure Network Watcher 是專為虛擬網路設計的原生診斷套裝服務:

  1. IP Flow Verify(IP 流量驗證)
    • 給定來源/目的 IP、連接埠與通訊協定,Network Watcher 會立刻回報該封包會被 Allow 還是 Deny
    • 更關鍵的是,它會精確指出究竟是哪一個 NSG、哪一條規則名稱(Priority 幾號)裁決了這個結果,徹底告別手動肉眼比對十幾條規則的痛苦。
  2. NSG Flow Logs(NSG 流量記錄)
    • 將經過 NSG 的所有連線記錄輸出至 Azure Storage 帳戶。
    • 記錄內容包含標準五元組(來源 IP、來源 Port、目的 IP、目的 Port、Protocol)以及動作(Allowed / Denied)。
    • 結合 Traffic Analytics 工具,可視覺化呈現潛在惡意連線、流量拓撲熱點與非預期的公開存取。

📖 AZ-900 核心名詞解釋與速查

  1. Network Security Group (NSG,網路安全性群組)
    • 定義:Azure 原生虛擬防火牆規則集合,依 Priority、方向、五元組過濾流量,可套用於 Subnet 或 NIC。
    • AWS 對照:AWS Security Group(同為狀態式;但 Azure NSG 額外支援掛載於 Subnet 並具備序號優先權)。
    • 考點:Priority 越小越優先(100–4096);以 65500 DenyAll 預設拒絕收口。
  2. Application Security Group (ASG,應用程式安全性群組)
    • 定義:將虛擬網路介面(NIC)依工作負載角色分組的邏輯標記,讓 NSG 規則以角色為對象撰寫。
    • AWS 對照:AWS Security Group Reference(以 SG 作為 Ingress 來源)。
    • 考點:不提供身分驗證、不能跨 VNet、有效防止 IP 清單維運漂移。
  3. Service Tag(服務標籤)
    • 定義:由 Microsoft 集中管理與更新的 Azure 服務 IP 位址前綴清單(如 InternetAzureLoadBalancer)。
    • 考點:簡化規則設定;代表網路前綴,不等於資料面身分驗證。
  4. Stateful Filtering(狀態式篩選)
    • 定義:防火牆會記錄作用中工作階段;允許的 Inbound 連線,其對應的 Outbound 回應流量由平台自動放行。
    • AWS 對照:Security Group 為 Stateful;AWS NACL 為 Stateless。
    • 考點:回應流量不需額外開放臨時連接埠(Ephemeral Ports)。
  5. Network Watcher(網路監看員)
    • 定義:Azure 網路健康診斷、流量稽核與連線排錯的受控服務套裝。
    • 考點:包含 IP Flow Verify(判定哪條規則擋掉封包)與 NSG Flow Logs(連線稽核日誌)。

🎮 Part 2:1 小時實戰情境 Role-Play

🏛️ 情境背景:Titan 科技的三層城門安全防線

Titan 科技的電商微服務包含:Web-Subnet(執行前端 VMSS)、API-Subnet(業務邏輯運算)以及 DB-Subnet(儲存後端)。
在即將上線的資安審查會議上,實習架構師提交了一份網路安全配置:
「為了方便排查問題,在 Web NIC 上開放 0.0.0.0/0:22(SSH)方便隨時連線;因為 NSG 掛在 Subnet 上很麻煩,我們把所有規則寫在 Web VM 的 Windows/Linux 本機防火牆裡;另外,因為 Azure 是狀態式網路,所以我們乾脆在 Outbound 把所有 Port 全封死,包含 DNS 與套件更新都不給出。」

CTO 聽完後轉向 Chief Cloud Architect(你):「這份規則如果推向生產環境,我們的系統是不是連啟動更新都做不到,甚至會被公網掃描打穿?請提出符合最小權限原則的防禦性架構。」

🧩 決策任務

  • A. 在 Web NIC 開放全球 SSH(0.0.0.0/0:22)並使用複雜密碼;所有流量控制交給 VM 作業系統內部防火牆處理;Outbound 全面封鎖。
  • B. 在 Web Subnet 套用共同基線 NSG,Web NIC 再套用專屬 NSG 形成雙層防線;前台只開放必要 Port(80/443);使用 ASG-WebASG-API 定義工作負載信任鏈;管理流量全面改走 Azure Bastion;Outbound 保持適度連網與內部 DNS 解析。
  • C. 只在 Web NIC 套用單一 NSG,並宣告該 NSG 會自動保護同 VNet 內的所有其他 VM;為了讓回應封包順利返回,在 Inbound 額外開放全球臨時連接埠(Ephemeral Ports 1024-65535)。
  • D. 將所有內部 VM 的 Private IP 直接寫進 NSG 規則清單;使用多個跨不同區域的 VNet 共同加入同一個 ASG 進行集中控管。

🎯 解題拆解與解析

✅ 正解:方案 B

方案 B 展現了微軟推薦的原廠深度防禦(Defense-in-Depth)最佳實踐:

  1. 雙層縱深防禦模型:Subnet NSG 建立全區安全底線,NIC NSG 依業務邏輯細分。即使單一 NIC 規則設定失誤,Subnet NSG 仍能作為最後一道保護傘。
  2. 以 ASG 消除組態漂移:Web 到 API 的連線完全以 ASG-WebASG-API 形式表達,VM 彈性擴縮時完全不需要手動修改 IP 清單。
  3. 消除公網攻擊面:徹底杜絕公網 SSH/RDP,管理面改用 Azure Bastion 進行私密連線;維持正常的狀態式連線追蹤,不破壞 Outbound 核心依賴。

❌ 陷阱選項深度剖析

  • A 錯在忽視公網攻擊面與系統依賴:開放全球 SSH 是重大架構破口;依賴 OS 內部防火牆失去雲端集中治理能力;Outbound 全封會導致 VM 無法向 Azure DNS 查詢網址或拉取必要安全性修補程式。
  • C 錯在跨雲狀態認知與範圍誤解:NSG 掛在單一 NIC 絕對不會自動保護同子網路的其他資源;且 NSG 是 Stateful,為回應流量開啟全球臨時連接埠完全是畫蛇添足,反而創造出巨大的安全破口。
  • D 錯在違反平台硬性限制:手工維護靜態 IP 容易產生維運漂移;更致命的是 ASG 嚴格不支援跨 VNet 部署,此方案在 ARM 部署時會直接報錯中斷。

🎯 Part 3:AZ-900 精選高頻真題解析 + AWS SAA / CLF 雙雲概念連動

本節收錄 5 題核心真題(3 題 ExamTopics 高頻題 + 2 題 gratisexam 歷史題庫題),全數改寫為 Titan 科技情境,依原廠架構師思維鏈深入剖析。

📝 AZ-900 高頻真題 1:控制 Internet 存取 VM 之連接埠(ExamTopics Q256 改編)

題目情境

Titan 科技計劃在 Azure 部署多台虛擬機器。網路安全管理員需要嚴格控制網際網路(Internet)上的裝置能夠存取這些虛擬機器的特定網路連接埠(Ports)。請問架構師應推薦使用哪項 Azure 服務?

  • A. 網路安全性群組 (Network Security Group)
  • B. Microsoft Entra ID 角色 (原 Azure AD 角色)
  • C. Microsoft Entra ID 資源群組
  • D. Azure Key Vault

架構師推理思維鏈

  • 【關鍵字識別】control ports(控制連接埠)、devices on the Internet access VMs(外部連線存取)。

  • 【核心考點定位】:第 3/4 層(L3/L4)網路流量過濾服務選型。

  • 【陷阱識破】:雖然 Entra ID 負責身分安全,但它作用於身分平面,完全無法阻擋 TCP/UDP 傳輸層的網路連接埠掃描與連線

  • 【逐一排除干擾項】

    • 選項 B、C 是身分驗證與存取控制(IAM)工具,管的是身分與授權,不管網路封包。
    • 選項 D 是儲存加密金鑰與機密的保險箱,不處理流量路由。
  • 【關聯官方最佳實踐】:控制特定 IP 與 Port 進入 Azure VM 的標準原生工具就是 Network Security Group (NSG)。正解為 A

  • 來源與驗證:改寫自 ExamTopics Topic 1 Question 256(社群討論全數達成共識,真實 tally 票數 100% 投 A,討論區 Sandy4912 等資深架構師均強調 L4 封包過濾職責);並經 Microsoft Learn:網路安全性群組概觀 交叉驗證確認。


📝 AZ-900 高頻真題 2:Traffic Manager 與 HTTP 存取目標判定(ExamTopics Q217 改編)

題目情境

Titan 科技的 Azure 環境包含多台虛擬機器。維運團隊需要確保名為 VM1 的虛擬機器能夠透過 HTTP(Port 80)接受來自網際網路的連線存取。
提案方案:修改 Azure Traffic Manager 的設定檔(Profile)。
請問這項方案是否能達成目標?

  • A. 是 (Yes)
  • B. 否 (No)

架構師推理思維鏈

  • 【關鍵字識別】accessible over HTTP(透過 HTTP 存取)、Azure Traffic Manager

  • 【核心考點定位】:Traffic Manager 的本質與網路防火牆之職責劃分。

  • 【陷阱識破】:許多初學者看見「Traffic(流量)」就以為它能放行流量。Azure Traffic Manager 是一個基於 DNS 的全域負載平衡器,它只負責將網域名稱解析為不同端點的 IP,根本不經手實際的資料封包,更不具備防火牆放行功能

  • 【逐一排除干擾項】

    • 若要讓封包順利抵達 VM,必須在阻擋 HTTP 的 NSG(或 Azure Firewall)中新增允許 Inbound Port 80 的規則。Traffic Manager 既無法開啟連接埠,也無法覆蓋 NSG 的 Deny 規則。
  • 【關聯官方最佳實踐】:Traffic Manager 僅操作 DNS 解析;開放存取必須修改 NSG 或 Azure Firewall。因此方案無法達成目標,正解為 B (No)

  • 來源與驗證:改寫自 ExamTopics 經典情境系列題 Topic 1 Question 217(社群討論高度共識,真實 tally 顯示 100% 判定 B (No),置頂評論高達 68 次 upvotes 標明 Traffic Manager 僅為 DNS 層級服務);並經 Microsoft Learn:什麼是 Traffic Manager 交叉驗證確認。


📝 AZ-900 高頻真題 3:跨訂用帳戶與跨虛擬網路的流量過濾(ExamTopics Q220 改編)

題目情境

Titan 科技正在進行企業級架構重構,環境中包含了多個 Azure 訂用帳戶(Subscriptions)與十幾個虛擬網路(VNets)。資安長要求架構團隊推薦一項能夠「跨多個訂用帳戶與多個虛擬網路」提供集中式網路流量過濾與安全原則強制執行的服務。請問應選擇哪項服務?

  • A. Azure 防火牆 (Azure Firewall)
  • B. 應用程式安全性群組 (Application Security Group)
  • C. Azure DDoS 保護 (Azure DDoS Protection)
  • D. 網路安全性群組 (Network Security Group)

架構師推理思維鏈

  • 【關鍵字識別】filtering across multiple subscriptions and virtual networks(跨多個訂用帳戶與虛擬網路過濾)。

  • 【核心考點定位】:Azure Firewall 與 NSG 的管理界限與防禦維度差異。

  • 【陷阱識破】:NSG(D)與 ASG(B)只能作用在單一 VNet 內部,完全無法跨訂用帳戶或跨 VNet 集中管理與強制執行規則!

  • 【逐一排除干擾項】

    • 選項 B:ASG 嚴格限制在同一 VNet 內。
    • 選項 C:DDoS Protection 專門抵禦分散式阻斷服務攻擊,不提供自訂網路規則過濾。
    • 選項 D:NSG 無法跨 Subscription 集中套用。
  • 【關聯官方最佳實踐】Azure Firewall 是一項完全受管的雲端狀態式防火牆,具備內建高可用性與無限擴縮彈性,能夠透過 Azure Firewall Policy 集中跨多個訂用帳戶與 VNet 強制執行網路與應用程式過濾。正解為 A

  • 來源與驗證:改寫自 ExamTopics 核心架構題 Topic 1 Question 220(真實 tally 顯示 100% 支持 A (Azure Firewall),社群一致釐清 NSG 屬於單一 VNet 本地防護,跨訂用帳戶必須仰賴 Azure Firewall);並經 Microsoft Learn:什麼是 Azure 防火牆 交叉驗證確認。


📝 AZ-900 真題 4:限制 Web 到 Database 伺服器之連線(2020 gratisexam Q71 改編)

⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(Q71 改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證,更新現行工作負載分組架構概念。

題目情境

Titan 科技計劃在 Azure 上部署多台 Web 伺服器與多台 Database 伺服器。為了落實內部網路隔離,架構師需要推薦一項解決方案,用以嚴格限制「從 Web 伺服器到 Database 伺服器之間允許的網路連線類型與連接埠」。請問推薦方案中應包含什麼?

  • A. 網路安全性群組 (Network Security Groups)
  • B. Azure 服務匯流排 (Azure Service Bus)
  • C. 本地網路閘道 (Local Network Gateway)
  • D. 路由篩選器 (Route Filter)

架構師推理思維鏈

  • 【關鍵字識別】limit types of connections between web and database(限制層與層之間的連線類型)。

  • 【核心考點定位】:多層式(Multi-tier)架構之內部隔離機制。

  • 【陷阱識破】:Service Bus 是非同步訊息佇列 PaaS,不是網路過濾器;Local Network Gateway 用於代表地端機房 IP,與內部 VM 互聯無關。

  • 【逐一排除干擾項】

    • 選項 B 是傳遞訊息的佇列服務。
    • 選項 C 是 VPN 站台對站台連線的組態物件。
    • 選項 D 用於 ExpressRoute BGP 路由傳遞。
  • 【關聯官方最佳實踐】:透過將 NSG 掛載於 Database Subnet(或搭配 ASG),設定 Inbound 僅允許來自 Web 層的特定資料庫連接埠(如 Port 1433/5432),其餘一律由預設規則 Deny。正解為 A

  • 來源與驗證:改寫自 2020 gratisexam Q71;並經 Microsoft Learn:使用網路安全性群組篩選網路流量 交叉驗證確認。


📝 AZ-900 真題 5:為虛擬機器開放自訂連接埠(2020 gratisexam Q64 改編)

⚠️ 來源說明:本題改寫自 2020 年 gratisexam AZ-900 題庫(Q64 改編),屬歷史題庫層,已與 Microsoft Learn 交叉驗證,聚焦於 NSG 規則修改實務。

題目情境

在 Azure 中建立虛擬機器後,該虛擬機器的應用程式需要監聽並接受 TCP 連接埠 8080 的連線請求。請問架構師必須修改哪項資源的設定?

  • A. 網路安全性群組 (Network Security Group)
  • B. 虛擬網路閘道 (Virtual Network Gateway)
  • C. 虛擬網路 (Virtual Network)
  • D. 路由表 (Route Table)

架構師推理思維鏈

  • 【關鍵字識別】allow connections to TCP port 8080 on VM(允許連線至特定 TCP 連接埠)。

  • 【核心考點定位】:自訂應用程式連接埠之放行通道。

  • 【陷阱識破】:修改 Virtual Network(C)只能增減位址空間,無法放行特定的傳輸層連接埠;路由表(D)只管下一個躍點(Next Hop),不管連接埠檢查。

  • 【逐一排除干擾項】

    • 選項 B 是 VPN 閘道,不用於本機內部連接埠放行。
    • 選項 C 是網路疆域定址空間,無封包過濾能力。
    • 選項 D 負責轉送路徑,不檢查 Port 號。
  • 【關聯官方最佳實踐】:在關聯於該 VM 網卡或子網路的 NSG 中,新增一條 Priority 較小(高優先權)的 Inbound 規則,將 Destination Port 設為 8080、Action 設為 Allow。正解為 A

  • 來源與驗證:改寫自 2020 gratisexam Q64;並經 Microsoft Learn:管理網路安全性群組規則 交叉驗證確認。


💡 AWS SAA-C03 / CLF-C02 概念補充與雙雲考點連動演練

為了幫助具備 AWS 背景(CLF-C02 / SAA-C03)的雲端架構師建立扎實的雙向思維映射,我們整合 cxcxc-io 雲端架構圖庫(圖 3:VPC 手寫筆記 NACL vs SG 與 SG Reference)與 Gemini 深度研究報告,精選 2 題高頻經典網路安全性考題進行深度對照演練:

📌 【AWS 經典考題 1】狀態式連線追蹤 vs 臨時連接埠陷阱(SAA-C03 經典架構題)

AWS 考題情境
參考 cxcxc-io 圖 3 的手寫筆記對比:某架構師在 Amazon EC2 前配置了 Security Group,並在 Inbound 開放了 TCP Port 443(HTTPS)。然而,客戶端發送 HTTPS 請求後,該架構師發現在 Security Group 的 Outbound 並未放行任何連接埠,卻驚訝地發現客戶端依然能順利收到伺服器的回應封包。請問背後的原因為何?
A. Security Group 在偵測到 Port 443 流量時會自動在 Outbound 動態開啟對應連接埠
B. Security Group 是狀態式(Stateful)防火牆,底層連線追蹤機制會自動放行已建立連線的回應流量
C. 封包的回應路徑被自動重導向至 Network ACL 進行處理
D. 這是 AWS 平台的短暫 Bug,實際上必須在 Outbound 明確開啟 Ephemeral Ports (1024–65535)

  • AWS 解題思維:正確答案為 B。在 cxcxc-io 圖 3 的筆記中特別強調:Security Group 是 Stateful,連線一旦被 Inbound 允許,其雙向回應流量自動暢通;相反地,Network ACL (NACL) 是 Stateless(無狀態),若在 NACL 擋了 Outbound 臨時連接埠,回應封包將被直接丟棄。
  • 🔄 Azure 知識映射這正是資深 AWS 架構師轉戰 Azure 最常踩的肌肉記憶陷阱!
    在 AWS 中,只有掛在網卡(ENI)上的 SG 是狀態式,掛在子網路上的 NACL 是無狀態;但在 Azure 中,Network Security Group (NSG) 無論套用在 Subnet 還是 NIC,通通都是狀態式(Stateful)!
    因此,在 Azure Subnet NSG 中允許了 Inbound 443 後,千萬不要在 Outbound 畫蛇添足地手動開放大範圍的臨時連接埠,否則只會無謂鑿出允許木馬反向連線的安全漏洞。

📌 【AWS 經典考題 2】多層式架構中的角色參照與解耦(SAA-C03 高頻架構題)

AWS 考題情境
某三層式 Web 應用包含數十台 Web 伺服器與多台後端資料庫伺服器,所有 Web 伺服器隨 Auto Scaling Group 動態增減,IP 位址隨時變動。為達成最小權限隔離,架構師希望「資料庫僅接受來自 Web 伺服器的 Port 3306 連線」,且不希望每次 Web 伺服器擴縮時都手動修改資料庫防火牆規則。應如何設計?
A. 在資料庫的 Security Group Inbound 規則中,將 Source 指定為 Web 伺服器的 Security Group ID(SG Reference)
B. 必須將所有 Web 伺服器配置 Elastic IP (EIP),並將這些固定 IP 寫進資料庫規則
C. 在資料庫 Subnet 配置 NACL,將來源設為整個 VPC 的 CIDR 網段
D. 在 Web 與 Database 之間架設 NAT Gateway 進行 IP 偽裝

  • AWS 解題思維:正確答案為 A。AWS Security Group 支援相互參照(SG Reference):直接將來源設為 sg-xxxxxx。如此一來,任何掛載該 Web SG 的 EC2 實體都能自動獲得存取權,徹底擺脫維護動態 IP 的夢魘。
  • 🔄 Azure 知識映射這正是 Azure Application Security Group (ASG) 的核心價值!
    • AWS SG Reference ➔ Azure Application Security Group (ASG)
      在 Azure 中,NSG 本身不支援「以另一個 NSG 作為來源」,微軟特地設計了 ASG 作為角色標籤(如 ASG-WebASG-DB)。
      但必須牢記 Gemini 深度研究報告所提醒的原廠硬性邊界:加入同一個 ASG 的所有虛擬網卡(NIC),必須位於「同一個 Virtual Network」之內,無法跨 VNet 參照!
┌──────────────────────────────────────────────────────────┐
│ cxcxc-io 圖 3 概念對照:AWS SG Reference vs Azure ASG    │
├──────────────────────────────────────────────────────────┤
│ AWS 模式 (Security Group Reference 角色參照)             │
│ [Web EC2] ──(掛載 web-sg)──► [DB EC2] (掛載 db-sg)       │
│                              • Inbound: Allow web-sg:3306│
│                                                          │
│ Azure 模式 (Application Security Group 角色分組)         │
│ [Web VM] ──(加入 ASG-Web)──► [DB VM] (加入 ASG-DB)       │
│                              • NSG: Allow ASG-Web:1433   │
│                              • 鐵律:必須在同一個 VNet   │
└──────────────────────────────────────────────────────────┘

📐 Part 4:以戰代訓課程對照

項目 內容
對應課程章節 第 2 章 ▸ Public vs Private Endpoint、NSG、Azure DNS / Private DNS(p88–90)
官方考綱領域 Describe Azure Architecture & Services(占比 35–40%)
課程涵蓋範圍 Public 與 Private Endpoint、NSG、Azure DNS / Private DNS 的基本定位
本文補充範圍 Microsoft Learn 的 NSG 雙層過濾模型(Subnet vs NIC)、Priority 決策鏈與預設規則收口;Stateful 狀態式連線追蹤機制;Service Tag 與 ASG 工作負載分組實務(課程完全未涵蓋 ASG,本文完整補充);AWS SG/NACL 跨雲對照;Network Watcher 流量觀測與診斷

⚠️ 課程缺口說明:Application Security Group (ASG) 與 Network Watcher Flow Logs 在課程教材中完全未收錄,但皆為官方考試與實務架構極高頻的關鍵概念,本文已依微軟官方 Microsoft Learn 標準補齊。

🚀 今日總結與明日預告

🏆 今日 3 點速記

  1. NSG 雙層把關,數字越小越優先:Subnet NSG 先管大門,NIC NSG 再管房門;Priority 100–4096 低值優先,最後由 65500 DenyAll 隱式收口;天生具備狀態式連線追蹤(Stateful),回應封包自動放行。
  2. ASG 讓規則對準角色:透過 ASG-WebASG-API 取代逐台維護 IP 清單,杜絕組態漂移;記住鐵律:加入同一 ASG 的網卡必須位於「同一個 VNet」。
  3. 區隔 NSG 與 Firewall 邊界:NSG 負責單一 VNet 內部之子網路與網卡安全;若要跨多個 Subscription 與 VNet 進行集中式過濾與規則審查,必須派上 Azure Firewall。

🔮 明日預告:Day 13 Azure ExpressRoute & VPN Gateway

城牆與門禁規則確立後,Titan 科技邁向混合雲的終極戰役即將展開:如何將地端企業總部與資料中心,以高可用且合規的通道接入 Azure?
明天進入 Day 13:Azure ExpressRoute & VPN Gateway。我們將深度拆解公網加密通道(Site-to-Site VPN)與專屬私有光纖直連(ExpressRoute)在延遲、SLA、成本以及交付前置時間上的巨大鴻溝,敬請期待!


上一篇
使用gemini 準備 az-900 DAY 11 Virtual Network (VNet) & Subnet:Azure 網路疆域規劃指南
下一篇
使用gemini 準備AZ-900 Day13 Azure ExpressRoute & VPN GateWay
系列文
使用gemini 準備 az-90014
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言