Разрешить нескольким учетным записям служб доступ к нескольким сегментам хранилища
У меня есть несколько устройств, и каждое будет передано клиентам. Мне нужно, чтобы каждое устройство имело доступ для чтения к некоторым сегментам хранилища Google Cloud. Я хотел бы, чтобы у каждого устройства (или, по крайней мере, у каждого клиента) была своя учетная запись службы, чтобы я мог отслеживать/отменять доступ, если мне нужно.
Я не уверен, как лучше всего этого добиться. Я мог бы создать учетную запись службы для каждого устройства и разрешить каждую учетную запись службы в каждом сегменте, но это кажется утомительным. Я думал о двух решениях:
- Создайте каждую учетную запись устройства с ролью средства просмотра объектов хранилища, ограниченной тегом, который будет установлен для каждого сегмента. Однако я не нашел, как установить тег для сегмента и использовать его для ограничения роли.
Разрешить каждой учетной записи устройства олицетворять другую учетную запись службы «читатель корзины», которой будет разрешено чтение в каждой корзине. Однако мне придется разрешить каждой учетной записи выдавать себя за учетную запись службы «читатель корзины».Олицетворение учетной записи службы не позволяет использовать долгосрочный токен.
Каково лучшее решение и как это сделать? Есть ли другой способ, о котором я не подумал?
2 ответа
Насколько я понимаю, вы хотите предоставить доступ для чтения для каждого устройства в сегментах хранилища Google Cloud. Однако вы также обеспокоены растущей нагрузкой и ограничениями. Поэтому, принимая во внимание различные проблемы, с которыми вы столкнулись, я делюсь некоторыми аспектами принятого вами подхода следующим образом:
1: Поскольку вы уже создали сценарий, который разрешает учетную запись службы для каждого помеченного сегмента. Поэтому для получения более подробной информации об управлении учетной записью службы вы можете обратиться к этой общедоступной документации:https://cloud.google.com/iam/docs/creating-managing-service-accounts .
2. Вы также можете изменить роль IAM на Средство просмотра объектов хранилища для определенной учетной записи службы в определенном сегменте, выполнив команду GSUtil:
gsutil iam ch serviceAccount: [электронная почта защищена] :storage.objectViewer gs://my-project/my-bucket
Для получения дополнительной информации о том, как создавать роли IAM для учетной записи службы в определенном сегменте, вы можете обратиться к этой общедоступной документации:https://cloud.google.com/storage/docs/access-control/using-iam-permissions .
3. Если вы исчерпали 100 сервисных учетных записей, вы можете запросить изменения квоты на странице «Квоты» в Cloud Console. Запрос на увеличение квоты не взимается. Ваши затраты увеличиваются только в том случае, если вы используете больше ресурсов. Для получения более подробной информации вы можете обратиться к этой документации:https://cloud.google.com/compute/quotas#requesting_additional_quota . Чтобы узнать ограничения квот для всех доступных ресурсов, вы можете обратиться к этой общедоступной документации:https://cloud.google. .com/iam/quotas
Надеюсь, это вам поможет!
Наконец, я решил использовать 1 учетную запись/клиента, добавить метку к каждому сегменту, который мне нужен, чтобы разрешить доступ, и просто написал сценарий, который разрешает учетную запись службы для каждого помеченного сегмента.
Последнее, что меня беспокоит, — это ограниченное количество сервисных аккаунтов на проект (1000), но я выясню, когда получу +1000 клиентов.