解決方案構想
本文說明解決方案概念。 您的雲端架構師可以使用本指南,協助視覺化此架構的一般實作的主要元件。 以本文為起點,設計符合您工作負載具體要求的完善解決方案。
此解決方案提供多層式策略來保護 Azure 中的虛擬機(VM),確保輔助功能,同時將受攻擊面降到最低,以供管理和系統管理之用。
此解決方案與Microsoft的安全性建議一致,併入Microsoft Azure 和 Entra 服務所提供的數個保護機制,並遵循設計安全、預設安全及安全作業的原則。
依設計保護。 此解決方案藉由實作最低許可權原則和職責區隔概念,來達成對虛擬機的非持續性細微存取。 這可確保只有基於合法理由才授與虛擬機的授權,降低未經授權的存取風險。
根據預設,安全。 虛擬機的輸入流量已鎖定,僅在需要時才允許連線。 此預設安全性狀態可將許多熱門網路攻擊的風險降到最低,例如暴力密碼破解和分散式阻斷服務 (DDoS) 攻擊。
保護作業。 請務必實作持續監視並投資改善安全性控制,以符合目前和未來的威脅。 使用各種 Azure 服務和功能,例如Microsoft Entra Privileged Identity Management (PIM)、適用於雲端的 Microsoft Defender、Azure Bastion、Azure 角色型訪問控制 (Azure RBAC) 自定義角色的 Just-In-Time (JIT) VM 存取功能。 您可以選擇性地考慮Microsoft Entra 條件式存取,以規範存取 Azure 資源和 Azure 金鑰保存庫,以在未與 Entra ID 或 Active Direcory Domain Services 整合的情況下儲存虛擬機本機密碼。
潛在使用案例
深度 防禦是此架構背後的前提。 此策略會在將 VM 的存取權授與使用者之前,先向使用者提出數道防禦線的挑戰。 目標是確保:
- 每個用戶都會經過驗證。
- 每個使用者都有合法的意圖。
- 通訊是安全的。
- 只有在需要時,才能存取 Azure 中的 VM。
本文中的深度防禦策略和解決方案適用於許多案例:
在下列情況下,系統管理員必須存取 Azure VM:
- 系統管理員必須針對問題進行疑難解答、調查行為,或套用重大更新。
- 系統管理員會使用遠端桌面通訊協定 (RDP) 來存取 Windows VM 或安全殼層 (SSH) 來存取 Linux VM。
- 存取權應包含執行工作所需的最小許可權數目。
- 存取應該只有有限的時間才有效。
- 存取到期之後,系統應該鎖定 VM 存取,以防止惡意存取嘗試。
員工需要存取裝載在 Azure 中作為 VM 的遠端工作站。 適用於下列條件:
- 員工應該只在工作時間存取 VM。
- 安全性系統應該考慮要求存取非必要和惡意工作時間外的 VM。
使用者想要連線到 Azure VM 工作負載。 系統應該核准僅來自受管理且符合規範裝置的連線。
系統經歷了大量暴力密碼破解攻擊:
- 這些攻擊是以 RDP 和 SSH 埠 3389 和 22 上的 Azure VM 為目標。
- 這些攻擊已嘗試猜測認證。
- 解決方案應防止 3389 和 22 等存取埠公開至因特網或內部部署環境。
架構
下載此架構的 Visio 檔案。
資料流程
驗證和存取決策:用戶會針對 Microsoft Entra 標識符進行驗證,以存取 Azure 入口網站、Azure REST API、Azure PowerShell 或 Azure CLI。 如果驗證成功,Microsoft Entra 條件式存取原則就會生效。 該原則會驗證使用者是否符合特定準則。 範例包括使用受控裝置或從已知位置登入。 如果使用者符合準則,條件式存取會透過 Azure 入口網站 或其他介面授與使用者對 Azure 的存取權。
身分識別型 Just-In-Time 存取:在授權期間,Microsoft Entra PIM 將符合資格類型的自定義角色指派給使用者。 資格僅限於必要的資源,而且是 時間限制 角色,而不是 永久 角色。 在指定的時間範圍內,用戶會透過 Azure PIM 介面要求啟用此角色。 該要求可以觸發其他動作,例如啟動核准工作流程,或提示用戶進行多重要素驗證來驗證身分識別。 在核准工作流程中,另一個人需要核准要求。 否則,使用者未獲指派自定義角色,且無法繼續下一個步驟。
以網路為基礎的 Just-In-Time 存取:驗證和授權之後,自定義角色會暫時連結到使用者的身分識別。 然後,使用者會要求 JIT VM 存取權。 該存取會針對 RDP 開啟埠 3389 上的 Azure Bastion 子網連線,或針對 SSH 開啟埠 22 的連線。 聯機會直接執行至 VM 網路適配器 (NIC) 或 VM NIC 子網。 Azure Bastion 會使用該連線開啟內部 RDP 會話。 會話僅限於 Azure 虛擬網路,且不會公開至公用因特網。
連線到 Azure VM:使用者會使用暫存令牌存取 Azure Bastion。 透過此服務,使用者會建立與 Azure VM 的間接 RDP 連線。 線上僅適用於有限的時間。 如果使用者從 Azure 金鑰保存庫 擷擷取密碼,如果密碼儲存為 金鑰保存庫 中的秘密,且已設定足夠的 RBAC 許可權來限制適當用戶帳戶的存取權。
元件
此解決方案使用以下組件:
Azure 虛擬機器 是基礎結構即服務 (IaaS) 供應專案。 您可以使用虛擬機器來部署隨選、可縮放的計算資源。 在使用此解決方案的生產環境中,將工作負載部署在 Azure VM 上。 然後,排除對 VM 和 Azure 資產不必要的暴露。
Microsoft Entra ID 是雲端式身分識別服務,可控制 Azure 和其他雲端應用程式的存取。
PIM 是一種Microsoft Entra 服務,可管理、控制及監視重要資源的存取。 在此解決方案中,此服務:
- 限制永久系統管理員對標準和自定義特殊許可權角色的存取。
- 提供自定義角色的 Just-In-Time 身分識別型存取。
JIT VM 存取是一項 適用於雲端的 Defender 功能,可提供 VM 的 Just-In-Time 網路型存取。 這項功能會將拒絕規則新增至 Azure 網路安全組,以保護 VM 網路介面或包含 VM 網路介面的子網。 該規則會藉由封鎖對 VM 不必要的通訊,將 VM 的攻擊面降到最低。 當使用者要求存取 VM 時,服務會將暫時允許規則新增至網路安全組。 因為允許規則的優先順序高於拒絕規則,因此使用者可以連線到 VM。 Azure Bastion 最適合用來連線到 VM。 但使用者也可以使用直接 RDP 或 SSH 工作階段。
Azure RBAC 是一種授權系統,可提供更細緻的 Azure 資源存取管理。
Azure RBAC 自定義角色提供擴充 Azure RBAC 內建角色 的方式。 您可以使用它們,在符合組織需求的層級指派許可權。 這些角色支援PoLP。 他們只會授與使用者針對使用者用途所需的許可權。 若要存取此解決方案中的 VM,使用者會取得下列許可權:
- 使用 Azure Bastion。
- 在 適用於雲端的 Defender 中要求 JIT VM 存取。
- 讀取或列出 VM。
Microsoft Entra 條件式存取 是一種工具,Microsoft Entra ID 用來控制資源的存取。 條件式存取原則支援 零信任 安全性模型。 在此解決方案中,原則可確保只有已驗證的用戶能夠存取 Azure 資源。
Azure Bastion 可為網路中 VM 提供安全且順暢的 RDP 和 SSH 連線。 在此解決方案中,Azure Bastion 會連線使用 Microsoft Edge 或其他因特網瀏覽器進行 HTTPS 的使用者,或在埠 443 上保護流量。 Azure Bastion 會設定與 VM 的 RDP 連線。 RDP 和 SSH 埠不會向因特網或使用者的來源公開。
Azure Bastion 在此解決方案中是選擇性的。 用戶可以使用 RDP 通訊協定直接連線到 Azure VM。 如果您在 Azure 虛擬網路中設定 Azure Bastion,請設定名為
AzureBastionSubnet
的個別子網。 然後將網路安全組與該子網建立關聯。 在該群組中,指定 HTTPS 流量的來源,例如使用者的內部部署 IP 無類別網路變數間路由 (CIDR) 區塊。 藉由使用此組態,您可以封鎖不是來自用戶內部部署環境的連線。Azure 金鑰保存庫 提供安全機制,將 VM 使用者的密碼儲存為秘密。 您可以設定秘密 RBAC,因此只有存取 VM 的用戶帳戶具有擷取它的許可權。 從密鑰保存庫擷取密碼值可以透過 Azure API(例如使用 Azure CLI)或從 Azure 入口網站 完成,因為 Azure 金鑰保存庫 與 Azure 入口網站 虛擬機刀鋒視窗上的 Azure Bastion 使用者介面整合。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- 侯薩姆·希拉爾 |資深雲端解決方案架構師
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
- 在 Privileged Identity Management 中啟用我的 Azure 資源角色
- 了解 Just-In-Time VM (JIT) 存取
- 設定 Bastion 並透過瀏覽器連線到 Windows VM
- 使用 Microsoft Entra 多重要素驗證保護使用者登入事件