GCP PubSub Разрешения для темы - PullRequest
       49

GCP PubSub Разрешения для темы

0 голосов
/ 27 января 2019

Я пытаюсь создать учетную запись службы, которая имеет разрешение только для определенной темы pubsub.

Я создаю тему:

gcloud pubsub topics create mytopic

Затем создайте учетную запись службы:

gcloud iam service-accounts create my-user \
  --display-name "my-user"

Затем пытается предоставить разрешение этой учетной записи службы:

gcloud alpha pubsub topics add-iam-policy-binding mytopic \
      --member="serviceAccount:my-user@myproject.iam.gserviceaccount.com" \
      --role='roles/pubsub.editor'

Получить файл json учетной записи службы:

gcloud iam service-accounts keys create \
  --iam-account "my-user@myproject.iam.gserviceaccount.com" \
  service-account.json

Используя эту учетную запись json, мне отказывают в создании подписки на эту тему.

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

gcloud projects add-iam-policy-binding myproject \
  --member="serviceAccount:my-user@myproject.iam.gserviceaccount.com" \
  --role='roles/pubsub.editor'

Я пытаюсь использовать это, и это не похоже на работу: https://cloud.google.com/sdk/gcloud/reference/alpha/pubsub/topics/add-iam-policy-binding

Я что-то здесь упускаю? Я бы подумал, что для привязки роли этого пользователя к теме будет достаточно разрешений?

Ответы [ 2 ]

0 голосов
/ 31 июля 2019

для создания подписок вам нужно

pubsub.subscriptions.create on the containing Cloud project and pubsub.topics.attachSubscription on the requested topic

, так как pubsub.subscriptions.create содержится только в roles/ pubsub.editor...admin), вы можете создать собственную роль, чтобы не отдавать delete и пр. по темам и т. д.

по запрашиваемой теме, вы можете предоставить pubsub.subscriber для предоставления attachSubscription

через https://cloud.google.com/pubsub/docs/access-control#tbl_perm

0 голосов
/ 29 января 2019

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

С помощью этой команды: https://cloud.google.com/sdk/gcloud/reference/alpha/pubsub/subscriptions/add-iam-policy-binding

...