使用 Just-Enough-Administration (JEA) 實現 PowerShell 安全遠端處理

最後更新: 17/12/2025
作者: 艾薩克
  • JEA 遵循最小特權原則 PowerShell的 遠端處理、減少具有提升權限的帳戶數量以及限制每個角色可用的 cmdlet。
  • .psrc 和 .pssc 檔案的組合可讓您定義角色功能、受限端點、虛擬帳戶和詳細的稽核記錄,以便進行完整的稽核。
  • 與 GPO、AppLocker 或通用端點等方法相比,JEA 提供了更精細的控制和強大的 RBAC 模型,可以在不暴露特權憑證的情況下委派任務。
  • 正確實施需要精心設計角色、測試和持續維護,但它可以在不犧牲生產力的情況下顯著提高安全性。

Powershell 指令寫入檔案內部

在任何環境中,使用 PowerShell 遠端處理幾乎都變得不可或缺。 Windows 雖然技術現代化了,但授予遠端存取權限卻不加控制,就好比把資料中心的鑰匙放在桌上一樣。這就是遊戲的精髓。 適度行政管理(JEA)一層安全機制,允許您委派任務,而不會隨意授予管理員權限。

使用 JEA,您可以設定非常有限的遠端存取點,僅允許特定使用者運行。 命令 您已授權,但使用的是權限較高的帳戶。 在不了解真實身份資訊或無法偏離劇本的情況下所有這些都被記錄在案,並形成了文字記錄。 日誌 詳細說明後,您可以審核誰在何時何地做了什麼。

什麼是適度管理(JEA)?它為什麼重要?

Just-Enough-Administration 是一種基於 PowerShell 的安全技術 它採用委託管理模型,並儘可能減少必要的權限。實際上,JEA 允許您公開遠端端點,但只有您定義的一組封閉的 cmdlet、函數、腳本和外部命令才能存取這些端點。

得益於這種方法,您可以 大幅減少擁有高級權限的帳戶數量 在伺服器上,您可以使用虛擬帳戶或群組管理服務帳戶 (gMSA) 代表標準使用者執行特權操作。使用者使用其常規憑證登錄,並透過 JEA 會話啟動在背景以更高權限執行的命令。

JEA的另一個關鍵支柱是其能力 精確定義每個角色可以做什麼角色權限檔案定義了哪些 cmdlet、自訂函數、外部命令或 PowerShell 提供者對使用者可見。其餘內容對使用者而言並不存在:他們無法編寫腳本、自由瀏覽檔案系統,也無法存取您未指定的任何服務或進程。

此外,所有 JEA 會話都可以配置為生成 完整記錄和審計事件擷取命令、參數、輸出、錯誤、使用者身分和執行時間不僅有助於滿足監管要求,而且在調查安全事件或操作故障時也具有不可估量的價值。

特權帳戶的風險以及JEA如何降低這些風險

具有提升權限的本機、網域或應用程式管理員帳戶意味著 任何組織中最嚴重的風險因素之一如果攻擊者獲得這些憑證之一,他們就可以在網路中橫向移動,提升權限,並存取關鍵資料、關鍵服務,甚至癱瘓整個系統。

撤銷權限並非總是易事。一個典型的例子是… 同時託管 DNS 和 Active Directory 網域控制站的伺服器DNS 團隊需要本機管理員權限才能排查 DNS 服務問題,但將他們新增至網域管理員群組實際上賦予了他們整個林的控制權以及對該電腦上任何資源的存取權。這是一個為了操作便利而犧牲安全性的典型例子。

JEA透過嚴格應用以下原則解決了這個困境: 最小特權原則與其讓 DNS 管理員兼任網域管理員,不如建立一個專用的 DNS JEA 端點,該端點僅公開清除快取、重新啟動服務、查看日誌或類似任務所需的 cmdlet。這樣,操作員無需檢查 Active Directory、瀏覽檔案系統、執行隨機腳本或執行潛在危險的實用程式即可完成工作。

  Outlook Express:在 Windows 10 中下載使用

