保護內部部署服務帳戶
服務具有主要安全性身分識別,可決定本機和網路資源的存取權限。 Microsoft Win32 服務的安全性內容是由用來啟動服務的服務帳戶所決定。 您可以使用服務帳戶:
- 識別和驗證服務。
- 成功啟動服務。
- 存取或執行程式碼或應用程式。
- 啟動程序。
內部部署服務帳戶的類型
根據使用案例,您可以使用受控服務帳戶 (MSA)、電腦帳戶或使用者帳戶來執行服務。 您必須先測試服務,以確認它可以使用受控服務帳戶。 如果服務可以使用 MSA,則您應該使用它。
群組受管理的服務帳戶
針對在內部部署環境中執行的服務,請盡可能使用群組受控服務帳戶 (gMSA)。 gMSA 會針對在伺服器陣列上或在網路負載平衡器後方執行的服務提供單一身分識別解決方案。 gMSA 也可以用於在單一伺服器上執行的服務。 如需 gMSA 需求的相關資訊,請參閱開始使用群組受控服務帳戶。
獨立受管理的服務帳戶
如果您無法使用 gMSA,則請使用獨立受控服務帳戶 (sMSA)。 sMSA 至少需要 Windows Server 2008 R2。 與 gMSA 不同,sMSA 只會在一部伺服器上執行。 它們可以用於該伺服器上的多個服務。
電腦帳戶
如果您無法使用 MSA,則請考慮使用電腦帳戶。 LocalSystem 帳戶是預先定義的本機帳戶,具有本機電腦的大量權限,並作為網路上的電腦身分識別。
以 LocalSystem 帳戶執行的服務,會使用電腦帳戶的認證來存取網路資源,格式為 domain_name<>\computer_name<>。 其預先定義的名稱是 NT AUTHORITY\SYSTEM。 您可以用它來啟動服務,並提供該服務的安全性內容。
注意
當您使用電腦帳戶時,無法判斷電腦上使用該帳戶的服務。 因此,您無法稽核正在進行變更的服務。
使用者帳戶
如果您無法使用 MSA,則請考慮使用使用者帳戶。 使用者帳戶可以是「網域」使用者帳戶或「本機」使用者帳戶。
網域使用者帳戶可讓服務充分利用 Windows 和 Microsoft Active Directory Domain Services 的服務安全性功能。 服務將會具有授與帳戶的本機和網路權限。 它也會具有帳戶所隸屬群組的權限。 網域服務帳戶支援 Kerberos 相互驗證。
本機使用者帳戶 (名稱格式:.\UserName) 只存在於主機電腦的安全性帳戶管理員資料庫中。 它在 Active Directory Domain Services 中沒有使用者物件。 網域無法驗證本機帳戶。 因此,在本機使用者帳戶的安全性內容中執行的服務無法存取網路資源 (匿名使用者除外)。 在本機使用者內容中執行的服務,無法支援其用戶端用來驗證服務的 Kerberos 相互驗證。 基於這些原因,本機使用者帳戶通常不適用於已啟用目錄的服務。
重要
服務帳戶不應該是任何特殊權限群組的成員,因為特殊權限群組成員資格會授與可能有安全性風險的權限。 每個服務都應該有自己的服務帳戶,以進行稽核和安全性之用。
選擇正確的服務帳戶類型
準則 | gMSA | sMSA | 電腦帳戶 | 使用者帳戶 |
---|---|---|---|---|
應用程式在單一伺服器上執行 | Yes | 是。 可能的話,請使用 gMSA。 | 是。 可能的話,請使用 MSA。 | 是。 可能的話,請使用 MSA。 |
應用程式在多部伺服器上執行 | 是 | No | 否。 帳戶會繫結至伺服器。 | 是。 可能的話,請使用 MSA。 |
應用程式在負載平衡器後方執行 | 是 | 無 | No | 是。 只有在無法使用 gMSA 時才使用。 |
應用程式在 Windows Server 2008 R2 上執行 | No | Yes | 是。 可能的話,請使用 MSA。 | 是。 可能的話,請使用 MSA。 |
應用程式在 Windows Server 2012 上執行 | Yes | 是。 可能的話,請使用 gMSA。 | 是。 可能的話,請使用 MSA。 | 是。 可能的話,請使用 MSA。 |
將服務帳戶限制為單一伺服器的需求 | No | Yes | 是。 可能的話,請使用 sMSA。 | No |
使用伺服器記錄和 PowerShell 進行調查
您可以使用伺服器記錄來判斷應用程式執行所在的伺服器和伺服器數目。
若要取得網路上所有伺服器的 Windows Server 版本清單,您可以執行下列 PowerShell 命令:
Get-ADComputer -Filter 'operatingsystem -like "*server*" -and enabled -eq "true"' `
-Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
sort-Object -Property Operatingsystem |
Select-Object -Property Name,Operatingsystem,OperatingSystemVersion,IPv4Address |
Out-GridView
尋找內部部署服務帳戶
建議您將前置詞 (例如 ".svc-") 新增至您用作服務帳戶的所有帳戶。 此命名慣例可讓您更輕鬆地尋找和管理帳戶。 也請考慮針對服務帳戶和服務帳戶擁有者使用 description 屬性。 描述可以是小組別名或安全性小組擁有者。
尋找內部部署服務帳戶是確保其安全性的關鍵。 這對非 MSA 帳戶可能十分困難。 建議您檢閱所有可存取重要內部部署資源的帳戶,並判斷哪些電腦或使用者帳戶可能作為服務帳戶。
若要了解如何尋找服務帳戶,請參閱「後續步驟」一節中有關該帳戶類型的文章。
記載服務帳戶
當您在內部部署環境中找到服務帳戶之後,請記載下列資訊:
擁有者:負責管理帳戶的人員。
目的:帳戶所代表的應用程式,或其他用途。
權限範圍:它其擁有或應該擁有的權限,以及所隸屬的任何群組。
風險設定檔:如果此帳戶遭到盜用,則為您企業的風險。 如果風險很高,則請使用 MSA。
預期的存留期和定期證明:您預期此帳戶存留的時間長度,以及擁有者應該檢閱並證明其持續需求的頻率。
密碼安全性:用於儲存密碼的使用者和本機電腦帳戶。 請確定保持密碼的安全,並記載具有存取權的人員。 請考慮使用 Windows LAPS 來保護本機電腦帳戶上的帳戶。
下一步
若要深入了解如何保護服務帳戶,請參閱下列文章:
- 保護群組受管理的服務帳戶
- 保護獨立受管理的服務帳戶
- 保護電腦帳戶 (部分機器翻譯)
- 保護使用者帳戶
- 管理內部部署服務帳戶