Si usas bibliotecas gRPC creadas manualmente para realizar llamadas a Cloud Key Management Service, debes especificar un valor x-google-request-params
en los metadatos, o en el encabezado, de la llamada. El uso adecuado de x-google-request-params
enrutará la llamada a la región adecuada para tus recursos de Cloud KMS.
Configura el valor x-google-request-params
para un campo en la solicitud del método, como se indica en la siguiente tabla:
Configuración del campo de la solicitud
En los siguientes ejemplos, se indica dónde especificar el nombre del recurso en diversos métodos. Reemplaza el texto con estilo place-holder con los valores reales usados en tus ID de recursos de Cloud KMS.
Ejemplo de Decrypt
Si vas a realizar una llamada a Decrypt, debes propagar los siguientes campos en tu solicitud:
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' ciphertext: 'iQALWM/r6alAxQm0VQe3...'
El valor que se asigna al campo name
es el nombre de recurso de tu CryptoKey.
Para enrutar la llamada de manera adecuada, también debes incluir este nombre de recurso en los metadatos de la llamada, de la siguiente manera:
x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Ejemplo de CreateKeyRing
Si vas a realizar una llamada a CreateKeyRing, debes propagar los siguientes campos en tu solicitud:
parent: 'projects/project-id/locations/location/' key_ring_id: 'myKeyRing' ...
Los metadatos de la llamada también deben contener el nombre de recurso de parent
parent:
x-goog-request-params: 'parent=projects/project-id/locations/location/'
Ejemplo de UpdateCryptoKey
Si vas a realizar una llamada a UpdateCryptoKey, debes propagar los siguientes campos en la solicitud:
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' field_mask: ...
Los metadatos también deben contener el nombre de recurso de name
. Ten en cuenta que el formato usa crypto_key.name=
, no name=
:
x-goog-request-params: 'crypto_key.name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Cómo agregar metadatos con C++
Si usas C ++, llama a ClientContext::AddMetadata
antes de realizar la llamada RPC para agregar la información adecuada a los metadatos de la llamada.
Por ejemplo, si vas a agregar metadatos para una llamada a Decrypt:
context.AddMetadata("x-goog-request-params", "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");
Después de esto, puedes pasar el contexto a tu llamada al método como de costumbre, junto con tu solicitud y los búferes de protocolo de respuesta.