Как передать содержимое в GOOGLE_APPLICATION_CREDENTIALS, а не путь к файлу?

#google-kubernetes-engine #gcloud #google-iam #google-secret-manager

#google-kubernetes-engine #gcloud #google-iam #google-secret-manager

Вопрос:

Есть ли какой-нибудь способ использовать переменную GOOGLE_APPLICATION_CREDENTIALS env и передать содержимое файла в нее, а не путь к файлу, на самом деле я хочу использовать учетную запись службы из моего приложения NodeJS, но мое условие таково, что я не могу использовать ее через файл, но я могу передать ее содержимое через мой код NodeJS.

Комментарии:

1. Вы хотите, чтобы ваш код NodeJS был доступен как содержимое переменной среды GOOGLE_APPLICATION_CREDENTIALS в Pod ?

2. да, я хочу использовать содержимое, сгенерированное моим кодом NodeJS в GOOGLE_APPLICATION_CREDENTIALS

3. Где генерируется это содержимое? Доступно ли оно до запуска модуля?

Ответ №1:

Если вы используете GKE, вам следует использовать идентификатор рабочей нагрузки вместо передачи учетных данных учетной записи службы. Это более безопасный и предпочтительный способ.

Вне GKE / GCP вы можете создать пользовательский клиент аутентификации:

 const creds = JSON.parse(process.env.GOOGLE_CREDS);
this.auth = new GoogleAuth({
  scopes: [...],
  credentials: creds,
});