我与一些同事讨论了在我们的环境中使用组管理服务帐户的最佳做法。
理想情况下,我们会为每个服务器(例如 SQLDEV01)的每个服务(例如 SQL 代理服务)创建 1 个 gMSA。
这将允许最大程度地分离关注点,以便如果任何服务帐户出现任何问题(受损、删除、锁定、损坏等),它只会影响与其关联的单个服务和单个服务器。
这种方法的唯一缺点是可能需要创建大量 gMSA。但话虽如此,一旦创建,就不需要再对其进行管理了。
我遇到的另一个问题是命名 gMSA(我认为它必须不超过 15 个字符)。想出一个名称来表明该帐户是 gMSA、用于特定服务以及用于特定服务器似乎极其困难。
例如,遵循典型惯例的通用名称可能如下所示:
- gMSA_SQLDEV01_SQLAGT(20 个字符)
它可以缩写为:
- gmsaSQLDEV01AGT(15 个字符)
上面的例子正好是 15 个字符,没有多余的空间容纳其他可能更长的服务器或服务名称。
是否有任何最佳实践或方法来处理这些情况:
- 通过关注点分离对管理服务帐户进行分组?
- 用长名称对管理服务帐户进行分组?
答案1
关注点分离方面在很大程度上取决于您的环境,并权衡分离事物的麻烦与在某些情况下共享帐户的简单性。我的意思是,gMSA 相对于原始 MSA 的主要特点之一是它们可以被多个系统使用。
关于长名字……
您可以通过不为其添加前缀(如)来轻松释放一些空间。虽然它在与普通用户帐户相关的属性gmsa
中共享许多常见类,但它还包含自己独特的类,这使其易于在您可能想要包含或排除它们的过滤器中使用。 gMSA 在 ADUC 等 GUI 工具中也具有视觉差异。因此,假设人们在日常活动中不会将它们与普通用户帐户混淆。objectClass
msDS-GroupManagedServiceAccount
在尝试这个方法时,我还注意到了另一件事。尽管 cmdletNew-ADServiceAccount
确实强制执行 15 个字符的限制-SamAccountName
,但使用 ADSIEdit 手动创建msDS-GroupManagedServiceAccount
对象只会强制执行 20 个字符的限制。
我还没有真正测试过我的 20 个字符长度的 gMSA。所以我不知道它是否真的适用于任何东西。但是,如果你想在命名约定中留出更多空间,可能值得进一步测试。