首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在导入.pfx证书之后,如何使用Azure密钥库(带您自己的密钥- BYOK)启用MSSQL透明数据加密(TDE)?

在导入.pfx证书之后,如何使用Azure密钥库(带您自己的密钥- BYOK)启用MSSQL透明数据加密(TDE)?
EN

Database Administration用户
提问于 2022-10-20 17:50:22
回答 1查看 81关注 0票数 0

在Azure密钥库中,我手动创建了一个名为"Encrypt“的2048位RSA密钥。然后导入一个名为“导入”的.pfx 2048位RSA密钥。

回到MSSQL中,我可以使用以下“加密”密钥:

代码语言:javascript
复制
CREATE ASYMMETRIC KEY TDE_KEY
    FROM PROVIDER AzureKeyVault_EKM_Prov WITH
    PROVIDER_KEY_NAME = 'Encrypt',
    CREATION_DISPOSITION = OPEN_EXISTING

Commands completed successfully.

但是,如果我尝试使用"Import“键,则会发生以下情况:

代码语言:javascript
复制
CREATE ASYMMETRIC KEY TDE_KEY
    FROM PROVIDER AzureKeyVault_EKM_Prov WITH
    PROVIDER_KEY_NAME = 'Import',
    CREATION_DISPOSITION = OPEN_EXISTING

Key with name 'Import' does not exist in the provider or access is denied. Provider error code: 2057.  (Provider Error - No explanation is available, consult EKM Provider for details)

我知道它至少可以看到键,因为它返回错误2057而不是3112 (没有找到键)。

不幸的是,2057不在Server连接器文档中的错误编号之列:https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/sql-server-connector-maintenance-troubleshooting?view=sql-server-2017#AppendixC

在Powershell中,这两个键看起来是并排的:

代码语言:javascript
复制
PS C:\> Get-AzKeyVaultKey -VaultName testvault

Vault/HSM Name : testvault
Name           : Encrypt
Key Type       : RSA
Key Size       : 2048
Curve Name     :
Version        : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Id             : https://testvault.vault.azure.net:443/keys/Encrypt/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enabled        : True
Expires        :
Not Before     :
Created        : 10/13/2022 8:54:16 PM
Updated        : 10/13/2022 8:54:16 PM
Recovery Level : Recoverable
Release Policy :
Tags           :

Vault/HSM Name : testvault
Name           : Import
Key Type       : RSA
Key Size       : 2048
Curve Name     :
Version        : xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Id             : https://testvault.vault.azure.net:443/keys/Import/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Enabled        : True
Expires        :
Not Before     :
Created        : 10/14/2022 4:59:37 PM
Updated        : 10/14/2022 4:59:37 PM
Recovery Level : Recoverable
Release Policy :
Tags           :

最后一个注意事项,我给了这个帐户访问密钥库中所有东西的全部权限,这是肯定的。

如何在Azure密钥库中获取导入的密钥来使用TDE?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2022-10-21 09:19:03

不幸的是,2057不在Server连接器文档...中的错误编号之列。

它似乎从正式文档中缺失了,我将提出一些修改,以使这些项目被记录下来。这是非常罕见的,以下任何一个会被击中(除了2056年,谢谢防病毒软件!)

在此期间,以下是一些未发表的文章.请注意,可能有不同的原因,这些可能会被击中。

代码语言:javascript
复制
2054 - scp_err_GetThumbprintFromPublicKey
2055 - scp_err_GetPublicKeyBlob
2056 - scp_err_GetRegistryKeyPath
2057 - scp_err_ThumbprintExistedInRegistry
2059 - scp_err_ThumbprintMismatch
2060 - scp_err_GetKeyUriFromThumbprint

在您的例子中,它是2057,这意味着URI +拇指指纹已经存在于注册表中。我还没有机会测试用什么不同的方式完成这一任务,但我的最佳猜测是以不同的名称导入相同的密钥(我并不是说总是这样,只是有意义),或者有人做了不-不和克隆/导入的注册表设置,他们不应该拥有<shrug>

解决方案是删除AKV注册表路径下的违规注册表项,这在您的情况下是有效的。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/318473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档