Cloud KMS 常见问题解答

关于 Cloud KMS

什么是 Cloud KMS?它有何用途?

Cloud Key Management Service (Cloud KMS) 是一项云托管式密钥管理服务,让您能够使用与本地部署时相同的方式为自己的云服务管理加密。您可以生成、使用、轮替和销毁加密密钥。 Cloud KMS 已与 Cloud Identity and Access Management 和 Cloud Audit Logs 集成,因而您可以分别管理各个密钥的权限,并监控它们的使用方式。

我可以存储密文吗?

Cloud KMS 会存储密钥和密钥的相关元数据,并且没有常规数据存储 API。建议使用 Secret Manager 来存储和访问用于 Google Cloud 的敏感数据。

有服务等级协议 (SLA) 吗?

有,请参阅 Cloud KMS 服务等级协议

我如何提供产品反馈?

请通过 cloudkms-feedback@google.com 与工程团队联系。

我如何提供文档反馈?

查看 Cloud KMS 文档时,点击页面右上角附近的发送反馈。这会打开一个反馈表单。

如果我需要帮助,可以通过哪些途径?

我们鼓励用户在 Stack Overflow 上发布问题。除了活跃的 Stack Overflow 社区,我们的团队也会积极监控 Stack Overflow 帖子并使用 google-cloud-kms 标签回答问题。

我们还根据您的需求提供各种级别的支持。如需其他支持选项,请参阅我们的 Google Cloud 支持套餐

Cloud KMS 有配额吗?

有。如需了解配额(包括查看或申请更多配额),请参阅 Cloud KMS 配额

密钥、密钥环或密钥版本没有数量限制。此外,每个密钥环的密钥数量和每个密钥的密钥版本没有限制。

在哪些国家/地区可以使用 Cloud KMS?

您可以在支持 Google Cloud 服务的任何国家/地区使用 Cloud KMS。

密钥

Cloud KMS 生成哪些类型的密钥?

请参阅密钥用途和算法

密钥是否存储在 HSM 中?

保护级别HSM 的密钥存储在硬件安全模块 (HSM) 中。

保护级别为 SOFTWARE 的密钥存储在软件中。

受 HSM 支持的密钥绝不会保留在 HSM 之外。

这两种密钥符合什么标准?

Cloud KMS 密钥和使用这些密钥执行的加密操作符合美国联邦信息处理标准 (FIPS) 出版物加密模块的安全要求 140-2

  • 保护级别为 SOFTWARE 的密钥和使用这些密钥执行的加密操作符合 FIPS 140-2 3 级。

  • 保护级别为 HSM 的密钥和使用这些密钥执行的加密操作符合 FIPS 140-2 3 级。

密钥材料是如何生成的?

Cloud KMS 中 SOFTWARE 保护级别的密钥通过 Google 构建的随机数字生成器 (RNG),使用 Google 的通用加密库生成。保护级别为 HSM 的密钥由 HSM 安全地生成,经验证符合 FIPS 140-2 3 级。

生成密钥材料时使用的是哪个库?

Cloud KMS 密钥是使用 Google 的通用加密库生成的,该库使用 BoringSSL 实现加密算法。如需了解详情,请参阅 Google 的通用加密库

密钥是否局限于某个地理位置?

密钥属于某个区域,但不局限于该区域。如需了解详情,请参阅 Cloud KMS 网点

我可以自动删除密钥吗?

不可以。

我可以自动轮替密钥吗?

对于密钥用途ENCRYPT_DECRYPT 的密钥,您可以这么做。请参阅自动轮替:设置密钥的轮替周期

对于密钥用途为 ASYMMETRIC_SIGNASYMMETRIC_DECRYPT 的密钥,您不可以这么做。如需了解原因,请参阅非对称密钥轮替

密钥轮替是否会重新加密数据?如果不会,原因是什么?

密钥轮替不会自动重新加密数据。解密数据时,Cloud KMS 知道哪个密钥版本要用于解密。只要密钥版本没有被停用,也没有被销毁,Cloud KMS 就可以使用该密钥版本进行解密。

为什么我不能删除密钥或密钥环?

为防止资源名称冲突,密钥环和密钥资源不可删除。密钥版本也不能删除,但密钥版本材料可以销毁,以使该资源不能再使用。如需了解详情,请参阅对象的生命周期

我可以导出密钥吗?

不可以。根据设计,KEK 不可从 Google 的 KMS 导出。使用这些密钥进行的所有加密和解密操作必须在 Cloud KMS 内完成。此设计有助于防止数据泄露和滥用,可让 Cloud KMS 对密钥的使用情况进行审计跟踪。

我可以导入密钥吗?

可以。您只能导入保护级别HSMSOFTWARE 的密钥。如需了解详情,请参阅导入密钥

以下产品独立于 Cloud KMS,并且支持客户提供的加密密钥 (CSEK) 功能。

产品 CSEK 主题
Compute Engine 使用客户提供的加密密钥来加密磁盘
Cloud Storage 使用客户提供的加密密钥

销毁密钥版本后,多长时间内我可以将其恢复?

在安排密钥版本进行销毁到实际销毁之前,有 24 个小时的缓冲期。在此期间,您可以根据需要恢复密钥版本

我可以在安排的密钥销毁之前更改 24 小时的期限吗?

不可以。

更改密钥时,多长时间后更改才会生效?

对 Cloud KMS 资源执行的某些操作具有高度一致性,而其他操作具有最终一致性,可能需要长达 3 小时才能完成传播。如需了解详情,请参阅 Cloud KMS 资源一致性

为什么我的密钥处于 PENDING_GENERATION 状态?

由于生成密钥材料的 CPU 费用,非对称密钥版本的创建可能需要几分钟。受硬件安全模块 (HSM) 保护的密钥版本也需要一些时间。当新创建的密钥版本准备就绪时,其状态将自动更改为 ENABLED。

授权和身份验证

如何向 Cloud KMS API 进行身份验证?

客户端身份验证的方式可能会有所不同,具体取决于运行代码的平台。如需了解详情,请参阅访问 API

我应该使用哪些 Cloud IAM 角色?

为了执行最小权限原则,请确保组织中的用户和服务帐号仅具有执行其预期职能所必不可少的权限。如需了解详情,请参阅职责分离

当我删除 Cloud IAM 权限时,多长时间后删除才会生效?

权限的删除应该会在不到一小时内生效。

其他

什么是经过身份验证的额外数据,何时使用?

经过身份验证的额外数据 (AAD) 是您在加密或解密请求中传递给 Cloud KMS 的任意字符串。AAD 用作完整性检查,可以帮助保护您的数据免受“混淆代理攻击”。如需了解详情,请参阅经过身份验证的额外数据

数据访问日志是否默认启用?如何启用数据访问日志?

默认情况下,系统不会启用数据访问日志。如需了解详情,请参阅启用数据访问日志

Cloud KMS 密钥与服务帐号密钥的关系如何?

服务帐号密钥用于 Google Cloud 中的服务之间的身份验证。服务帐号密钥与 Cloud KMS 密钥无关。

Cloud KMS 密钥与 API 密钥的关系如何?

API 密钥是一个简单的加密字符串,用于在调用不需要访问私密用户数据的特定 API 时使用。API 密钥用于跟踪与项目关联的 API 请求以进行配额计算和结算。API 密钥与 Cloud KMS 密钥无关。