Можно ли использовать GKE Workload Identity для доступа к Google Sheets? - PullRequest
0 голосов
/ 16 апреля 2020

В настоящее время я использую Идентификатор рабочей нагрузки GKE для доступа к ресурсам Google Cloud Platform из GKE. Это очень хорошо работает для облачного хранилища Google и других ресурсов платформы.

Однако при попытке использовать GKE Workload Identity для доступа к Google Sheet я сталкиваюсь с проблемой "недостаточных областей проверки подлинности".

Когда я генерирую файл ключа для учетной записи службы и использую его в своем коде, я могу вручную установить область действия https://www.googleapis.com/auth/spreadsheets. Это работает так, как ожидалось, и я могу получить доступ к листу. Если я изменяю область действия на https://www.googleapis.com/auth/cloud-platform, я получаю ту же ошибку, что и в GKE Workload Identity, «недостаточные области проверки подлинности». Этот результат показывает, что учетная запись службы работает просто отлично, поэтому проблема, похоже, связана с областью, назначенной с помощью идентификатора рабочей нагрузки GKE.

С помощью идентификатора рабочей нагрузки GKE я получаю учетные данные в Python с помощью credentials = google.auth.default() [1]. Объект credentials имеет ожидаемую учетную запись службы, и область действия установлена ​​на https://www.googleapis.com/auth/cloud-platform. Теперь я могу получить доступ к контейнерам и другим облачным ресурсам, к которым имеет доступ учетная запись службы. Однако для Google Sheets требуется область действия https://www.googleapis.com/auth/spreadsheets, но я не нашел способа установить это. Идентификатор рабочей нагрузки (учетная запись службы) и область действия извлекаются с сервера метаданных GKE, работающего в кластере GKE. Из того, что я могу сказать, область действия идентификатора рабочей нагрузки GKE, похоже, жестко запрограммирована на https://www.googleapis.com/auth/cloud-platform. Я не нашел никакой информации о том, можно ли это изменить.

(Я пытался добавить область электронных таблиц в области действия узла GKE. Никакого эффекта. И из того, что я могу понять из документов, это не должно быть связано. )

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

[1] Руководство пользователя - документация google-auth 1.6.2

...