Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心最佳实践

Active Directory 组管理最佳实践

Active Directory 组管理最佳实践

什么是 Active Directory 组管理

使用 Active Directory 组是一个安全最佳实践,可高效且准确地控制对信息和 IT 资源的访问。然而,为了保持业务连续性,组织需要实施有效的组管理做法。常见的组管理任务包括创建新组、添加或移除成员、设置组权限以及管理组属性。

Active Directory 组的类型

Active Directory 中有两种类型的组:安全组和分发组。

安全组

安全组用于为共享资源分配权限,例如业务应用程序、云服务或 Windows 文件服务器上的内容。所有属于某个安全组的用户账户、计算机以及其他 Active Directory 对象,都会继承授予该安全组的所有访问权限。一般而言,安全组基于工作职能角色来设计,以帮助组织快速且准确地配置和重新配置访问权限。

Active Directory 默认组

创建新域时会自动生成多个 安全组 。Active Directory 中的这些默认安全组包括: 

  • Domain Admins — 该权限组非常强大,能够控制域中所有域控制器的访问权限,并可修改该域中所有管理帐户的成员资格。
  • Domain Users — 默认情况下,在域中创建的任何用户帐户都会自动成为该组的成员。
  • Domain Computers — 默认情况下,在域中创建的任何计算机帐户都会成为该组的成员。
  • 域控制器 — 新的域控制器会自动添加到此组中。

默认的 AD 安全组位于 Active Directory Users and Computers 中的 Builtin 容器和 Users 容器内。

除了内置组之外,组织通常还会创建许多其他的 Active Directory 安全组。这些组往往基于组织中的用户和计算机角色,例如为每个项目团队创建一个组,或为人力资源部门使用的所有工作站创建一个组。通常,自定义的 AD 安全组会放置在组织创建的组织单位(OU)中。

通讯组

通讯组(通常称为通讯列表)用于在 Exchange 环境中向选定的一组收件人发送电子邮件。例如,你可以在 Active Directory 中创建一个名为“All Employees”的通讯组,以便轻松发送全公司公告;同时也可以创建一个名为“Marketing Team”的通讯列表,仅向营销团队的成员发送电子邮件。你无法为通讯组分配权限。

安全组作用域

安全组的作用域决定它可以用于在哪些位置分配权限,以及哪些对象可以成为其成员。在 Active Directory 中,安全组共有三种作用域类型:

  • 通用作用域 — Active Directory 中的通用组用于为给定林中的多个域之间的资源分配权限。
  • 全局作用域 — 全局组可以获得对任何受信任域中资源的权限。但是,它们只能包含来自自身域的成员。
  • 域本地作用域 — 域本地组用于为特定域中的资源分配权限。来自任何受信任域的帐户和组都可以成为成员。

组嵌套

下表汇总了每个作用域的关键特性,并提供示例:

Scope

Can Grant Permissions for

Can Have as Members

Example

Universal

Resources in any domain in the forest

Accounts, Global groups and other Universal groups from any domain in the same forest

"IT Administrators" have permissions to resources in multiple domains; members include IT admins from those domains.

Global

Resources in any domain in the same forest and in trusting domains or forests

Accounts and other Global groups from the same domain

"Marketing Team" has permissions to marketing-related resources in several domains; members include every user in the marketing department, who are all in the same domain.

Domain Local

Resources in one domain

Accounts and groups from any trusted domain

"Accounting Managers" has permissions to accounting resources in one domain; members include accounting managers from multiple domains.

Active Directory 中的全局组 vs 通用组 vs 域本地域组

