Gooble Cloud KMS: код зависает при вызове клиента KMS - PullRequest
0 голосов
/ 02 октября 2019

Я хочу зашифровать и расшифровать значения сына с помощью google cloud kms, и я использую этот код в качестве примера https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/kms/src/main/java/com/example/CryptFile.java

try (KeyManagementServiceClient client = KeyManagementServiceClient.create()) {

  // The resource name of the cryptoKey
  String resourceName = CryptoKeyName.format(projectId, locationId, keyRingId, cryptoKeyId);

  // Encrypt the plaintext with Cloud KMS.
  EncryptResponse response = client.encrypt(resourceName, ByteString.copyFrom(plaintext));

  // Extract the ciphertext from the response.
  return response.getCiphertext().toByteArray();
}

Когда код выполняет строку client.encrypt(resourceName, ByteString.copyFrom(plaintext));, он зависает, и яя не получаю никакого ответа.

Если я использую команду gcloud для шифрования / дешифрования, она работает.

Я запускаю свое приложение по стандарту App Engine (runtime java8) и зависимости, которую я используюis

   <dependency>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-kms</artifactId>
        <version>1.29.0</version>
    </dependency>

Я сделал некоторые изменения в своем коде для получения учетных данных:

    AppIdentityService appIdentityService = AppIdentityServiceFactory.getAppIdentityService();
    GoogleCredentials credentials = AppEngineCredentials.newBuilder().setScopes(Arrays.asList("https://www.googleapis.com/auth/cloudkms")).
            setAppIdentityService(appIdentityService).build();

    FixedCredentialsProvider credentialsProvider = FixedCredentialsProvider.create(credentials);
    KeyManagementServiceSettings kmsSettings = KeyManagementServiceSettings.newBuilder().setCredentialsProvider(credentialsProvider).build();

    try (KeyManagementServiceClient client = KeyManagementServiceClient.create(kmsSettings)) {

Но я всегда получаю сообщение «НЕАУТЕНТИФИЦИРОВАНО: Сбой при вычислении метаданных учетных данных».

ЛюбойПомогите? Пожалуйста, дайте мне знать, если я что-то упустил здесь.

С уважением

...