Método: rewrap

Esse método ajuda a migrar do serviço de lista de controle de acesso a chaves (KACLS1) antigo para o KACLS mais recente (KACLS2). Ela usa uma chave de criptografia de dados (DEK) encapsulada com a API wrap do KACLS1 e retorna uma DEK encapsulada com a API wrap do KACLS2.

Solicitação HTTP

POST https://KACLS_URL/rewrap

Substitua KACLS_URL pelo URL do serviço de lista de controle de acesso a chaves (KACLS).

Parâmetros de caminho

Nenhum.

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação JSON
{
  "authorization": string,
  "original_kacls_url": string,
  "reason": string,
  "wrapped_key": string
}
Campos
authorization

string

Um JWT que afirma que o usuário tem permissão para desencapsular uma chave para resource_name. Consulte tokens de autorização.

original_kacls_url

string

URL do KACLS da wrapped_key atual.

reason

string (UTF-8)

Uma string JSON de transmissão que fornece mais contexto sobre a operação. O JSON fornecido precisa ser limpo antes de ser exibido. Tamanho máximo: 1 KB.

wrapped_key

string

O objeto binário base64 retornado por wrap.

Corpo da resposta

Se for bem-sucedido, esse método vai retornar um objeto binário opaco que será armazenado pelo Google Workspace junto com o objeto criptografado e enviado como está em qualquer operação de desencapsulamento de chave subsequente. Ele também precisa retornar o resource_key_hash codificado em base64.

Se a operação falhar, uma resposta de erro estruturada será retornada.

O objeto binário precisa conter a única cópia da DEK criptografada, e dados específicos da implementação podem ser armazenados nele.

Não armazene a DEK no sistema KACLS. Em vez disso, criptografe e retorne no objeto wrapped_key. Isso evita discrepâncias de ciclo de vida entre o documento e as chaves dele. Por exemplo, para garantir que os dados do usuário sejam totalmente apagados quando ele solicitar ou que as versões anteriores restauradas de um backup possam ser descriptografadas.

O Google não envia solicitações de exclusão para o KACLS quando os objetos são excluídos.

Representação JSON
{
  "resource_key_hash": string,
  "wrapped_key": string
}
Campos
resource_key_hash

string

objeto binário codificado em base64. Consulte hash da chave de recurso.

wrapped_key

string

O objeto binário codificado em base64. Tamanho máximo: 1 KB.

Exemplo

Este exemplo fornece uma solicitação e resposta de amostra para o método rewrap.

Solicitação

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'}"
}

Resposta

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