配置 JEA 會話以使用 具有臨時權限的虛擬帳戶這項措施更有意思:使用者使用非特權憑證連接,並能從該會話中執行通常需要管理員權限的任務。這使得許多使用者可以從本地或網域管理員群組中移除,既能維持運營,又能顯著加強攻擊面。

JEA 的安全理念

JEA並非憑空出現: 它基於幾個成熟的安全原則和模型。 這賦予了它連貫性和穩健性。首先是前面提到的最小權限原則,該原則規定使用者和進程都應該只擁有實現其功能所必需的權限。

第二大支柱是以下模式: 基於角色的存取控制(RBAC)JEA 透過角色功能檔案實現基於角色的存取控制 (RBAC),您可以在其中定義特定角色在遠端會話中可以執行的操作。例如,服務台角色可以列出服務、檢視事件和重新啟動特定服務,而 SQL Server 管理角色只能執行與 SQL Server 相關的 cmdlet… 數據庫 還有一點。

La JEA 的技術基礎是 PowerShell 及其遠端處理基礎架構PowerShell 提供語言、cmdlet 和遠端通訊層(WinRM/WS-Management),而 JEA 則在此基礎上增加了一個受限端點、虛擬帳戶和對可用命令的精細控制系統。

另一個重要的概念是 受限管理, 類似於 Windows 11 資訊亭模式下的指派存取權限JEA 不會給操作員完整的 shell 權限,而是建立一個會話,其中腳本語言受到限制(預設為 NoLanguage),建立新函數或變數被阻止,循環和條件語句被停用,並且只允許執行已批准的 cmdlet。這極大地限制了即使攻擊者設法獲得該會話的存取權限,其能力也受到嚴重限制。

關鍵組件:.psrc 和 .pssc 文件

任何 JEA 部署的核心都是兩種類型的檔案: 角色功能檔(.psrc)和會話設定檔(.pssc)它們共同將通用 shell 轉變為為特定使用者量身定制的終端。

在角色能力檔案中,您定義 該角色具體可以使用哪些指令其中最重要的因素包括:

  • 可見指令:允許的 cmdlet 列表,甚至可以限制參數。
  • 可見函數:在會話中載入的自訂函數。
  • 可見的外部命令:被存取的特定外部可執行檔。
  • 可見提供者會話中可見的 PowerShell 提供者(例如,FileSystem 或 Registry)。

另一方面,.pssc 會話設定檔 他們如此描述 JEA 端點,並將其與角色聯繫起來。此處聲明如下元素:

  • 角色定義:將使用者或安全群組對應到角色功能。
  • 會話類型其中,'RestrictedRemoteServer' 通常設定為加強會話安全性。
  • 成績單目錄:儲存每次會議記錄的資料夾。
  • 以虛擬帳戶運行 以及相關選項,例如是否將虛擬帳戶新增至特定群組。

JEA以以下形式體現: 系統中已註冊的 PowerShell 遠端處理終端點這些端點是透過諸如以下 cmdlet 創建和啟用的: 新建 PSSession 設定文件, 註冊-PSSession配置 或使用 JEA Helper Tool 等圖形工具,這樣就可以輕鬆產生 .pssc 和 .psrc 文件,而無需過度處理語法問題。

JEA 會議生命週期

在建立完整的 JEA 環境時,流程通常遵循一系列邏輯步驟: 他們將開放的遠端系統轉變為嚴格管控的系統。典型順序如下:

首先,你創建一個 安全群組或多個安全群組 這些群組代表您想要委派的角色(例如,服務台 DNS 管理員、Web 操作員、SQL 操作員)。使用組並非強制性的,但隨著環境規模的擴大,它可以大大簡化管理。

然後,準備一個或多個。 角色能力檔 .psrc 這裡列出了允許的操作:cmdlet、函數、腳本、外部命令、別名、提供者以及其他限制(特定參數、允許的路徑等)。例如,您可以允許所有以 Get- 開頭的 cmdlet,將 Restart-Service 限制為 Spooler 服務,並僅授權 FileSystem 提供者。

  YouTube 的新騙局:詐騙連結向內容創作者分發惡意軟體

