方法:rewrap

此方法可帮助您从旧的密钥访问控制列表服务 (KACLS1) 迁移到较新的 KACLS (KACLS2)。它接受用 KACLS1 的 wrap API 封装的数据加密密钥 (DEK),并返回使用 KACLS2 的 wrap API 封装的 DEK。

HTTP 请求

POST https://KACLS_URL/rewrap

KACLS_URL 替换为密钥访问控制列表服务 (KACLS) 网址。

路径参数

无。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "authorization": string,
  "original_kacls_url": string,
  "reason": string,
  "wrapped_key": string
}
字段
authorization

string

断言用户有权解封 resource_name 密钥的 JWT。请参阅授权令牌

original_kacls_url

string

当前 wrapped_key 的 KACLS 的网址。

reason

string (UTF-8)

传递 JSON 字符串,提供有关操作的其他上下文。在显示之前,应对提供的 JSON 进行清理。大小上限:1 KB。

wrapped_key

string

wrap 返回的 base64 二进制对象。

响应正文

如果成功,此方法将返回一个不透明的二进制对象,该对象将由 Google Workspace 随加密对象一起存储,并在任何后续密钥解封装操作中按原样发送。它还应该返回 base64 编码的 resource_key_hash

如果操作失败,则应返回结构化错误回复

二进制对象应包含加密 DEK 的唯一副本,并且可将实现专用数据存储在其中。

请勿将 DEK 存储在 KACLS 系统中,而应对其进行加密并在 wrapped_key 对象中返回。这样可以防止文档与其键之间存在生命周期差异。例如,确保在用户请求数据时完全擦除用户的数据,或者确保从备份恢复的先前版本可以解密。

删除对象后,Google 不会向 KACLS 发送删除请求。

JSON 表示法
{
  "resource_key_hash": string,
  "wrapped_key": string
}
字段
resource_key_hash

string

采用 base64 编码的二进制对象。请参阅 资源密钥哈希

wrapped_key

string

采用 base64 编码的二进制对象。大小上限:1 KB。

示例

此示例为 rewrap 方法提供了一个示例请求和响应。

请求

POST https://mykacls.example.com/v1/rewrap

{
   "wrapped_key": "7qTh6Mp+svVwYPlnZMyuj8WHTrM59wl/UI50jo61Qt/QubZ9tfsUc1sD62xdg3zgxC9quV4r+y7AkbfIDhbmxGqP64pWbZgFzOkP0JcSn+1xm/CB2E5IknKsAbwbYREGpiHM3nzZu+eLnvlfbzvTnJuJwBpLoPYQcnPvcgm+5gU1j1BjUaNKS/uDn7VbVm7hjbKA3wkniORC2TU2MiHElutnfrEVZ8wQfrCEpuWkOXs98H8QxUK4pBM2ea1xxGj7vREAZZg1x/Ci/E77gHxymnZ/ekhUIih6Pwu75jf+dvKcMnpmdLpwAVlE1G4dNginhFVyV/199llf9jmHasQQuaMFzQ9UMWGjA1Hg2KsaD9e3EL74A5fLkKc2EEmBD5v/aP+1RRZ3ISbTOXvxqYIFCdSFSCfPbUhkc9I2nHS0obEH7Q7KiuagoDqV0cTNXWfCGJ1DtIlGQ9IA6mPDAjX8Lg==",
   "authorization": "eyJhbGciOi...",
   "original_kacls_url": "https://<kacl1_base_url>",
   "reason": "{client:'drive' op:'read'}"
}

响应

{
    "wrapped_key": "3qTh6Mp+svPwYPlnZMyuj8WHTrM59wl/UI50jo61Qt/QubZ9tfsUc1sD62xdg3zgxC9quV4r+y7AkbfIDhbmxGqP64pWbZgFzOkP0JcSn+1xm/CB2E5IknKsAbwbYREGpiHM3nzZu+eLnvlfbzvTnJuJwBpLoPYQcnPvcgm+5gU1j1BjUaNKS/uDn7VbVm7hjbKA3wkniORC2TU2MiHElutnfrEVZ8wQfrCEpuWkOXs98H8QxUK4pBM2ea1xxGj7vREAZZg1x/Ci/E77gHxymnZ/ekhUIih6Pwu75jf+dvKcMnpmdLpwAVlE1G4dNginhFVyV/199llf9jmHasQQuaMFzQ9UMWGjA1Hg2KsaD9e3EL74A5fLkKc2EEmBD5v/aP+1RRZ3ISbTOXvxqYIFCdSFSCfPbUhkc9I2nHS0obEH7Q7KiuagoDqV0cTNXWfCGJ1DtIlGQ9IA6mPDAjX8Lg==",
    "resource_key_hash": "SXOyPekBAUI95zuZSuJzsBlK4nO5SuJK4nNCPem5SuI="
}