我试图找出使用 gMSA 作为 MS SQL Server 的服务帐户在使用 TDE 证书加密数据库时可能产生的不良影响。
据我了解,SQL Server 中存在加密层次结构。最顶层是服务主密钥,它是在第一次启动 SQL Server 实例时自动生成的。服务主密钥使用密钥加密,该密钥或多或少基于 SQL Server 服务帐户的 Windows 凭据和计算机的凭据。服务主密钥又对数据库主密钥进行加密。
数据库主密钥又用于保护证书的私钥。
使用 TDE 证书加密数据库时,最佳做法是创建该证书和私钥的备份。
gMSA 的一个特殊功能是密码将由活动目录管理。据我所知,这种管理的一部分是活动目录定期更改该密码。
所以我的问题是:
- 当 Active Directory 更改现有服务主密钥、数据库主密钥和证书的 gMSA 密码时,会发生什么情况?
- 此 SQL Server 实例中的数据库(使用 TDE 证书加密)仍然可以解密吗?
- 证书及其私钥的备份是否仍可用于在另一个 SQL Server 实例中附加使用这些证书加密的数据库?
我对此主题进行了一些研究,但很难找到有关服务帐户密码更改时整个加密层次结构如何受到影响的准确信息。例如,本文指出服务主密钥将变得不可用: https: //www.sqlserverscience.com/security/data-security/filesystem-security-tde-keys-certificates/ ?utm_medium=referral&utm_source=dba.stackexchange.com&utm_campaign= 232330
另一方面,很难相信使用 gMSA(我认为这通常是 SQL Server 服务帐户的不错选择)会导致此类问题。
因此,我将非常感谢有关此主题的帮助。先感谢您!
没什么,密码是什么或帐户的密码是什么并不重要,只要 gMSA 能够登录并验证自身,一切就都很好。
是的。
是的。
密码本身并没有真正发挥作用,但您需要帐户和密码来进行登录,这是服务启动时需要执行的操作。如果没有这个,服务将无法启动。话虽如此,您可以将服务帐户更改为另一个帐户,并添加任何所需的权限,启动 SQL Server 并有权访问所有内容。您不能做的是同时更改计算机帐户和服务帐户。
请注意,我在这里使用密码就好像人们知道 gMSA 的密码一样,但实际上却不会。
您确实只需要证书的副本,这就是对用户数据库中的数据库加密密钥 (dek) 进行加密的内容(该证书位于 master 或 EKM 设备中)。如果您有证书,则可以将其还原到 SQL Server 任何实例上的主数据库,然后附加/还原用户数据库,它将解密。无需使用相同的帐户或服务器。这就是为什么拥有良好且安全的证书副本非常重要。