了解安全对象层次结构后,我们可以看到,为了创建Symmetric Key
和加密数据,我们需要创建:
在Always Encrypted
中,我们可以使用EKM
模块来简化这种层次结构。例如,我们可以将证书存储在中Windows Certification Store
,这些证书正在保护我们的加密主密钥。
我想知道,如果我不想使用Always Encrypted
内置的加密功能,我可以使用EKM
模块来创建和管理我的对称密钥(如图所示)。在CREATE SYMMETRIC KEY文档中,我们有provider
选项,但没有足够的关于可能的提供者和示例的信息。
我对Certificate
在外部存储中存储保护对称密钥或对称密钥很感兴趣,因为这样数据与密钥是分开的,在数据库中我们只存储对密钥的引用(就像总是加密的)。Windows Certification Store 对我来说是最佳选择,但我猜 Azure Key Vault 或其他东西也可以。
tl;dr -
CREATE CRYPTOGRAPHIC PROVIDER
通过供应商提供的为此目的设计的 .DLL 文件,用于在 SQL Server 内部创建与 EKM/HSM 硬件/软件的连接。可以使用 Azure Key Vault 来保护本地数据。使用 Azure Key Vault 启用 Azure 帐户需要执行许多步骤,这些步骤在使用 Azure Key Vault 进行可扩展密钥管理的设置步骤中有详细说明。
SQL Server中的步骤包括以下内容:
从Microsoft 下载中心安装适用于 Azure Key Vault 的 SQL Server 连接器。
运行以下代码以启用 EKM 提供程序:
注册 EKM 模块:
为 SQL Server 连接到 Azure 设置凭据:
打开密钥库:
然后,您可以按照列出的步骤启用 TDE,以将 SQL Server 与 SQL 加密结合使用。