Azure MySQL弹性服务器绑定CMK时URL无效错误排查求助
解决Azure MySQL弹性服务器绑定CMK时的SecurityInvalidAzureKeyVaultRecoveryLevel错误
核心问题:密钥恢复级别不满足要求
Azure MySQL弹性服务器对用于CMK的密钥有明确的恢复级别要求:当Key Vault已启用清除保护时,密钥必须具备RecoverableProtectedPurgeable级别。你当前密钥的CustomizedRecoverable级别不符合该要求,这是触发错误的主要原因。
修复步骤:
- 现有密钥的恢复级别无法直接修改,需重新创建符合要求的密钥:
az keyvault key create --vault-name alle-ai-kv-d797aa8292 --name laravel-app-prod-attr1-attr2-cmk-key-v2 --kty RSA --size 2048 - 验证新密钥的恢复级别:
正常返回应为az keyvault key show --vault-name alle-ai-kv-d797aa8292 --name laravel-app-prod-attr1-attr2-cmk-key-v2 --query "attributes.recoveryLevel""RecoverableProtectedPurgeable"
次要问题:密钥URL格式错误
你提供的密钥URL包含多余转义符和占位符,不符合Azure要求的标准格式:
- 错误示例:
https://alle-ai-kv-d797aa8292.vault.azure.net/keys/laravel-app-prod-attr1-attr2-cmk-key-v1/\\\\<version-number> - 正确格式需使用真实的密钥版本ID,可通过以下命令获取完整密钥URL:
输出的合法URL类似:az keyvault key show --vault-name alle-ai-kv-d797aa8292 --name laravel-app-prod-attr1-attr2-cmk-key-v2 --query "key.kid"https://alle-ai-kv-d797aa8292.vault.azure.net/keys/laravel-app-prod-attr1-attr2-cmk-key-v2/abcdef1234567890
额外验证项
- Key Vault网络访问设置:若Key Vault启用了防火墙,需确保允许Azure MySQL弹性服务器访问——可临时设置KV为"允许所有网络"进行测试,确认后再配置更严格的规则。
- 托管标识权限确认:确保用户托管标识对目标密钥的访问策略包含Get、WrapKey、UnwrapKey三个核心权限(你当前已配置,但需确认权限是直接绑定到密钥而非仅Key Vault级别)。
内容的提问来源于stack exchange,提问作者Gyampoh Enoch
相关产品推荐
相关产品推荐

