Раздельный доступ к Google Cloud Storage для сотен пользователей

Я планирую запустить сотни веб-сайтов в рамках одного проекта Google Cloud Platform (используя GKE). Каждый из них будет использовать две корзины Google Cloud Storage для хранения своих активов.

Я планировал создать по одной службе для каждого веб-сайта, чтобы предоставлять доступ только к его собственным сегментам. Однако существует ограничение в 100 сервисных аккаунтов для каждого проекта, которое, по-видимому, не может быть увеличено.

Как я могу убедиться, что каждый веб-сайт имеет доступ только к сегментам (или подпути в сегменте), которые разрешено просматривать?


person Robert Lemke    schedule 25.08.2017    source источник
comment
Почему бы просто не создать сотни проектов с одним веб-сайтом на проект вместо сотен веб-сайтов в рамках одного проекта?   -  person Robin-Hoodie    schedule 28.08.2017
comment
@NexusDuck Веб-сайты должны находиться в одном кластере Kubernetes, чтобы оптимизировать использование ресурсов (вычислительных экземпляров). Но если подумать, можно создать проект для каждого веб-сайта и использовать его только для сегментов. Не оптимально, но выполнимо.   -  person Robert Lemke    schedule 28.08.2017
comment
Тем временем я обнаружил подсказку в разделе часто задаваемых вопросов Google, что ограничение учетных записей служб может будет поднята, если вы вежливо попросите: Свяжитесь со своим менеджером по работе с клиентами, если вам нужно создать более 100 учетных записей служб в проекте.   -  person Robert Lemke    schedule 28.08.2017
comment
Если вы не можете преодолеть ограничение учетной записи службы, вы все равно можете прокси-доступ к данным через единую центральную службу, которая использует 1 учетную запись службы и сама реализует контроль доступа.   -  person sw0rdf1sh    schedule 14.09.2017


Ответы (1)


У нас есть аналогичный вариант использования, и я считаю, что нашел решение этой проблемы. Ключевым моментом является то, что учетным записям служб из других проектов может быть предоставлен доступ к сегментам вашего проекта с поддержкой GCS.

В основном вы будете использовать два типа проектов GCP:

  • Один основной проект, в котором хранятся все данные (сегменты GCS) и все имеющиеся у вас общие ресурсы, например виртуальные машины Compute Engine или службы App Engine.
  • Множество других проектов, каждый из которых имеет только 100 сервисных аккаунтов.

Учетным записям служб из второго типа проектов «пул пользователей» может быть предоставлен доступ к сегментам вашего проекта данных с высокой степенью детализации (1 учетная запись службы -> 1 сегмент). Когда последний пул пользователей приблизится к пределу в 100, просто создайте новый проект и начните добавлять туда новые учетные записи служб.

person sw0rdf1sh    schedule 16.09.2017
comment
Спасибо, это определенно вариант. Тем временем для нашей цели нам предоставили 1000 сервисных аккаунтов - это долгий путь, чтобы получить одобрение, но это возможно. Однако, если мы когда-нибудь снова превысим этот предел, создание нескольких проектов может оказаться простым способом справиться с этим. - person Robert Lemke; 16.09.2017