private String lookupKey(String keyName) {
    String keyLocation = KEYS_DIR + keyName + KEY_EXTENSION;
    monitor.debug(
        () -> format("Getting app key for %s (blob %s) from bucket", keyName, keyLocation));
    byte[] rawKeyBytes = getRawBytes(keyLocation);
    checkState(rawKeyBytes != null, "Couldn't look up: " + keyName);
    return new String(rawKeyBytes).trim();
  }
Store keys and secrets in a cache so we can reduce load on cloud storage / KMS when reading
keys and reading/decrypting secrets several times on startup.

<p>Set the cache to reload keys/secrets periodically so that in the event of a key/secret being
compromised, we can update them without restarting our servers.
extensions/cloud/portability-cloud-google/src/main/java/org/datatransferproject/cloud/google/GoogleAppCredentialStore.java