產生以下內容。 會話設定檔 .pssc 使用 New-PSSessionConfigurationFile。它定義了諸如 SessionType = RestrictedRemoteServer、TranscriptDirectory 路徑、是否使用虛擬帳戶以及將群組連結到角色功能的 RoleDefinitions 區塊等選項,例如,'DOMAIN\HelpdeskDNS' = @{ RoleCapabilities = 'HelpdeskDNSRole' }。

.pssc 檔案準備就緒後,即可使用下列指令註冊端點 Register‑PSSessionConfiguration -Name JEASession Name -Path Path\File.pssc從那一刻起,如果使用 Get-PSSessionConfiguration 列出可用配置,則新的連接點將顯示為已準備好接收連線。

使用者透過他們的電腦連接到此端點 輸入-PSSession -ComputerName Server -ConfigurationName JEASession Name 或使用 New-PSSession 指令,然後使用 Invoke-Command 指令。進入會話後,會話會自動套用使用者關聯角色權限中定義的限制。

會議期間, PowerShell 遠端處理使用具有加密通道的 WinRM整合式驗證(通常是網域中的 Kerberos)以及為該服務定義的防火牆規則。在此基礎上,如果啟用了 RunAsVirtualAccount,則會建立一個臨時虛擬帳戶,將其新增至必要的群組,並在會話結束時銷毀該帳戶。

最後,在結束JEA會議時, 審計記錄和事件均已保存。 這些日誌清晰地記錄了已執行的命令、結果和使用者上下文。隨後,它們可以發送到安全資訊和事件管理 (SIEM) 系統或在 SIEM 系統中進行關聯,以便發出警報並進行進一步分析。

PowerShell 遠端處理、存取控制和加固

PowerShell 遠端處理,由該服務提供支援 Windows遠端管理(WinRM) WS-Management協定允許在遠端電腦上集中執行命令和腳本。它是自動化、批次伺服器管理、調試和遠端支援的強大工具。

默認, 本機管理員和遠端管理使用者群組成員 他們可以使用標準的 PowerShell 端點。在許多環境中,此功能已被用於允許非管理員使用者執行遠端任務,這本身並不危險,但如果控制不當,則會為濫用行為開啟重大途徑。

為了加強安全態勢,常見的策略包括 限制遠端 PowerShell 存取權限,僅限管理員帳號。 或者,更好的方法是,將此限制與 JEA 端點結合使用,僅向特定使用者授予絕對必要的存取權限。這可以透過以下方式實現:

  • 定義哪些群組可以使用 WinRM 以及預設端點的 GPO。
  • 防火牆規則僅允許從子網路或管理電腦存取 WinRM。
  • 從標準端點的 ACL 中刪除遠端管理使用者群組。

此外,您還可以選擇 完全禁止非管理員使用者使用 PowerShell 使用 AppLocker 等解決方案。這樣,既可以防止普通使用者在本機上執行惡意腳本,又能允許特權帳戶使用 PowerShell 執行管理和自動化任務。

JEA 與其他 PowerShell 限制方法的比較

有多種方法可以限制使用者使用 PowerShell 遠端處理執行的操作,並且 JEA 是一種更薄、更靈活的選擇。 其中包括以下更廣泛的方法:

一方面,使用 使用群組原則物件 (GPO) 控制誰可以存取預設的 PowerShell 端點可以將 Microsoft PowerShell 的存取權限限制為僅限管理員,甚至可以取消所有人的註冊,強制使用特定的端點。這對於以「暴力」方式限制存取非常有用,但無法解決粒度問題:任何獲得存取權限的人幾乎都可以執行任何操作。

