メソッド: rewrap

この方法は、古い鍵アクセス制御リストサービス(KACLS1)から新しい KACLS(KACLS2)への移行に役立ちます。KACLS1 の wrap API でラップされたデータ暗号鍵(DEK)を取得し、KACLS2 の wrap API でラップされた DEK を返します。

HTTP リクエスト

POST https://KACLS_URL/rewrap

KACLS_URL は、鍵アクセス制御リストサービス(KACLS)の URL に置き換えます。

パスパラメータ

なし。

リクエスト本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "authorization": string,
  "original_kacls_url": string,
  "reason": string,
  "wrapped_key": string
}
フィールド
authorization

string

ユーザーが resource_name の鍵のラップ解除が許可されていることをアサートする JWT。認証トークンをご覧ください。

original_kacls_url

string

現在の wraps_key の KACLS の URL。

reason

string (UTF-8)

オペレーションに関する追加のコンテキストを提供するパススルー JSON 文字列。提供された JSON は、表示する前にサニタイズする必要があります。最大サイズ: 1 KB。

wrapped_key

string

wrap が返す base64 バイナリ オブジェクト。

レスポンスの本文

成功すると、このメソッドは不透明なバイナリ オブジェクトを返します。このオブジェクトは、Google Workspace によって暗号化されたオブジェクトとともに保存され、後続の鍵のラップ解除オペレーションでそのまま送信されます。また、base64 エンコードされた resource_key_hash を返す必要があります。

オペレーションが失敗した場合は、構造化エラー応答が返されます。

バイナリ オブジェクトには、暗号化された DEK の唯一のコピーが含まれている必要があります。実装固有のデータは 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="
}