Я пытаюсь получить служебную учетную запись для создания больших двоичных объектов в Google Cloud Storage из скрипта Python, но у меня возникают проблемы с учетными данными.
1) Я создаю служебную учетную запись для своего проекта изатем загрузите файл ключа в json:
"home/user/.config/gcloud/service_admin.json"
2) Я предоставляю служебной учетной записи необходимые учетные данные (через gcloud в подпроцессе)
roles/viewer, roles/storage.admin, roles/resourcemanager.projectCreator, roles/billing.user
Затем я хотел бы получить доступ кведро в GCS
from google.cloud import storage
import google.auth
credentials, project = google.auth.default()
client = storage.Client('myproject', credentials=credentials)
bucket = client.get_bucket('my_bucket')
К сожалению, это приводит к:
google.api_core.exceptions.Forbidden: 403 GET
https://www.googleapis.com/storage/v1/b/my_bucket?projection=noAcl:
s_account@myproject.iam.gserviceaccount.com does not have
storage.buckets.get access to my_bucket
Мне повезет больше, если я установлю переменную окружения
export GOOGLE_APPLICATION_CREDENTIALS="home/user/.config/gcloud/service_admin.json"
и перезапущускрипт.Однако я хочу, чтобы все это выполнялось в одном экземпляре сценария, который создает учетные записи и продолжает создавать необходимые файлы в корзинах.Как получить доступ к my_bucket, если я знаю, где находится мой файл учетных данных json.