Мы используем проект 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
возвращает ожидаемого пользователя, а когда он не работает, он сообщает об учетной записи службы по умолчанию.
Кто-нибудь знает, почему пользователь меняется между сборками проекта и как этого можно избежать?
Другое наблюдение:
Спасибо!
Проблема здесь в том, что на мой вопрос ответ «да».
Может мое предположение неверно?
Кажется, что проект работал большую часть времени, потому что он в основном запускался на агенте после того, как он запустил другой проект (в данном случае конвейер), который выполнял аутентификацию.
Исправление заключалось в том, чтобы также выполнять аутентификацию в моем проекте, и с недели это всегда работало.