0

我正在使用始终使用KeyVault加密来加密我的SQL Azure数据库。 我在Keyvault中看到的是,CMK是在Keys部分中创建的。 是否有可能从此构建证书? 或我可以在哪里找到这个CMK证书?总是使用Keyvault加密SQL Azure - 导出CMK证书

+0

这可以帮助你。 [Azure密钥电子仓库证书入门](https://blogs.technet.microsoft.com/kv/2016/09/26/get-started-with-azure-key-vault-certificates/) –

回答

2

在Azure密钥保管库中,您可以创建不同类型的对象:密钥,机密和证书。始终加密要求存储在Azure密钥保管库中的列主密钥是密钥保管库密钥。当您选择将新的列主密钥存储在密钥保管库中时,SSMS将创建密钥保管库密钥。顺便说一句,SSMS在创建密钥时执行的操作等同于调用Add-AzureKeyVaultKey。

话虽如此,当创建密钥保险库证书时(例如通过Add-AzureKeyVaultCertificate),还可以使用相同的名称创建可寻址的密钥和秘密 - 请参阅https://docs.microsoft.com/en-us/rest/api/keyvault/about-keys--secrets-and-certificates#key-vault-certificates。而且,如果需要,您可以将与证书关联的密钥用作列主密钥。但是,我并不知道这样做的实际好处:始终加密的启用客户端驱动程序(例如ADO.NET)甚至不会意识到密钥与证书关联。

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

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