HMAC 密钥

设置

本页面讨论基于哈希的消息认证码 (HMAC) 密钥,您可以使用该密钥验证针对 Cloud Storage XML API 的请求。当您想要在其他云存储服务商与 Cloud Storage 之间移动数据时,HMAC 密钥很有用,因为借助 HMAC 密钥,您可以重复使用现有代码访问 Cloud Storage。

概览

HMAC 密钥是一种与账号(通常是服务账号)关联的凭据。您可以使用 HMAC 密钥通过 HMAC-SHA256 签名算法创建签名。您创建的签名随后会包含在对 Cloud Storage XML API 的请求中。签名表明给定请求是由与 HMAC 密钥关联的账号授权的。

HMAC 密钥有两个主要组成部分:访问权限 ID 和密文。

  • 访问 ID:与特定账号关联的字母数字字符串。

    • 与服务账号关联时,该字符串的长度为 61 个字符。

    以下示例展示了访问 ID:

    GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA

  • 密文:一个包含 40 个字符的 Base-64 编码字符串,该字符串与特定的访问权限 ID 关联。密文是只有您和 Cloud Storage 知道的预共享密钥。您可以使用密文创建身份验证过程中将会用到的签名。下面展示了 Secret 的一个示例:

    bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ

访问权限 ID 和密文唯一地标识 HMAC 密钥,但密文是更敏感的信息,因为它会用来创建签名。

您可以视需要对资源启用 restrictAuthTypes 限制条件,以限制由 HMAC 密钥签名的请求的访问权限。

存储密文

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

存储密文的最佳做法

  • 请勿透露 HMAC 密钥的密文。您应该像对待访问凭据那样来对待 HMAC 密钥的密文。

  • 为保证安全性,建议您在轮替密钥时定期更改您的密钥。

  • 如果您认为其他人正在使用您的 HMAC 密钥,则应立即删除受影响的 HMAC 密钥并创建新的 HMAC 密钥。

  • 更改 HMAC 密钥时,应先使用新 HMAC 密钥更新您的代码,然后再删除旧密钥。删除 HMAC 密钥时,这些密钥会立即失效且无法恢复。

限制

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

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

  • 创建后,服务账号 HMAC 密钥最长可能需要等待 60 秒才能使用。删除服务账号后,属于该服务账号的 HMAC 密钥可能在最长 5 分钟内继续有效。相比之下,恢复删除的拥有 HMAC 密钥的服务账号后,HMAC 密钥最长可能需要等待 5 分钟才能再次可用。

  • 如果您对某个资源启用 restrictAuthTypes 限制条件,则不能再为该资源中指定的账号类型创建或激活 HMAC 密钥。

后续步骤