Utilizzo di gRPC con Cloud KMS

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Se utilizzi librerie gRPC create manualmente per effettuare chiamate a Cloud Key Management Service, devi specificare un valore x-google-request-params nei metadati o nell'intestazione della chiamata. Il corretto utilizzo di x-google-request-params instraderà la chiamata all'area geografica appropriata per le tue risorse Cloud KMS.

Imposta il valore x-google-request-params su un campo nella richiesta del metodo come mostrato nella tabella seguente.

Metodo Campo di richiesta
Decriptazione asimmetrica AssymmetricDecryptRequest.name
Segno asimmetrico NomeasimmetricoRichiesta.nome
CreaCryptoKey CreaCryptoKeyRequest.parent
CreateCryptoKeyVersion CreaCryptoKeyVersionRequest.parent
CreateKeyRing CreateKeyRingRequest.parent
Decriptazione NomeDecryptRequest.name
DestroyCryptoKeyVersion DestroyCryptoKeyVersionRequest.name
Cripta NomeCripRequest.name
GetCryptoKey GetCryptoKeyRequest.name
GetCryptoKeyVersion GetCryptoKeyVersionRequest.name
GetKeyRing GetKeyRingRequest.name
GetPublicKey GetPublicKeyRequest.name
ListCryptoKeyVersions ListCryptoKeyVersionsRequest.parent
ListCryptoKey ListCryptoKeyRequestRequest.parent
ListKeyRings ListKeyRingsRequest.parent
RipristinaCryptoKeyVersion RestoreCryptoKeyVersionRequest.name
UpdateCryptoKey UpdateCryptoKeyRequest.crypto_key.name
UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersionRequest.name
UpdateCryptoKeyVersion UpdateCryptoKeyVersionRequest.crypto_key_version.name

Impostazione del campo di richiesta

Gli esempi seguenti mostrano dove specificare il nome della risorsa in vari metodi. Sostituisci il testo con stile place-holder con i valori effettivi utilizzati nei tuoi ID risorsa di Cloud KMS.

Esempio di decriptazione

Se stai effettuando una chiamata a Decriptazione, devi compilare i seguenti campi nella richiesta:

name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
ciphertext: 'iQALWM/r6alAxQm0VQe3...'

Il valore assegnato al campo name è il nome della risorsa della tua CryptoKey. Per indirizzare correttamente la chiamata, devi includere anche il nome di questa risorsa nei metadati della chiamata, nel seguente formato:

x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'

Esempio CreateKeyRing

Se stai effettuando una chiamata a CreateKeyRing, devi compilare i seguenti campi nella tua richiesta:

parent: 'projects/project-id/locations/location/'
key_ring_id: 'myKeyRing'
...

I metadati della chiamata devono contenere anche il nome della risorsa parent:

x-goog-request-params: 'parent=projects/project-id/locations/location/'

Esempio UpdateCryptoKey

Se stai effettuando una chiamata ad UpdateCryptoKey, devi completare i seguenti campi nella richiesta:

name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
field_mask: ...

I metadati devono contenere anche il nome della risorsa name. Tieni presente che il formato utilizza crypto_key.name=, non name=:

x-goog-request-params: 'crypto_key.name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'

Aggiungere metadati utilizzando C++

Se utilizzi C++, chiama ClientContext::AddMetadata prima di effettuare la chiamata RPC per aggiungere le informazioni appropriate ai metadati della chiamata.

Ad esempio, se aggiungi metadati per una chiamata a Decripta:

context.AddMetadata("x-goog-request-params",
                    "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");

Puoi quindi passare il contesto alla chiamata al metodo come di consueto, insieme ai buffer del protocollo di richiesta e risposta.