本页面讨论基于哈希的消息认证码 (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 密钥。