Не удалось загрузить учетные данные по умолчанию диспетчера облачных секретов Google - используйте авторизованного пользователя CLI

Я хотел бы, чтобы мое приложение nodeJS аутентифицировало себя локально с моими учетными данными IAM, однако, когда я запускаю базовую функцию secrets manager ниже:

// config/secret_manager.js
const { SecretManagerServiceClient } = require('@google-cloud/secret-manager')

const client = new SecretManagerServiceClient()

async function getSecret(name) {
  const [version] = await client.accessSecretVersion({ name })
  const secretValue = JSON.parse(version.payload.data.toString())

  return secretValue
}

module.exports = getSecret

Я получаю сообщение об ошибке:

Не удалось загрузить учетные данные по умолчанию. Перейдите к https://cloud.google.com/docs/authentication/getting-started для получения дополнительной информации. в GoogleAuth.getApplicationDefaultAsync

Я не могу найти никакой документации о том, как использовать мои учетные данные CLI локально, есть идеи?

(Я не хочу использовать конфигурацию служебной учетной записи JSON)


person Kevin Danikowski    schedule 16.05.2021    source источник
comment
Поскольку вы отметили Node.js, вам, вероятно, следует использовать учетную запись службы, а не учетные данные пользователя. Для отладки можно использовать учетные данные пользователя, но это не рекомендуется для рабочих сценариев. При запуске кода в службе вычислений Google следует использовать учетные данные из метаданных. Обновите свой вопрос, указав более подробную информацию об окружающей среде.   -  person John Hanley    schedule 16.05.2021
comment
@JohnHanley в CloudRun не будет ли эта же функция захватывать любую доступную учетную запись службы?   -  person Kevin Danikowski    schedule 16.05.2021
comment
Код в вашем вопросе будет извлекать учетные данные из метаданных. Ваш ответ не будет работать в Cloud Run. Ключевой момент — не использовать учетные данные пользователя там, где следует использовать учетную запись службы, что почти всегда имеет место для одной из вычислительных служб. SDK выведут предупреждение, вы будете ограничены квотами и т. д.   -  person John Hanley    schedule 16.05.2021


Ответы (1)


Даже если вы прошли аутентификацию с помощью gcloud CLI вам необходимо установить логин приложения по умолчанию. Это решается запуском gcloud auth application-default login

Источник: Не удалось загрузить учетные данные по умолчанию? (Руководство по Node.js Google Compute Engine)

person Kevin Danikowski    schedule 16.05.2021