无法使用 "Customer" 托管加密密钥选项在 Azure 认知搜索中创建 index/synonym 地图
Unable to create an index/synonym map in Azure Cognitive Search with "Customer" managed encryption key option
我正在尝试使用 "Customer" 托管密钥选项创建加密的 index/synonym 地图,但我无法这样做。
我不断从服务返回以下错误:
Failed to verify account key (HTTP Status Code: 403).
这是我的同义词映射请求正文:
{
"name":"test",
"format":"solr",
"synonyms":"",
"encryptionKey":
{
"keyVaultKeyName":"AzSearchKey2",
"keyVaultKeyVersion":"02cc721e41654f079c173744313f24b0",
"keyVaultUri":"https://mykeyvault.vault.azure.net"
}
}
我已完全按照此处指定的说明进行操作:https://docs.microsoft.com/en-gb/azure/search/search-security-manage-encryption-keys。
这是我到目前为止所做的:
我使用 "Basic" SKU 创建了一个搜索服务(因为此功能在 "Free" 等级中不可用)。
我转到搜索服务的 "Identity" 部分并将其分配为托管标识。
- 我创建了一个具有 "Standard" 层的全新 Key Vault,并为上述身份定义了访问策略。如上文 link 文档中所述,我向搜索服务授予了必要的 "Key" 权限("Get"、"Wrap Key"、"Unwrap Key")。此 Key Vault 与搜索服务位于同一区域和资源组中。 Key Vault 还启用了 "Soft Delete" 和 "Purge Protection"。
- 我创建了一个密钥并复制了详细信息(URI、密钥名称和密钥版本)。
我相信我正在做文档中提到的所有事情,所以我不确定我做错了什么。
有趣的是,我昨天能够使用另一个搜索服务和密钥保管库毫无问题地做到这一点。
我猜我遗漏了一些小细节。如果有人能为我指出,我将不胜感激。
更新
非常感谢认知搜索团队在这方面与我合作。我收到的错误消息是因为代码有问题(只要服务返回 403 状态代码,我就会返回一条标准消息)。
服务仍在返回错误。服务返回的实际错误信息是:
Could not use key vault key https://mykeyvault.vault.azure.net:443/keys/AzSearchKey2/02cc721e41654f079c173744313f24b0
to wrap/unwrap the encryption key. The key vault key deletion-recovery level is insufficient.
Soft-Delete and Purge Protection must be enabled on Key vault, see: https://aka.ms/key-vault-soft-delete
在与 Gaurav 私下跟进后,我们得出的结论是密钥保留期太短(7 天保留而不是 90 天)。我们刚刚更新了产品代码以支持更短的保留期(低至 7 天),补丁将在未来几周内在全球部署。同时,如果您遇到同样的问题,请将您的密钥保留政策更新为 90 天。如果在创建加密索引或同义词映射时从 Azure 搜索收到以下消息,则可以识别此错误状态:
DataPlaneApiException:无法将密钥保管库密钥 (YOUR_KEY_URL) 用于 wrap/unwrap 加密密钥。密钥保管库密钥删除恢复级别不足。必须在 Key Vault 上启用软删除和清除保护,请参阅:https://aka.ms/key-vault-soft-delete。
谢谢
我正在尝试使用 "Customer" 托管密钥选项创建加密的 index/synonym 地图,但我无法这样做。
我不断从服务返回以下错误:
Failed to verify account key (HTTP Status Code: 403).
这是我的同义词映射请求正文:
{
"name":"test",
"format":"solr",
"synonyms":"",
"encryptionKey":
{
"keyVaultKeyName":"AzSearchKey2",
"keyVaultKeyVersion":"02cc721e41654f079c173744313f24b0",
"keyVaultUri":"https://mykeyvault.vault.azure.net"
}
}
我已完全按照此处指定的说明进行操作:https://docs.microsoft.com/en-gb/azure/search/search-security-manage-encryption-keys。
这是我到目前为止所做的:
我使用 "Basic" SKU 创建了一个搜索服务(因为此功能在 "Free" 等级中不可用)。
我转到搜索服务的 "Identity" 部分并将其分配为托管标识。
- 我创建了一个具有 "Standard" 层的全新 Key Vault,并为上述身份定义了访问策略。如上文 link 文档中所述,我向搜索服务授予了必要的 "Key" 权限("Get"、"Wrap Key"、"Unwrap Key")。此 Key Vault 与搜索服务位于同一区域和资源组中。 Key Vault 还启用了 "Soft Delete" 和 "Purge Protection"。
- 我创建了一个密钥并复制了详细信息(URI、密钥名称和密钥版本)。
我相信我正在做文档中提到的所有事情,所以我不确定我做错了什么。
有趣的是,我昨天能够使用另一个搜索服务和密钥保管库毫无问题地做到这一点。
我猜我遗漏了一些小细节。如果有人能为我指出,我将不胜感激。
更新
非常感谢认知搜索团队在这方面与我合作。我收到的错误消息是因为代码有问题(只要服务返回 403 状态代码,我就会返回一条标准消息)。
服务仍在返回错误。服务返回的实际错误信息是:
Could not use key vault key https://mykeyvault.vault.azure.net:443/keys/AzSearchKey2/02cc721e41654f079c173744313f24b0
to wrap/unwrap the encryption key. The key vault key deletion-recovery level is insufficient.
Soft-Delete and Purge Protection must be enabled on Key vault, see: https://aka.ms/key-vault-soft-delete
在与 Gaurav 私下跟进后,我们得出的结论是密钥保留期太短(7 天保留而不是 90 天)。我们刚刚更新了产品代码以支持更短的保留期(低至 7 天),补丁将在未来几周内在全球部署。同时,如果您遇到同样的问题,请将您的密钥保留政策更新为 90 天。如果在创建加密索引或同义词映射时从 Azure 搜索收到以下消息,则可以识别此错误状态:
DataPlaneApiException:无法将密钥保管库密钥 (YOUR_KEY_URL) 用于 wrap/unwrap 加密密钥。密钥保管库密钥删除恢复级别不足。必须在 Key Vault 上启用软删除和清除保护,请参阅:https://aka.ms/key-vault-soft-delete。
谢谢