如何设置和管理组托管服务帐户
使用常规用户帐户作为服务帐户是一种常见做法,它将管理密码的责任交给了用户。不幸的是,这通常会导致密码长时间保持不变,从而容易受到攻击和滥用。但是,组托管服务帐户 (gMSA) 为运行自动化任务、服务和应用程序提供了更安全的解决方案。 gMSA 在 Windows Server 2016 中引入,也可以在 Windows Server 2012 及更高版本上使用。通过 gMSA,Windows 可以处理密码管理的各个方面。密码是随机生成的,并定期自动更改。此外,用户不需要知道密码,因为 gMSA 安装在服务器上并在运行时从 Active Directory 检索其密码信息。与使用用户帐户作为服务帐户相比,这使得 gMSA 明显不易被滥用和泄露。
为什么组托管服务帐户 (gMSA) 很重要?
服务帐户的使用对于为 Windows 设备上的后台服务提供安全性非常重要。如果没有适当的安全措施,这些服务可能会成为黑客的目标。 gMSA 为安全管理提供了多项优势,其中包括:
- 在多个服务器上运行服务和任务的能力
- 自动密码管理
- 通过操作系统处理密码
- 将管理权委托给其他管理员
如何查找和管理 gMSA
您的公司可能已经建立了 gMSA,可以为管理服务帐户提供起点。查找和管理 MSA 是一个相对简单的过程,其中涉及执行以下 PowerShell 命令:
- 获取 ADServiceAccount
- 安装-ADServiceAccount
- 新AD服务帐户
- 删除 ADServiceAccount
- 设置 ADServiceAccount
- 测试-ADServiceAccount
- 卸载-ADServiceAccount
如何设置组托管服务帐户 (gMSA)
要使用 Powershell 管理 gMSA,需要 64 位体系结构。确保将林架构更新到 Windows Server 2012、部署 Active Directory 的主根密钥以及将创建 gMSA 的域中至少存在一个 Windows Server 2012 域控制器非常重要。
要创建组托管服务帐户,可以使用 New-ADServiceAccount cmdlet。如果未安装 AD PowerShell,则可以通过服务器管理器添加 Windows PowerShell 的 Active Directory 模块。创建 gMSA 的参数包括:
- 账户名称
- 服务的 DNS 主机名
- 主机服务器支持的加密类型
- 密码更改间隔
- 允许检索管理密码的帐户
- 服务的 NetBIOS 名称
- 服务的服务主体名称 (SPN)。
要将成员添加到 gMSA 管理的安全组,可以使用 Active Directory GUI、命令行或 Windows PowerShell Active Directory cmdlet 添加计算机帐户。创建 gMSA 后,可以在托管服务帐户 OU 中对其进行检查。
管理组托管服务帐户的最佳实践
为了确保组托管服务帐户有效保护您的组织,必须确保您正确管理它们。以下是一些有用的建议;
正确排列:将所有 gMSA 放入托管服务帐户文件夹或组织单位 (OU) 中。如果您有多种类型的 MSA,请创建一个子 OU 以将所有 gMSA 分开以方便访问。保持统一的命名约定也有助于有效组织 gMSA。
保留服务帐户的清单:跟踪组织的服务帐户对于维护安全性并防止身份验证问题非常重要。使用 PowerShell cmdlet 等工具或专用网络安全解决方案来有效管理和监控这些帐户。
维持适当的安全实践:为了降低服务帐户的风险,防止管理员将其个人帐户用作服务帐户并尽量减少服务的交互式登录非常重要。使用 gMSA,您可以自动化密码管理并将身份验证保留在操作系统内,从而无需人工交互。
组托管服务帐户安全
组托管服务帐户是 Active Directory 中的特定对象类型,具有与其密码和轮换相关的特殊属性。为了确保安全,重要的是将对这些属性的访问仅限于必要的 Active Directory 对象。 gMSA 的属性包括:
- 密码本身 (msDS-ManagedPassword)
- 用于当前密码的密钥 ID (msDS-ManagedPasswordID)
- 用于先前密码的密钥 ID (msDS-ManagedPasswordPreviousID)
- 具有查询密码权限的对象列表(msDS-GroupMSAmbership)
- 密码轮换间隔 (msDS-ManagedPasswordInterval)
了解谁可以访问密码至关重要,因为它存储在 msDS-ManagedPassword 属性中。查询密码的访问权限由 msDS-GroupMSAmbership 属性确定,但还需要其他 Active Directory 权限。有权查询密码的用户或对象还必须具有 gMSA 的 msDS-ManagedPassword 属性的“读取”权限。
为了保护 gMSA 密码,应采取两个步骤。首先,确保只有必要的对象有权查询密码,并且它们列在 msDS-GroupMSAmbership 属性中。其次,将读取属性的访问权限限制为仅需要访问权限的管理用户以及安装 gMSA 的计算机帐户。权限或配置管理不当可能会导致 gMSA 受到损害,从而使攻击者能够提升权限或在网络内横向移动。
gMSA 监控
启用“审核目录服务访问”策略并在 gMSA 上配置 SACL 允许您生成跟踪对密码属性进行的查询的事件日志。通过监视这些日志,您可以识别谁正在访问 gMSA 帐户密码。启用此设置时会生成事件 ID 4662,它会记录进行查询的帐户和访问的特定属性等详细信息。通过使用专用的变更审核解决方案,您可以有效地跟踪和监控对这些属性的访问。
