将 Windows 权限委托给不同的管理员组

将 Windows 权限委托给不同的管理员组

我们有一些 Windows 服务器。它们运行各种服务,DNS、SQL Server、IIS、Oracle 等。

我们想要设置一些 AD 组,比如 DBA、WebAdmin 和 SAPAdmin。

然后,我们希望委派这些组在这些 Windows Server 上拥有足够的权限。以下是一些示例

  1. DBA 只能启动/停止 Oracle 数据库相关服务和 SQL Server 相关服务,不能启动/停止其他服务
  2. DBA 可以启动 Oracle/SQL Server 相关软件,但不能启动其他软件
  3. DBA 可以安装/卸载 Oracle/SQL Server 相关补丁,但不能安装/卸载其他补丁
  4. DBA 可以接触数据库文件或相关注册表,但不能接触同一台服务器(例如 Web 服务器)上的其他文件或注册表

WebAdmin 和 SAPAdmin 的要求类似。目前,我们允许所有这些用户登录服务器并执行他们的工作,但不幸的是,我们无法找到完全锁定所有权限的方法。我可以为服务、注册表和文件设置 ACL 以满足我的部分要求。

我现在有两个问题。

  1. 我仍然无法找到一种方法来阻止用户执行不相关的软件或安装不相关的软件/补丁。

  2. 我仍然无法找到阻止特定 snapin 执行的方法。我可以通过设置其 ACL 来阻止 exe 文件的执行,但我无法通过在其 DLL 上设置 ACL 来阻止特定 snapin

如果没有办法直接解决上述问题,我很乐意采取任何变通方法。底线是授予每个组最小权限,避免不同组的人在共享服务器上破坏其他人的软件。

答案1

不幸的是,您将无法使用 Windows 服务器 - 在许多情况下,操作系统设计根本不允许您执行实现“最小权限”所需的操作。尽管您当然可以配置软件限制策略防止未经授权的应用程序运行,并设置组策略以允许用户启动/停止某些服务,在日常的管理工作中,你会遇到很多问题:

  1. 安装大多数补丁可能需要“管理员”权限,即使用户对程序目录具有“完全控制”访问权限,也不会满足于“普通”用户权限
  2. 由于 Windows Server 中的资源管理功能非常简单(您无法限制分配给用户进程的内存量或 CPU 时间),DBA 仍然能够在服务器上执行会严重损害其他正在运行的进程的操作
  3. 如果你让你的 DBA 用户成为本地管理员,无论你采取什么措施“锁定他们”,他们都能够绕过任何限制并逃脱任何牢笼通过设计

正如 bot403 所指出的,管理分离的最佳方式是设置专用服务器,尽量减少与无关服务的干扰。虚拟化应该可以帮助您实现这一点,尽管会以内存和处理开销为代价。您可以通过不完全虚拟化主机,而是使用容器来最大限度地减少开销,这将使您能够实现足够的资源管理和管理分离。请查看Parallels Virtuozzo以查看其可能的样子。

相关内容