Я пытаюсь определить минимальный набор разрешений, который необходим учетной записи службы для записи файла в корзину GCS.Я думал, что мог бы использовать storage.objectAdmin, но с использованием примера кода, предоставленного для Python SDK, он завершается с ошибкой: my-service-account@my-project.googleapis.com does not have storage.buckets.get access to my-bucket
client = _get_storage_client()
bucket = client.bucket(current_app.config['CLOUD_STORAGE_BUCKET'])
blob = bucket.blob(filename)
blob.upload_from_string(
file_stream,
content_type=content_type)
Это потому, что вызов client.bucket фактически читает метаданные изведро, которое не предоставляет storage.objectAdmin.Это исправляет себя, когда я использую разрешения storage.admin, но это также позволяет учетной записи удалять всю корзину, чего я не хочу.Добавление storage.legacyBucketReader также работает, но тогда я использую унаследованную роль, которую я не уверен, что мне следует делать больше.
Какова лучшая практика здесь?