Si usas bibliotecas gRPC creadas manualmente para hacer llamadas a Cloud Key Management Service, debes especificar un valor de x-google-request-params
en los metadatos o en el encabezado de la llamada. El uso adecuado de x-google-request-params
dirigirá la llamada a la región correspondiente de tus recursos de Cloud KMS.
Asigna el valor x-google-request-params
a un campo de la solicitud del método, tal como se muestra en la siguiente tabla.
Definir el campo de solicitud
En los siguientes ejemplos se muestra dónde especificar el nombre del recurso en varios métodos. Sustituye el texto con el estilo place-holder por los valores reales que se usan en los IDs de tus recursos de Cloud KMS.
Ejemplo de descifrado
Si vas a hacer una llamada a Decrypt, debes rellenar los siguientes campos en tu solicitud:
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' ciphertext: 'iQALWM/r6alAxQm0VQe3...'
El valor asignado al campo name
es el nombre del recurso de tu CryptoKey.
Para enrutar la llamada correctamente, también debes incluir este nombre de recurso en los metadatos de la llamada, con el siguiente formato:
x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Ejemplo de CreateKeyRing
Si vas a hacer una llamada a CreateKeyRing, debes rellenar 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 del recurso parent
:
x-goog-request-params: 'parent=projects/project-id/locations/location/'
Ejemplo de UpdateCryptoKey
Si vas a hacer una llamada a UpdateCryptoKey, debes rellenar los siguientes campos en tu 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 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/'
Añadir metadatos con C++
Si usas C++, llama a ClientContext::AddMetadata
antes de hacer la llamada RPC para añadir la información adecuada a los metadatos de la llamada.
Por ejemplo, si añades metadatos a una llamada a Decrypt:
context.AddMetadata("x-goog-request-params", "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");
A continuación, puedes pasar el contexto a la llamada de tu método como de costumbre, junto con tus búferes de protocolo de solicitud y respuesta.