解決方案構想
本文說明解決方案概念。 您的雲端架構師可以使用本指南,協助視覺化此架構的一般實作的主要元件。 以本文為起點,設計符合您工作負載具體要求的完善解決方案。
此解決方案提供多層次的策略來保護 Azure 中的虛擬機器 (VM),在確保可存取性的同時,盡量降低管理和行政目的的攻擊面。
此解決方案與 Microsoft 的安全建議一致,整合了 Microsoft Azure 和 Entra 服務所提供的多種保護機制,並遵守安全設計、安全預設和安全作業的原則。
透過設計確保安全。 該解決方案透過實施最少特權原則和職責分離概念,實現對虛擬機器的非持久性粒度存取。 這可確保對虛擬機器的授權僅因合法理由而授予,從而降低未經授權存取的風險。
預設保護。 鎖定虛擬機器的傳入流量,僅在需要時才允許連線。 這種預設的安全狀態可將許多流行的網路攻擊 (例如暴力密碼破解和分散式拒絕服務 (DDoS) 攻擊) 的風險降到最低。
安全作業。 實施持續監控並投資於改善安全控制以因應目前及未來的威脅是非常重要的。 使用各種 Azure 服務和功能,例如 Microsoft Entra Privileged Identity Management (PIM)、適用於雲端的 Microsoft Defender 的即時 (JIT) VM 存取功能、Azure Bastion、Azure 角色型存取控制 (Azure RBAC) 自訂角色。 如果未與 Entra ID 或 Active Direcory 網域服務整合,則應考慮使用 Microsoft Entra Conditional Access 來管理 Azure 資源存取,以及 Azure Key Vault 來儲存虛擬機器本機密碼。
潛在使用案例
深度防禦是此架構的部署。 此策略在授予使用者存取 VM 的權限前,先以數道防線挑戰使用者。 該目標是確保:
- 每個使用者都會經過驗證。
- 每個使用者都有合法的意圖。
- 通訊安全。
- 只有在需要時,才會提供 Azure 中 VM 的存取權。
深度防禦策略和本文中的解決方案適用於許多情況:
在這些情況下,管理員需要存取 Azure VM:
- 該系統管理員需要疑難排解、調查行為或套用重要更新。
- 該系統管理員使用遠端桌面通訊協定 (RDP) 存取 Windows VM,或使用安全殼層 (SSH) 存取 Linux VM。
- 該存取權應包含執行任務所需的最少權限。
- 該存取權的有效期應該只有有限的時間。
- 該存取權到期後,系統應鎖定 VM 存取權,以防止惡意存取嘗試。
員工需要存取以 VM 形式託管在 Azure 中的遠端工作站。 適用於下列條件:
- 員工只能在上班時間存取 VM。
- 該安全系統應將工作時間以外存取 VM 的要求視為不必要且惡意的。
使用者希望連線到 Azure VM 工作負載。 該系統應核准僅來自受控且符合規定的裝置的連線。
該系統遭受大量暴力密碼破解攻擊:
- 這些攻擊的目標是 RDP 和 SSH 連接埠 3389 和 22 上的 Azure VM。
- 這些攻擊試圖猜測認證。
- 該解決方案應防止 3389 和 22 等存取連接埠暴露於網際網路或內部部署環境。
架構
下載此架構的 Visio 檔案。
資料流程
驗證和存取決定:使用者依據 Microsoft Entra ID 進行驗證,以存取 Azure 入口網站、Azure REST API、Azure PowerShell 或 Azure CLI。 如果驗證成功,Microsoft Entra 條件式存取原則就會生效。 該原則會驗證使用者是否符合特定條件。 例如,使用受控裝置或從已知位置登入。 如果該使用者符合條件,條件式存取會透過 Azure 入口網站或其他介面授予使用者 Azure 存取權。
識別型即時存取權:在授權期間,Microsoft Entra PIM 會指派使用者符合資格類型的自訂角色。 該資格僅限於所需資源,且是有時限的角色,而非永久性角色。 在指定時間內,使用者透過 Azure PIM 介面要求啟用此角色。 該要求可以觸發其他動作,例如啟動核准工作流程或提示使用者進行多重要素驗證以驗證身份。 在批准工作流程中,需要另一個人核准該要求。 否則不會將自訂角色指派給使用者,也無法繼續下一步。
網路型即時存取:在驗證和授權之後,自訂角色會暫時連結到使用者的身分。 然後,該使用者要求 JIT VM 存取。 該存取權會從 Azure Bastion 子網路開啟連接,RDP 連接埠為 3389,SSH 連接埠為 22。 該連接會直接執行到 VM 的網路介面卡 (NIC) 或 VM NIC 子網路。 Azure Bastion 使用該連接開啟內部 RDP 工作階段。 該工作階段僅限於 Azure 虛擬網路,不會暴露於公用網際網路。
連接至 Azure VM:該使用者使用臨時權杖存取 Azure Bastion。 透過此服務,使用者可建立與 Azure VM 間接的 RDP 連接。 此連接只在有限的時間內有效。 如果該密碼在 Key Vault 中儲存為機密,且已設定足夠的 RBAC 權限以限制對適當使用者帳戶的存取,則使用者可以從 Azure Key Vault 中擷取密碼。
元件
此解決方案會使用下列元件:
Azure 虛擬機器是基礎結構即服務 (IaaS) 的產品。 您可以使用虛擬機器來部署隨選、可擴展的計算資源。 在使用此解決方案的生產環境中,將工作負載部署在 Azure VM 上。 然後消除您的 VM 和 Azure 資產的不必要暴露。
Microsoft Entra ID 是雲端型識別服務,可控制 Azure 及其他雲端應用程式的存取權。
PIM 是 Microsoft Entra 服務,可管理、控制及監控重要資源的存取權。 在此解決方案中,此服務:
- 限制永久系統管理員對標準和自訂特殊權限角色的存取權。
- 提供自訂角色的即時識別型存取權。
JIT VM 存取是適用於雲端的 Defender 的一項功能,提供對 VM 的即時網路型存取權。 此功能會在 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 Key Vault 提供了一種安全機制,可將 VM 使用者的密碼儲存為機密。 可以設定機密 RBAC,以便只有存取 VM 的使用者帳戶才有權限擷取該機密。 從金鑰保存庫擷取密碼值可透過 Azure API (例如使用 Azure CLI) 或從 Azure 入口網站進行,因為 Azure Key Vault 與 Azure 入口網站中虛擬機器刀鋒的 Azure Bastion 使用者介面整合。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主要作者:
- Husam Hilal | 資深雲端解決方案架構師
若要查看非公開的 LinkedIn 設定檔,請登入 LinkedIn。
下一步
- 在 Privileged Identity Management 中啟動 Azure 資源角色
- 了解 Just-In-Time VM (JIT) 存取
- 設定 Bastion 並透過瀏覽器連線至 Windows VM
- 使用 Microsoft Entra 多重要素驗證,確保使用者登入事件的安全性