另一方面,也有一些應用程式控制工具,例如: AppLocker 或軟體限制策略這些方法可讓您透過路徑、發布者或雜湊值來阻止標準使用者執行 PowerShell.exe 或 pwsh.exe。這種方法對於加強工作站並阻止任何使用者啟動 PowerShell 非常有用,但當您希望使用者使用其使用者帳戶執行有限的管理任務時,這種方法有其限制。

另一種選擇是 受限端點未達完全 JEA您可以建立自訂會話配置來限制 cmdlet、函數和模組,而無需像 JEA 那樣過度依賴角色模型、虛擬帳戶或結構化的 RBAC。這是一種折衷方案,適用於簡單的場景,但在大型環境中可擴展性較差。

  在 Hyper-V 中建立和使用檢查點的完整指南:類型、管理和最佳實踐

JEA融合了多個領域的優勢: 嚴格的命令限制、基於角色的存取控制 (RBAC)、受控的提升權限執行以及全面的日誌記錄因此,當您需要為非管理員啟用 PowerShell 遠端處理,但又不想向他們提供完整的管理環境時,這是建議的解決方案。

進階功能:以其他帳戶執行並記錄日誌

JEA最強大的功能之一是 使用另一個權限較高的帳戶執行命令,而無需暴露您的憑證這樣就解決了「我會把這個服務的密碼給你,這樣你就可以做X」這種典型的問題,而這個密碼之後卻從未更改,最終造成了巨大的風險。

領域場景是常用的。 集團託管服務帳戶 (gMSA) 這使得 JEA 端點能夠以集中管理的服務身分執行操作,並自動輪換密碼,且任何操作員都無需知悉金鑰。在其他情況下,則使用本機臨時虛擬帳戶,這些帳戶在使用者連線時會暫時創建,並在會話結束時銷毀。

從審計角度來看,每個 JEA 會話都可以配置為: 產生 PowerShell 腳本和豐富的事件日誌條目通常收集的資訊包括:

  • 完整的命令和參數輸入歷史記錄。
  • 產生的輸出和錯誤訊息。
  • 會話開始和結束的時間戳記以及會話持續時間。
  • 登入使用者的身份及其指派的角色/權限。

如果將這些痕跡與以下功能結合: PowerShell 模組日誌記錄和 腳本 透過群組原則物件 (GPO) 阻止日誌記錄透過將日誌傳送到 SIEM 系統,您可以全面了解管理端點上發生的情況。這對於合規性(例如 SOX 審計、ISO 27001 等)以及事件偵測和回應都至關重要。

JEA 在實際環境中的典型應用案例

JEA 在您需要的時候尤其表現出色 將非常具體的任務委派給不該擔任管理員的團隊實務上一些非常常見的例子包括:

在技​​術支援領域,您可以為頂級技術人員提供服務。 透過 JEA 存取服務重新啟動、查看事件日誌和檢查進程狀態 在伺服器上,但沒有安裝軟體、修改關鍵配置或存取 Active Directory 的權限。典型的服務台角色可能包括使用 Get-Service、Restart-Service(針對特定服務)、Get-EventLog(唯讀模式)以及一些網路診斷 cmdlet。

在維運或開發團隊中,您可以進行配置 專注於特定任務的職位,例如 IIS 管理或網站維護。例如,允許存取應用程式集區管理 cmdlet、網站重新啟動、從受限目錄查詢日誌以及特定服務的憑證管理,同時排除重新啟動整個伺服器或修改安全性原則的任何權限。

在混合雲和雲環境中,JEA 經常用於 限制每個團隊可以做的事情 虛擬機, 存儲 或網路您可以公開端點,以便僅管理部門的虛擬機器、修改特定網段的防火牆規則或管理一組特定的服務帳戶,從而將存取權限與基礎架構的其餘部分隔離。

同時,JEA 與 特權存取管理 (PAM) 策略其中,特權會話是臨時授予的,會被記錄,並歸屬於個人身份,從而避免共享帳戶,並將與每個特權操作相關的風險降至最低。

在 Windows 5 中限制對共用資料夾的權限和存取
相關文章:
如何逐步限制對 Windows 中共用資料夾的訪問