GCS getSignedUrl fails: Cannot sign data without client_email

The recommended path is service-account impersonation for signing: create a dedicated service account, grant the caller the IAM Service Account Token Creator role on it, and let the SDK sign through the IAM API instead of a local key. Users on the thread confirmed this works where ADC alone cannot sign. Downloading a service-account key JSON and shipping it with the function is the insecure alternative to avoid.

Source: https://github.com/googleapis/nodejs-storage/issues/360

Source: https://github.com/googleapis/nodejs-storage/issues/360