Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

Спасибо!

Проблема здесь в том, что на мой вопрос ответ «да».

Может мое предположение неверно?

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

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