嵌套(Nesting)是指将一个组设置为另一个组的成员。该分层策略可以简化权限管理,因为通常分配给父组的权限会继承给所有子组。然而,权限继承可能会被打破。请务必遵循以下最佳实践:

  • 谨慎使用嵌套 — 将嵌套层级限制在最多几层。嵌套过于复杂可能导致权限过度,从而难以及时发现。
  • 使用基于角色的嵌套 — 根据岗位职责来实现嵌套。例如,“IT Team” 组可能会同时将“Helpdesk Technicians”组和“Server Operators”组作为成员包含进去。
  • 如实记录 — 记录嵌套结构,并记下所有变更及其目的。此类文档在故障排查和审计方面都很有帮助。
  • 进行彻底测试 — 在生产环境中实施嵌套组之前,请先进行测试,以确保将正确的权限授予了正确的用户。
  • 考虑范围 — 一般来说,在对组进行嵌套时,请遵循以下准则:
  • 将用户和计算机帐户添加到 Global 组。
  • 将全局组嵌套到域本地组中。
  • 向域本地组授予对资源的权限。

动态组

Active Directory 中的动态组的成员身份由指定规则确定,例如具有特定用户帐户属性。 例如,你可以创建一个名为“Sales”部门的动态安全组,并创建一条规则,指定所有部门属性为“Sales”的用户帐户都属于该组。该组的成员列表会根据定义的规则定期刷新:如果用户加入 Sales 部门,他们将自动添加到该组;任何离开该部门的人也会自动从该组中移除。同样,你也可以创建动态分发组。使用动态组可以减少管理工作量并降低出错风险。

可以使用 Windows PowerShell 或支持该功能的第三方 Active Directory 组管理工具来创建和管理 Active Directory 动态安全组。

Active Directory 组管理的最佳实践

有效管理 AD 组对于控制对关键 IT 资源的访问至关重要,但这可能是一项真正的挑战。随着业务项目的启动与完成、应用的部署与下线,以及用户加入和离开组织,安全组很容易出现不恰当的权限或成员关系。此外,不再需要的安全组可能会不断累积,从而增加安全风险。

分发组虽然不会授予权限,但会控制电子邮件的分发。因此,如果未对其进行妥善管理,敏感信息就可能被发送给不应查看这些信息的人。此外,没有被包含在合适的分发列表中的用户,可能会错过他们完成工作所确实需要的邮件。

以下最佳实践可以帮助你避免所有这些问题。

最佳实践 #1:始终了解自己有哪些组。

维护所有组的详细清单。请特别关注以下内容:

  • 没有成员的组
  • 没有所有者的组
  • 最近没有变更的组
  • 看起来像重复的组
  • 嵌套在其他组中的组

如果目录中有数百甚至数千个组,PowerShell 可能会很有用。例如,下面的脚本将枚举指定 OU 中的组及其成员:

      get-adgroup -Filter * -SearchBase “OU=Groups,DC=corp,DC=company,DC=Com” | %{Get-ADGroupMember $_.name} | ft name
      

另外,你也可以使用第三方解决方案。 Netwrix GroupID 让你轻松实现:

  • 基于组类型和成员资格识别相似组
  • 报告没有成员的组,以及由已禁用用户管理的组
  • 识别没有所有者的组,以及最近未使用的组
  • 查找嵌套组
  • 检索有关您组的更多信息

最佳实践 #2:使用标准。

遵循一套标准将简化组管理。务必涵盖以下所有内容:

  • 组名称 — 使用一致的命名方法来命名组,能帮助所有人(不仅仅是创建者)理解其用途。
  • 组作用域 — 为使用每种作用域类型建立标准:Universal、Global 和 Domain Local。
  • 组类型 — 授予访问权限请使用安全组;用于电子邮件分发请使用分发组。
  • 组说明 — 使用 DescriptionNotes 字段,详细说明组的用途与预期生命周期,以及其成员资格和权限可能存在的任何例外情况。
  • 组放置位置 — 确定组在目录中的存放位置。有些公司为所有自定义安全组指定一个 OU,为所有分发组再指定一个 OU;而有些公司则选择将每个组放在与其用途相匹配的 OU 中。
  • 使用嵌套 — 确保正确实施嵌套,并进行充分的文档记录。

Netwrix GroupID 让您可以轻松地在以上所有领域落实标准。例如,您可以要求在创建组之前必须提供描述;使用前缀和正则表达式来强制执行组命名规范;并允许某个用户角色仅在特定 OU 中创建用户对象。

