«недостаточно аутентификации» из Google API при звонке из кластера K8S - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь сообщить об ошибках Node.js в Google Error Reporting из одного из наших развертываний kubernetes, работающих в кластере GCP / GKE с RBAC.(т.е. разрешения, определенные в учетной записи службы, связанной с кластером)

const googleCloud = require('@google-cloud/error-reporting');
const googleCloudErrorReporting = new googleCloud.ErrorReporting();
googleCloudErrorReporting.report('[test] dummy error message');

Это работает только в определенных средах:

  • работает при запуске на моем ноутбуке с использованием учетной записи службыс ролью «Запись ошибок»
  • , которая работает при запуске в моем кластере как задание K8S, после добавления роли «Запись ошибок» к учетной записи службы этого кластера
  • это вызывает следующееошибка при вызове из моего приложения Node.js, запущенного в одном из моих развертываний K8S:

ОШИБКА: @ google-cloud / error-сообщить: Обнаружена ошибка при попытке передать ошибку вAPI отчетов об ошибках Stackdriver.

Ошибка: у запроса недостаточно областей проверки подлинности.

Такое ощущение, что задание получило изменения разрешений учетной записи службы кластера, тогда как мое развертываниенет.

Я пытался заново создать развертывание, чтобы оно обновляло свой токен аутентификации, но ошибка все еще происходит ...

Есть идеи?

ОБНОВЛЕНИЕ : я закончил следуя совету Жереми Жиро : создайте учетную запись службы и привяжите ее к моему развертыванию.Это работает!

1 Ответ

0 голосов
/ 26 октября 2018

Сообщение об ошибке связано с областями доступа, установленными в кластере при использовании учетной записи службы по умолчанию.Вы должны разрешить доступ к соответствующему API.

Как вы упомянули, создание отдельной учетной записи службы, предоставление ей соответствующих разрешений IAM и привязка ее к вашему кластеру или рабочей нагрузке также обойдут эту ошибку.

...