Метод: переобертка

Этот метод помогает перейти от старой службы списков контроля доступа по ключу (KACLS1) к более новой KACLS (KACLS2). Он принимает ключ шифрования данных (DEK), обернутый с помощью API wrap KACLS1, и возвращает DEK, обернутый с помощью API wrap KACLS2.

HTTP-запрос

POST https:// KACLS_URL /rewrap

Замените KACLS_URL на URL-адрес службы списков контроля доступа по ключу (KACLS).

Параметры пути

Никто.

Текст запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "authorization": string,
  "original_kacls_url": string,
  "reason": string,
  "wrapped_key": string
}
Поля
authorization

string

JWT-токен, подтверждающий, что пользователю разрешено расшифровать ключ для resource_name . См. токены авторизации .

original_kacls_url

string

URL-адрес KACLS текущего обернутого ключа.

reason

string (UTF-8)

JSON-строка, передающая дополнительную информацию об операции. Предоставленный JSON-файл должен быть очищен перед отображением. Максимальный размер: 1 КБ.

wrapped_key

string

Объект base64, возвращаемый функцией wrap .

Ответный текст

В случае успеха этот метод возвращает непрозрачный бинарный объект, который будет сохранен 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 КБ.

Пример

В этом примере представлены образец запроса и ответа для метода 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="
}