Windows
將 Windows 權限委派給不同的管理員組
我們有一些 Windows 伺服器。他們正在執行各種服務,DNS、SQL Server、IIS、Oracle 等。
我們想設置幾個 AD 組,比如 DBA、WebAdmin 和 SAPAdmin。
然後,我們希望委派這些組在這些 Windows Server 上擁有足夠的權限。這裡有些例子
- DBA 只能在 Oracle 數據庫相關服務和 SQL Server 相關服務上啟動/停止服務,而不能在其他服務上啟動/停止服務
- DBA 可以啟動 Oracle/SQL Server 相關軟體,但不能啟動其他軟體
- DBA 可以安裝/解除安裝 Oracle/SQL Server 相關更新檔,但不能安裝其他更新檔
- DBA 可以訪問數據庫文件或相關系統資料庫,但不能訪問同一伺服器(例如 Web 伺服器)上的其他人
WebAdmin 和 SAPAdmin 的類似要求。目前,我們允許所有這些使用者登錄伺服器並完成他們的工作,但不幸的是,我們無法找到完全鎖定所有權限的方法。我可以為服務、系統資料庫和文件設置 ACL 以滿足我的部分要求。
我現在有兩個問題。
- 我仍然想不出一種方法來阻止使用者執行不相關的軟體或安裝不相關的軟體/更新檔。
- 我仍然無法找到阻止特定管理單元執行的方法。我可以通過設置 ACL 來阻止執行 exe 文件,但我不能通過在其 DLL 上設置 ACL 來阻止特定的管理單元
如果沒有辦法直接解決上述問題,我很樂意採取任何解決方法。底線是授予每個組最小的權限,並避免不同組的人在共享伺服器上搞砸其他人的軟體。
不幸的是,你會被 Windows 伺服器卡住——在許多情況下,作業系統的設計根本不會讓你做你需要做的事情來實現“最小特權”。雖然您當然可以配置軟體限制策略以防止未經授權的應用程序執行並設置組策略以允許使用者啟動/停止某些服務,但您在日常管理工作中會遇到很多問題:
- 大多數更新檔的安裝可能需要“管理員”權限,並且即使使用者對程序目錄具有“完全控制”訪問權限,也不會以“正常”使用者權限解決
- 由於 Windows Server 中非常簡單的資源管理功能(您不能限制分配給使用者程序的記憶體量或 CPU 時間),DBA 仍然能夠在伺服器上執行會嚴重損害其他正在執行的程序的操作
- 如果您讓您的 DBA 使用者成為本地管理員,那麼無論您執行什麼操作來“鎖定他們”,他們都將能夠規避任何限制並通過設計突破任何監獄
正如 bot403 已經指出的那樣,管理分離最好通過設置一個專用伺服器來完成,該伺服器干擾無關服務的可能性最小。虛擬化應該可以幫助您解決這個問題,儘管會以記憶體和處理成本為代價。您可以通過不完全虛擬化主機來最小化成本,但使用容器可以讓您進行足夠級別的資源管理和管理分離。查看Parallels Virtuozzo以了解其外觀範例。