Как пометить файлы в хранилище GCP как «Только чтение» для «всех»? - PullRequest
0 голосов
/ 15 апреля 2019

У нас есть хранилище, в котором хранятся конфиденциальные данные в виде файлов JSON.Для соответствия PCI эти файлы должны быть доступны только для чтения.
В корзине будет включена поддержка версий, поэтому Политика хранения не может быть использована.
Я попытался сохранить только одну учетную запись в разрешениях корзины с доступом только для чтения, что (не совсем) частично служит цели.Но любой пользователь с ролью «Редактор» или «Владелец» может редактировать права доступа к файлу и изменять его обратно на «Редактируемый» и изменять файл.
Как ограничить кого-либо и всех, кто не может редактировать или изменять файл GCP?

Возможно ли это технически с помощью Google Cloud Platform?
Если нет, то как максимально сократить доступ к файлу?

РЕДАКТИРОВАТЬ
Я не являюсьКонечно, если мы обязательно включим управление версиями, я буду обсуждать это с командой (как только они появятся) и упомяну то же самое в вопросе.
Так что ответы, которые считают, что «управление версиями не будет включено» или игнорируют управление версиями полностью, также приветствуются.

Ответы [ 2 ]

2 голосов
/ 15 апреля 2019

В следующем ответе предполагается, что вы решите отключить управление версиями, поскольку оно несовместимо с политиками хранения.

Возможно, вам потребуется функция блокировки корзины GCS.Размещение политики хранения в корзине гарантирует, что все текущие и будущие объекты в корзине не могут быть удалены или перезаписаны, пока они не достигнут возраста, определенного вами в политике хранения, что звучит так, как вы хотите.После того, как вы включили его и убедились, что он корректно работает с вашим рабочим процессом, вы можете заблокировать политику на месте, чтобы безвозвратно отозвать вашу способность удалять объекты до указанной даты хранения.

Это серьезное решение для существующеговедро, так что я бы прочитал его перед включением: https://cloud.google.com/storage/docs/bucket-lock

Как только вы решили включить его, вы можете сделать это из консоли или с помощью gsutil:

gsutil retention set 1y gs://my-bucket-name  # 1y = 1 year

Когда вы счастливы и хотите сделать его постоянным:

gsutil retention lock gs://my-bucket-name

Как упомянуто вверху, эта функция несовместима с другим вариантом сохранения объекта: контролем версий.Однако обычно это не проблема, поскольку наиболее распространенный вариант использования версий - это предотвращение случайного удаления, а если ваша цель - предотвратить возможность удаления, управление версиями не требуется.

2 голосов
/ 15 апреля 2019

Разрешения Google IAM являются аддитивными, а не вычитающими.Это означает, что любой пользователь с ролью Владельца имеет необходимые разрешения на чтение / запись / изменение / удаление.Вы не можете ограничивать разрешения после предоставления.

Поскольку вы упомянули о соответствии PCI DSS, я рекомендую создать новый проект.В этом проекте назначают владельца проекта.Затем создайте группу и добавьте всех остальных в эту группу.Предоставьте только разрешение на чтение для группового хранилища.Создайте новое ведро в этом проекте и храните объекты, которые вы хотите защитить там.Поскольку существует только один (или несколько) четко определенных владельцев, разрешения на чтение могут быть применены для всех остальных.

Я не знаю способа защиты существующего сегмента с помощью членов IAM с ролями, которые имеют разрешения на записьбез использования политик хранения.Управление версиями защищает данные объектов от уничтожения, поскольку для доступа к ним требуются версии.

Примечание. Вы не можете редактировать или изменять объекты в Google Cloud Storage.Любые изменения требуют создания нового объекта.

...