You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMS密钥用途错误排查:数据库加解密场景需何种密钥用途?

问题解决:KMS获取公钥报错的密钥用途问题

错误根源

你调用getPublicKey()方法获取公钥,但当前使用的密钥是对称加密密钥(用途标记为ENCRYPT_DECRYPT)。这类密钥采用单密钥完成加解密,不存在公钥/私钥对,因此无法通过该接口获取公钥,触发FAILED_PRECONDITION错误。

正确的密钥用途

如果你的需求是获取公钥实现客户端加密(比如加密数据库数据),必须使用非对称加密密钥,对应的密钥用途为:

  • ASYMMETRIC_ENCRYPT:专门用于非对称加密场景,公钥可导出用于客户端加密,私钥托管在KMS中用于解密,完全匹配你的数据库数据加解密需求。

具体修正操作

  1. 重新创建合规密钥:
    在Cloud KMS控制台或通过CLI创建密钥时,需选择:

    • 密钥类型:「非对称」
    • 密钥用途:「加密」(后台对应标识为ASYMMETRIC_ENCRYPT)
    • 加密算法:根据业务需求选择,比如RSA_DECRYPT_OAEP_2048_SHA256
  2. 代码适配:
    你现有代码的逻辑本身无问题,只需确保CryptoKeyVersionName指向新创建的非对称密钥版本即可。

补充说明

如果你的业务更适合对称加密(比如追求更高的加解密性能),可以放弃获取公钥的逻辑,直接调用KMS的encrypt()和decrypt()接口完成对称加解密,此时密钥用途保持ENCRYPT_DECRYPT即可。

内容的提问来源于stack exchange,提问作者BefuddledBarberian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 19:55:25