Ограничить доступ пользователей к теме / подписке в google pub / sub

В моем проекте проект A публикует сообщение, а проект B извлекает его из облака Google. У меня несколько клиентов B, и я хочу ограничить их определенной темой и подпиской. Я пробовал условия IAM, но они не работают для pubsub и, похоже, подходят только для pubsub lite. Кто-нибудь знает, как ограничить доступ пользователей к определенной теме и подписке?




Ответы (1)


Вы можете назначать роли на разных уровнях:

  • Организация
  • Папка
  • Проект
  • Ресурс

Когда вы переходите на страницу IAM, вы предоставляете права на уровне проекта и, таким образом, получаете доступ ко всем ресурсам проекта.

В этом случае вы должны предоставить учетную запись службы проекта B роли pubsub в проекте A. Таким образом, учетная запись службы имеет доступ ко всем темам / подпискам.


Чтобы решить эту проблему, вы можете предоставить учетную запись службы только по теме или по подписке (на уровне ресурсов).

  • Перейти на страницу темы или подписки
  • Установите флажок напротив нужного ресурса.
  • Справа, на информационной панели, на вкладке разрешений.
  • Нажмите «Добавить участника», чтобы предоставить учетную запись службы (или учетную запись пользователя) только на этом ресурсе.

введите описание изображения здесь


В качестве альтернативы вы можете использовать метод projects.topics.setIamPolicy API PubSub для установки разрешений на уровне ресурсов.

Если вы не хотите вызывать API напрямую, вы также можете использовать CLI с этой командой

gcloud pubsub topics set-iam-policy TOPIC POLICY_FILE
person guillaume blaquiere    schedule 06.03.2021
comment
Спасибо за ответ. Я увидел это и, поработав с ним час или два, смог реализовать это в своем проекте. - person amir; 07.03.2021