gRPC mit Cloud KMS verwenden

Wenn Sie manuell erstellte gRPC-Bibliotheken für Aufrufe an Cloud KMS verwenden, müssen Sie in den Metadaten oder dem Header des Aufrufs einen x-google-request-params-Wert angeben. Bei ordnungsgemäßer Anwendung von x-google-request-params wird der Aufruf an die entsprechende Region Ihrer Cloud KMS-Ressourcen weitergeleitet.

Weisen Sie den x-google-request-params-Wert einem Feld in der Anfrage der Methode zu, wie in der folgenden Tabelle gezeigt.

Methode Anfragefeld
AsymmetricDecrypt AsymmetricDecryptRequest.name
AsymmetricSign AsymmetricSignRequest.name
CreateCryptoKey CreateCryptoKeyRequest.parent
CreateCryptoKeyVersion CreateCryptoKeyVersionRequest.parent
CreateKeyRing CreateKeyRingRequest.parent
Decrypt DecryptRequest.name
DestroyCryptoKeyVersion DestroyCryptoKeyVersionRequest.name
Encrypt EncryptRequest.name
GetCryptoKey GetCryptoKeyRequest.name
GetCryptoKeyVersion GetCryptoKeyVersionRequest.name
GetKeyRing GetKeyRingRequest.name
GetPublicKey GetPublicKeyRequest.name
ListCryptoKeyVersions ListCryptoKeyVersionsRequest.parent
ListCryptoKeys ListCryptoKeysRequest.parent
ListKeyRings ListKeyRingsRequest.parent
RestoreCryptoKeyVersion RestoreCryptoKeyVersionRequest.name
UpdateCryptoKey UpdateCryptoKeyRequest.crypto_key.name
UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersionRequest.name
UpdateCryptoKeyVersion UpdateCryptoKeyVersionRequest.crypto_key_version.name

Anfragefeld einstellen

In den folgenden Beispielen sehen Sie, wo der Ressourcenname in verschiedenen Methoden angegeben wird.

Decrypt-Beispiel

Wenn Sie Decrypt aufrufen, müssen Sie die folgenden Felder in der Anfrage ausfüllen:

name: 'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/'
ciphertext: 'iQALWM/r6alAxQm0VQe3...'

Der Wert, der dem Feld name zugewiesen wird, ist der Ressourcenname Ihres CryptoKey. Damit der Aufruf ordnungsgemäß weitergeleitet wird, müssen Sie diesen Ressourcennamen auf folgende Weise in die Metadaten des Aufrufs einfügen:

x-goog-request-params: 'name=projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/'

CreateKeyRing-Beispiel

Wenn Sie CreateKeyRing aufrufen, müssen Sie die folgenden Felder in der Anfrage ausfüllen:

parent: 'projects/[PROJECT_ID]/locations/[LOCATION]/'
key_ring_id: 'myKeyRing'
...

Die Metadaten des Aufrufs müssen außerdem den Namen der parent-Ressource enthalten:

x-goog-request-params: 'parent=projects/[PROJECT_ID]/locations/[LOCATION]/'

UpdateCryptoKey-Beispiel

Wenn Sie UpdateCryptoKey aufrufen, müssen Sie die folgenden Felder in der Anfrage ausfüllen:

name: 'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/'
field_mask: ...

Die Metadaten des Aufrufs müssen außerdem den Namen der name-Ressource enthalten: Beachten Sie, dass das Format statt name= die Anweisung crypto_key.name= verwendet.

x-goog-request-params: 'crypto_key.name=projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/'

Metadaten mit C++ hinzufügen

Wenn Sie C++ verwenden, rufen Sie vor dem RPC-Aufruf ClientContext::AddMetadata auf, um den Metadaten des Aufrufs die entsprechenden Informationen hinzuzufügen.

Wenn Sie Metadaten für einen Aufruf von Decrypt hinzufügen, sieht das in etwa so aus:

context.AddMetadata("x-goog-request-params",
                    fmt.Sprintf("%s=%v",
                                "name",
                                "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY]/"))

Anschließend können Sie den Kontext, zusammen mit den Anfrage- und Antwortprotokollpuffern, wie gewohnt an den Methodenaufruf übergeben.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Cloud KMS-Dokumentation