最佳实践 #3:建立组所有者。

没有所有者的组(孤立组)是导致过度访问权限的常见原因。此外,这些组也很容易被对手滥用。

因此,请确保每个组至少有一名所有者。通常而言,经理、部门负责人和项目负责人比 IT 团队更能了解该组的成员资格和权限应该是什么。

Netwrix GroupID 可让你:

  • 自动识别孤立组(orphaned groups),并为其分配所有者。
  • 设置主要所有者和其他所有者,以帮助防止组变成孤立状态。
  • 分配临时所有者,以应对诸如员工缺勤或项目特定需求等情况。
  • 批量转移组的所有权。
  • 获取有关组所有权的详细报告。

最佳实践 #4:确保对组的变更承担责任。

对组所进行的任何更改都可能扰乱业务流程或引入安全风险。为帮助确保所有更改都是必要且恰当的,请实施一种工作流:允许用户提交加入请求,并授权组所有者批准或拒绝该请求。此外,还应跟踪组成员身份和组权限的所有变更,并记录每次变更的原因。

Netwrix GroupID 使您能够轻松建立审批工作流,并审计对组的更改。此外,您还可以:

  • 建立组的安全级别— 按敏感度对组进行分类。对于专用(private)组,只有组所有者可以管理成员身份。半专用(semi-private)组的成员管理更灵活,而任何人都可以根据自己的选择加入或离开公开(public)组。
  • 启用自助式组管理 —让员工能够通过便捷的自助服务门户自行添加到公共组中。

最佳实践 #5:通过定期审计确保问责。

即使你已为组更改实施了问责机制,也应定期审计你的组,以及时发现任何问题。

使用 Netwrix GroupID,你可以:

  • 验证组是否存在 — 可以要求组所有者定期确认该组仍然需要存在,因此你可以删除不需要的组,从而减少攻击面。
  • 进行组认证(attestation) — 你可以定期要求组所有者验证其组的属性、成员身份以及权限。所有者可根据组的重要性来确定认证频率。
  • 确保准确性 — 你可以将 AD 用户账户与 HR 系统等可信来源同步,以帮助维护准确的组成员身份。

最佳实践 #6:自动化组管理流程。

手动添加和移除组成员、更新组属性以及删除组,会给你本就有限的 IT 人员带来极大的负担。此外,这些流程非常容易出现人为错误。即使你使用 PowerShell,也需要创建并维护复杂的脚本,并定期执行它们。

使用 Netwrix GroupID,你可以自动化多种组管理任务,从而降低管理开销,并减少因疏忽和错误带来的网络安全风险。例如,你可以轻松基于 AD 属性、规则,甚至 HR 数据创建动态组。

最佳实践 #7:删除不必要的组。

这项最佳实践说起来容易做起来难。毕竟,想要 100% 确定某个组确实不再需要并不容易。不过,已经失去用途的组会带来安全风险。

Netwrix GroupID 提供多项功能,帮助你可靠地识别并移除不需要的组:

  • 组认证 — 你可以要求组所有者定期审查其组,并报告这些组是否仍然需要,或是否应当删除。
  • 组到期 — 你可以为组设置到期日期,并在需要时提供快速续期选项。经过宽限期后,到期的组会自动删除。

结论

对 Active Directory 组进行妥善管理对于安全性和业务连续性都至关重要。安全组授予对关键 IT 资源的访问权限,而分发组则用于控制通过电子邮件传播信息的方式。在手动流程下,组管理会对 IT 团队造成沉重负担,并且非常容易出现代价高昂的错误。虽然 PowerShell 可以提供帮助,但它既需要时间,也需要专业技能。因此,许多组织会投资诸如 Netwrix Directory Manager 之类的第三方组管理解决方案。想了解更多,请访问 Directory Manager Solution.

Netwrix GroupID

通过自动化和委派Active Directory组管理,使用Netwrix GroupID提高IT生产力并增强安全性。

请求免费试用

分享到