Se você estiver usando bibliotecas gRPC criadas manualmente para fazer chamadas ao Cloud Key Management Service, especifique um valor x-google-request-params
nos metadados, ou cabeçalho, da chamada. Se x-google-request-params
for usado corretamente, a chamada será encaminhada para a região apropriada para os recursos do Cloud KMS.
Defina o valor x-google-request-params
como um campo na solicitação do método, conforme mostrado na tabela a seguir.
Como configurar o campo de solicitação
Os exemplos a seguir mostram onde especificar o nome do recurso em vários métodos. Substitua o texto com estilo place-holder pelos valores reais usados nos IDs de recurso do Cloud KMS.
Exemplo de Decrypt
Se você estiver fazendo uma chamada para Decrypt, precisará preencher os seguintes campos em sua solicitação:
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' ciphertext: 'iQALWM/r6alAxQm0VQe3...'
O valor atribuído ao campo name
é o nome do recurso da sua CryptoKey.
Para rotear adequadamente a chamada, você também precisa incluir esse nome de recurso nos metadados da chamada, no seguinte formato:
x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Exemplo de CreateKeyRing
Se você estiver fazendo uma chamada para CreateKeyRing, precisará preencher os seguintes campos em sua solicitação:
parent: 'projects/project-id/locations/location/' key_ring_id: 'myKeyRing' ...
Os metadados de chamada também precisam conter o parent
nome do recurso:
x-goog-request-params: 'parent=projects/project-id/locations/location/'
Exemplo de UpdateCryptoKey
Se você estiver fazendo uma chamada para UpdateCryptoKey, precisará preencher os seguintes campos em sua solicitação:
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' field_mask: ...
Os metadados também precisam conter o nome do recurso name
. Observe que o formato usa crypto_key.name=
, e não name=
:
x-goog-request-params: 'crypto_key.name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
Como adicionar metadados usando C++
Se você estiver usando C ++, chame ClientContext::AddMetadata
antes de fazer sua chamada RPC para adicionar as informações apropriadas aos metadados de chamada.
Por exemplo, se você estiver adicionando metadados para uma chamada para Decrypt:
context.AddMetadata("x-goog-request-params", "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");
Em seguida, é possível passar o contexto para a chamada de método como de costume, junto com seus buffers de protocolo de solicitação e de resposta.