保护独立托管服务帐户

独立托管服务帐户 (sMSA) 是托管域帐户,有助于保护在服务器上运行的服务。 它们不能在多个服务器之间重复使用。 sMSA 具有自动密码管理、简化的服务主体名称 (SPN) 管理和委托给管理员的管理。

在 Active Directory (AD) 中,sMSA 与运行服务的服务器相关联。 你可以在 Microsoft 管理控制台的“Active Directory 用户和计算机”管理单元中找到帐户。

Screenshot of a service name and type under Active Directory Users and Computers.

注意

托管服务帐户是在 Windows Server 2008 R2 Active Directory 架构中引入的,需要 Windows Server 2008 R2 或更高版本。

sMSA 优势

与用作服务帐户的用户帐户相比,sMSA 的安全性更高。 它们有助于减少管理开销:

  • 设置强密码:sMSA 使用随机生成的 240 字节复杂密码
    • 复杂性最大限度地降低了通过暴力破解或字典攻击造成危害的可能性
  • 定期轮换密码 - Windows 每 30 天更改一次 sMSA 密码。
    • 服务和域管理员无需计划密码更改或管理相关的故障时间
  • 简化 SPN 管理 - 如果域功能级别为 Windows Server 2008 R2,则会更新 SPN。 SPN 会在以下情况下进行更新:
    • 重命名主机帐户
    • 更改主机域名服务器 (DNS) 名称
    • 使用 PowerShell 添加或删除其他 sam-accountname 或 dns-hostname 参数
    • 请参阅 Set-ADServiceAccount

使用 sMSA

使用 sMSA 简化管理和安全任务。 当服务部署到服务器而你不能使用组托管服务帐户 (gMSA) 时,sMSA 很有用。

注意

可以将 sMSA 用于多个服务,但建议让每个服务都有一个用于审核的标识。

如果软件作者无法告诉你应用程序是否使用 MSA,请测试该应用程序。 创建测试环境并确保它访问所需的资源。

详细了解:托管服务帐户:了解、实现、最佳做法和故障排除

评估 sMSA 安全态势

将 sMSA 访问范围视为安全态势的一部分。 若要缓解潜在的安全问题,请参阅下表:

安全问题 缓解措施
sMSA 是特权组的成员 - 将 sMSA 从提升的权限组(如域管理员)中删除
- 使用最低权限模型
- 授予 sMSA 运行其服务的权利和权限
- 如果不确定权限,请咨询服务创造者
sMSA 具有对敏感资源的读/写访问权限 - 审核对敏感资源的访问权限
- 将审核日志存档到安全信息和事件管理 (SIEM) 程序(例如 Azure Log Analytics 或 Microsoft Sentinel)
- 如果检测到不需要的访问权限,请修正资源权限
默认情况下,sMSA 密码滚动更新频率为 30 天一次 请根据企业安全要求,使用组策略来微调期限。 若要设置密码过期期限,请转到:
“计算机配置”>“策略”>“Windows 设置”>“安全设置”>“安全选项”。 对于域成员,请使用“计算机帐户密码最长期限”。

sMSA 挑战

请使用下表将挑战与缓解措施相关联。

挑战 缓解措施
sMSA 在单个服务器上 若要跨服务器使用帐户,请使用 gMSA
sMSA 不能跨域使用 若要跨域使用帐户,请使用 gMSA
并非所有应用程序都支持 sMSA 如果可能,请使用 gMSA。 否则,请使用创建者建议的标准用户帐户或计算机帐户

查找 sMSA

在域控制器上,运行 DSA.msc 并展开托管服务帐户容器以查看所有 sMSA。

若要返回 Active Directory 域中的所有 sMSA 和 gMSA,请运行以下 PowerShell 命令:

Get-ADServiceAccount -Filter *

若要返回 Active Directory 域中的 sMSA,请运行以下命令:

Get-ADServiceAccount -Filter * | where { $_.objectClass -eq "msDS-ManagedServiceAccount" }

管理 sMSA

若要管理 sMSA,可以使用以下 AD PowerShell cmdlet:

Get-ADServiceAccount Install-ADServiceAccount New-ADServiceAccount Remove-ADServiceAccount Set-ADServiceAccount Test-ADServiceAccount Uninstall-ADServiceAccount

移到 sMSA

如果应用程序服务支持 sMSA,但不支持 gMSA,而你是在安全上下文中使用用户帐户或计算机帐户,请参阅
托管服务帐户:了解、实现、最佳做法和故障排除

可能情况下,请将资源移到 Azure,并使用 Azure 托管标识或服务主体。

后续步骤

若要详细了解如何保护服务帐户,请参阅: