수동으로 생성된 gRPC 라이브러리를 사용하여 Cloud Key Management Service를 호출하는 경우 호출의 메타데이터 또는 헤더에 x-google-request-params
값을 지정해야 합니다. x-google-request-params
의 적절한 사용은 Cloud KMS 리소스의 적절한 리전으로 호출을 라우팅합니다.
x-google-request-params
값을 다음 표에 표시된 메서드 요청의 필드로 설정합니다.
요청 필드 설정
다음 예에서는 다양한 메서드에서 리소스 이름을 지정하는 위치를 보여줍니다. place-holder 스타일의 텍스트를 Cloud KMS 리소스 ID에 사용된 실제 값으로 바꿉니다.
Decrypt 예
Decrypt를 호출하는 경우 요청에서 다음 필드를 채워야 합니다.
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' ciphertext: 'iQALWM/r6alAxQm0VQe3...'
name
필드에 할당된 값은 CryptoKey의 리소스 이름입니다.
호출을 올바르게 라우팅하려면 호출 메타데이터에 이 리소스 이름도 다음과 같은 형식으로 포함해야 합니다.
x-goog-request-params: 'name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
CreateKeyRing 예
CreateKeyRing을 호출하는 경우 요청에서 다음 필드를 채워야 합니다.
parent: 'projects/project-id/locations/location/' key_ring_id: 'myKeyRing' ...
호출 메타데이터에는 parent
리소스 이름도 포함되어야 합니다.
x-goog-request-params: 'parent=projects/project-id/locations/location/'
UpdateCryptoKey 예
UpdateCryptoKey를 호출하는 경우 요청에서 다음 필드를 채워야 합니다.
name: 'projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/' field_mask: ...
메타데이터에는 name
리소스 이름도 포함되어야 합니다. 형식은 name=
가 아닌 crypto_key.name=
을 사용합니다.
x-goog-request-params: 'crypto_key.name=projects/project-id/locations/location/keyRings/key-ring/cryptoKeys/key-name/'
C++를 사용하여 메타데이터 추가
C ++를 사용하는 경우에는 RPC 호출을 수행하기 전에 ClientContext::AddMetadata
를 호출하여 호출 메타데이터에 적절한 정보를 추가합니다.
예를 들어 Decrypt 호출의 메타데이터를 추가하는 경우 다음과 같습니다.
context.AddMetadata("x-goog-request-params", "name=projects/project-id/locations/location/keyRings/key-ring-name/cryptoKeys/key-name/");
그런 다음 평소와 같이 요청 및 응답 프로토콜 버퍼와 함께 컨텍스트를 메서드 호출에 전달할 수 있습니다.