我是新来的DSC,并试图找出如何使它为我们工作。
我坚持的是证书如何被实际保护。 我目前的理解是,这并不是那么好。
三大问题就是这些。 如何使用公钥作为解密源确实保护这些证书? 哪些计算机在推拉scheme中需要证书? 鉴于这些问题,处理证书的最佳做法是什么?
使用证书的公钥certificate传输源是有效的。 但将其用作解密密钥意味着访问证书的公钥将决定对密码的访问。
如果您必须将证书推送到每个需要解密MOF文件的计算机,那么什么才能阻止普通用户访问证书并能够解密MOF? 说活动目录安全意味着你可以把它放在纯文本中,只依靠AD安全。
有人能帮我解决这个问题吗?
公共密钥不能用于解密,而且您不是与configuration生成或分配机器共享私钥。
这听起来像你正在考虑工作stream程,就好像有一个证书正在使用所有凭据。 你可以这样做,但我认为这个想法是每个节点都有自己的密钥对。
我所说的“平均用户”是指非pipe理用户,不能导出证书的私钥(除非被授予权限),并且由于您不会移动此密钥,所以几乎没有机会它被暴露。 如果用户是pipe理员,那么他们当然可以访问。
无论是通过未经处理的powershellconfiguration还是生成的MOF,在configuration文件中存储纯文本凭据的可能性都会更大。 如果没有encryption,那么你必须确保:
我认为DSC中的安全凭证是相当不错的,但最初的设置还是有一点考验的。
如果您在AD环境中使用企业PKI,则很可能每台计算机都设置为使用CA进行自动注册,因此它已经拥有一个可自行更新的机器特定的证书 。 它有必要的设置用于此目的。
由于DSC现在的工具对于DSC来说是非常普通的,所以很可能您将创build自己的工作stream程来生成configuration并编写脚本来协助您。
在我的情况下,我有单独的脚本来生成LCM元MOF和生成节点的实际configuration,所以我的安全凭据的步骤之间分裂。
在LCM生成脚本中,我实际上查询CA的域以find与正在configuration的机器的主机名相对应的证书。 我检索证书(CA没有私钥,只有公众),并将其保存到path供以后使用。 meta MOF被configuration为使用cert的指纹。
在节点configuration脚本中,我将configuration数据设置为使用cert文件(仅再次使用公钥)。 生成MOF时,证书将使用该证书进行encryption,并且只能使用特定节点上的私钥进行解密。
我在上面引用了自己的经验,但是这篇文章是一个很大的帮助: http : //blogs.msdn.com/b/powershell/archive/2014/01/31/want-to-secure-credentials-在-窗口的powershell期望的状态-configuration.aspx
我不得不自己填一些洞。 在他们展示的例子中要注意的一点是,他们在节点configuration中提供Thumprint 。 这对节点configuration不是必需的; 他们只是同时生成configuration和LCM元configuration,并使用configuration数据来存储在那里使用的指纹。
最后一段可能会令人困惑,但在文章的上下文中更有意义。 如果你没有同时生成两个configuration,那么他们的例子似乎很奇怪。 我testing了它; 用于encryption凭证的configuration数据中不需要Thumbprint 。 CertificateFile是必需的,但它必须在configuration数据中,所以如果你以前没有使用configuration数据,你将会是现在。