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