HMAC 密钥

本页面讨论基于哈希的消息身份验证代码 (HMAC) 密钥,您可以使用该密钥验证针对 Cloud Storage 的请求。如需阅读有关创建和管理服务帐号 HMAC 密钥的指南,请参阅管理服务帐号的 HMAC 密钥

概览

HMAC 密钥是一种凭据,可以与 Cloud Storage 中的服务帐号测试版或用户帐号相关联。您可以使用 HMAC 密钥创建签名,这些签名随后会包含在针对 Cloud Storage 的请求中。签名表明某个给定请求是由用户帐号或服务帐号授权的。

HMAC 密钥有两个主要组成部分:访问权限 ID 和密文。访问权限 ID 和密文唯一地标识 HMAC 密钥,但密文是更敏感的信息,因为它会用来创建签名。

HMAC 密钥在以下情况下很有用:

  • 您想要在其他云存储提供程序与 Cloud Storage 之间移动数据,因为借助 HMAC 密钥,您可以重复使用现有代码访问 Cloud Storage。

存储密文

为服务帐号创建 HMAC 密钥时,系统会向您提供一次密钥的密文。您必须安全地存储密文以及关联的访问权限 ID。如果您丢失了密文,则您或 Google 无法找回密文,您需要为服务帐号创建新的 HMAC 密钥才能继续对请求进行身份验证。

为用户帐号创建 HMAC 密钥时,您可以通过 Google Cloud Platform Console 查看该密钥的密文。如需执行此操作,您必须使用用户帐号登录到 GCP Console。您可以在 Cloud Storage 的互操作标签页的设置菜单中找到与用户帐号关联的密文。

限制

  • HMAC 密钥只能用于向 XML API 发出请求,而不能用于向 JSON API 发出请求。

  • 每个服务帐号最多可以有 5 个 HMAC 密钥。删除的密钥不计入此限额。

从用户帐号 HMAC 密钥进行迁移

通常情况下,将 HMAC 密钥与服务帐号相关联比与用户帐号相关联更合适,尤其是对于生产工作负载:

  • 借助服务帐号,您可以更好地实施管理监控措施,并消除个人用户所拥有帐号的隐私和安全隐患。

  • 服务帐号有助于降低因依赖用户帐号而导致服务中断的风险,例如当用户帐号因为用户离开项目或公司而停用时。

如果您目前将 HMAC 密钥与用户帐号搭配使用,但想要迁移到服务帐号,请注意以下几点:

  • 您的项目必须拥有服务帐号,并且拥有与其相关联的 HMAC 密钥

  • 服务帐号必须获得在 Cloud Storage 中执行操作所需的权限

    Storage Object Admin 角色拥有使用对象的广泛权限,但您可能需要使用单独的服务帐号执行不同的操作。例如,您可能需要一个用于读取的服务帐号(该帐号将具有 Storage Object Viewer 角色),以及另一个用于写入的服务帐号(该帐号将具有 Storage Object Creator 角色)。

  • 您应进行测试,以确保服务帐号的行为符合预期,然后再将任何更新推送到生产环境。

  • 在您的生产工作改用服务帐号 HMAC 密钥后,您应检查 auth_method_count Stackdriver 指标,以验证系统不再使用与用户帐号相关联的 HMAC 密钥。

  • 验证系统不再使用用户帐号 HMAP 密钥后,您应删除这些 HMAC 密钥。这样做可以降低数据遭受不当访问的风险。

  • 如果用户帐号不再用于访问 Cloud Storage 资源,请撤消该帐号对 Cloud Storage 所具有的任何访问权限。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud Storage
需要帮助?请访问我们的支持页面