Si vous appelez Cloud Key Management Service à l'aide de bibliothèques gRPC créées manuellement, vous devez spécifier une valeur x-google-request-params
dans les métadonnées ou dans l'en-tête de l'appel. Si la valeur x-google-request-params
est utilisée de manière adéquate, l'appel est acheminé vers la région appropriée pour vos ressources Cloud KMS.
Définissez la valeur x-google-request-params
sur un champ de la requête de la méthode, comme indiqué dans le tableau suivant.
Définition du champ de la requête
Les exemples suivants montrent où spécifier le nom de la ressource dans différentes méthodes. Remplacez les éléments mis en forme comme des espaces réservés place-holder par les valeurs réelles utilisées dans vos ID de ressources Cloud KMS.
Exemple avec la méthode Decrypt
Si vous appelez Decrypt, vous devez renseigner les champs suivants dans la requête :
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' ciphertext: 'iQALWM/r6alAxQm0VQe3...'
La valeur attribuée au champ name
correspond au nom de ressource de votre CryptoKey.
Pour que l'appel soit acheminé correctement, vous devez également inclure ce nom de ressource dans les métadonnées de l'appel, au format suivant :
x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Exemple avec la méthode CreateKeyRing
Si vous appelez CreateKeyRing, vous devez renseigner les champs suivants dans la requête :
parent: 'projects/project-id/locations/location/' key_ring_id: 'myKeyRing' ...
Les métadonnées de l'appel doivent également contenir le nom de la ressource parent
:
x-goog-request-params: 'parent=projects/project-id/locations/location/'
Exemple avec la méthode UpdateCryptoKey
Si vous appelez UpdateCryptoKey, vous devez renseigner les champs suivants dans la requête :
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' field_mask: ...
Les métadonnées doivent également contenir le nom de la ressource name
. Notez que le format utilise crypto_key.name=
, et non name=
:
x-goog-request-params: 'crypto_key.name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Ajouter des métadonnées à l'aide de C++
Si vous utilisez C++, appelez ClientContext::AddMetadata
avant d'effectuer l'appel RPC pour ajouter les informations appropriées aux métadonnées de l'appel.
Par exemple, si vous ajoutez des métadonnées pour un appel à Decrypt :
context.AddMetadata("x-goog-request-params", "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");
Vous pouvez ensuite transmettre le contexte à votre appel de méthode comme d'habitude, avec vos tampons de protocole de requête et de réponse.