Этот метод помогает перейти от старой службы списков контроля доступа по ключу (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 | JWT-токен, подтверждающий, что пользователю разрешено расшифровать ключ для |
original_kacls_url | URL-адрес KACLS текущего обернутого ключа. |
reason | JSON-строка, передающая дополнительную информацию об операции. Предоставленный JSON-файл должен быть очищен перед отображением. Максимальный размер: 1 КБ. |
wrapped_key | Объект 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 | Двоичный объект, закодированный в base64. См. хеш ключа ресурса . |
wrapped_key | Двоичный объект, закодированный в формате 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="
}