Время от времени отказано в разрешении при получении журналов с использованием gcloud через Jenkins, запущенного как GKE

Мы используем проект Jenkins для запуска "gcloud logging read ..." из оболочки для получения журналов из контейнера gcloud, и мы иногда видим ошибку разрешения в скрипте:

ERROR: (gcloud.logging.read) PERMISSION_DENIED: Request had insufficient authentication scopes.

Наши серверы Jenkins работают как Google Kubernetes Engine.

Я не нашел ничего особенного для аутентификации с использованием Kubernetes Engine и предположил, что это похоже на Облако Google, для которого https://cloud.google.com/storage/docs/authentication#libauth сообщает, что для аутентификации

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

Может мое предположение неверно? Я предполагал это, потому что это часто работает.

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

Кто-нибудь знает, почему пользователь меняет между сборками проекта и как этого можно избежать?

Другое наблюдение:

  • Изменение сценария оболочки для проекта в Jenkins, похоже, на время решит проблему.

Спасибо!

0
задан 12 March 2020 в 22:17
1 ответ

Итак, проблема здесь, похоже, в том, что на мой вопрос ответ «да»

Может быть, мое предположение неверно?

Похоже, что проект работал большую часть времени, потому что в основном он запускался на агенте после того, как он запустил другой проект (в данном случае конвейер), который выполнял аутентификацию.

Исправление заключалось в том, чтобы также выполнять аутентификацию в моем проекте, и с недели это всегда работало.

1
ответ дан 30 March 2020 в 01:22

Теги

Похожие вопросы