始终使用Keyvault加密SQL Azure-导出CMK证书

始终使用Keyvault加密SQL Azure-导出CMK证书,azure,azure-sql-database,azure-keyvault,always-encrypted,Azure,Azure Sql Database,Azure Keyvault,Always Encrypted,我正在使用始终加密的KeyVault加密我的SQL azure数据库。 我在Keyvault中看到的是,CMK是在Keys部分创建的。 是否可以由此构造证书? 或者在哪里可以找到此CMK证书?在Azure Key Vault中,您可以创建不同类型的对象:密钥、机密和证书。始终加密要求存储在Azure密钥库中的列主密钥是密钥库密钥。当您选择在密钥库中存储新的列主密钥时,SSMS将创建密钥库密钥。顺便说一句,SSMS在创建密钥时所做的操作相当于调用AddAzureKeyVaultKey 如上所述,创

我正在使用始终加密的KeyVault加密我的SQL azure数据库。 我在Keyvault中看到的是,CMK是在Keys部分创建的。 是否可以由此构造证书?
或者在哪里可以找到此CMK证书?

在Azure Key Vault中,您可以创建不同类型的对象:密钥、机密和证书。始终加密要求存储在Azure密钥库中的列主密钥是密钥库密钥。当您选择在密钥库中存储新的列主密钥时,SSMS将创建密钥库密钥。顺便说一句,SSMS在创建密钥时所做的操作相当于调用AddAzureKeyVaultKey

如上所述,创建密钥保管库证书时(例如,通过Add AzureKeyVaultCertificate),也会创建具有相同名称的可寻址密钥和机密-请参阅。而且,如果需要,可以将与证书关联的密钥用作列主密钥。但是,我不知道这样做有什么实际好处:始终启用加密的客户端驱动程序(例如ADO.NET)甚至不知道密钥与证书关联

如果您能够描述您的业务需求并解释为什么您认为需要列主密钥作为证书,这可能会很有用


请记住,即使列主密钥是存储在Windows证书存储库(而不是密钥库)中的真实证书,始终启用加密的驱动程序也只使用证书中包含的公钥和私钥,而忽略其他所有内容。特别是,驱动程序从不验证证书过期日期、CA链或证书是否已被吊销。这是通过设计实现的-主密钥保护长期数据,这种方法确保您始终能够访问数据,只要您拥有主密钥(例如,如果您创建一个包含加密数据的数据库备份文件,并在几年后从中恢复数据库,您应该能够访问您的数据)。

在Azure key Vault中,您可以创建不同类型的对象:密钥、机密和证书。始终加密要求存储在Azure密钥库中的列主密钥是密钥库密钥。当您选择在密钥库中存储新的列主密钥时,SSMS将创建密钥库密钥。顺便说一句,SSMS在创建密钥时所做的操作相当于调用AddAzureKeyVaultKey

如上所述,创建密钥保管库证书时(例如,通过Add AzureKeyVaultCertificate),也会创建具有相同名称的可寻址密钥和机密-请参阅。而且,如果需要,可以将与证书关联的密钥用作列主密钥。但是,我不知道这样做有什么实际好处:始终启用加密的客户端驱动程序(例如ADO.NET)甚至不知道密钥与证书关联

如果您能够描述您的业务需求并解释为什么您认为需要列主密钥作为证书,这可能会很有用

请记住,即使列主密钥是存储在Windows证书存储库(而不是密钥库)中的真实证书,始终启用加密的驱动程序也只使用证书中包含的公钥和私钥,而忽略其他所有内容。特别是,驱动程序从不验证证书过期日期、CA链或证书是否已被吊销。这是通过设计实现的-主密钥保护长寿命数据,这种方法确保您始终能够访问数据,只要您拥有主密钥(例如,如果您创建一个包含加密数据的数据库备份文件,并在几年后从中还原数据库,您应该能够访问您的数据).

这会对您有所帮助。这可以帮助你。