方法: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

一个 JWT,用于断言用户有权为 resource_name 解封装密钥。请参阅授权令牌

original_kacls_url

string

当前 wrapped_key 的 KACL 的网址。

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://original.example.com/kacls/v1",
   "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="
}