Можно ли реализовать «одностороннюю» схему резервного копирования файлов журналов с помощью Google Cloud Storage: учетная запись службы должна иметь возможность загружать объекты через gsutil rsync, но после этого не должна загружать эти объекты?
Все стандартные списки ACL подразумевают, что запрашивающая сторона будет ВЛАДЕЛЬЦЕЙ для загруженных объектов.
Да, но это не так просто. Модель владения GCS безвозвратно предоставляет право владения учетной записи, которая загрузила объект. Чтобы загрузить объект без сохранения доступа для чтения, вам нужно проявить немного творчества.
Первый вариант: пусть ваш регистратор запросит подписанный URL из другой административной учетной записи. Когда вы используете подписанный URL-адрес для загрузки объекта, учетная запись, сгенерировавшая этот URL-адрес, владеет объектом, а не загрузчиком. Это позволяет вам продавать подписанные URL-адреса пользователю, которые можно использовать для загрузки, но нельзя использовать позже для обратного чтения объекта.
Второй вариант: переместить объект. Хотя исходный объект принадлежит пользователю, добавившему его, если объект копируется в другое место, а оригинал удален, учетная запись, которая выполняла копирование, становится новым владельцем. Вы даже можете скопировать объект поверх себя с тем же именем объекта. Вы можете использовать уведомления Google Cloud Pub / Sub или Google Cloud Functions, чтобы настроить небольшой триггер, который при каждой загрузке объекта в корзину копирует этот объект поверх себя, чтобы изменить владельца.