Google Dataflow может писать куда угодно без разрешения - PullRequest
0 голосов
/ 06 января 2020

Я создал учетную запись службы и назначил временную корзину роль разработчика потока данных, роль средства просмотра вычислений и роль администратора объекта хранения. Затем я создал еще одну группу с моей учетной записью администратора (которая имеет роль владельца проекта) с именем gs: // outputbucket. Наконец, я отправляю задание потока данных со следующим cmd:

export GOOGLE_APPLICATION_CREDENRTIALS=<path-to-credential>
TMPBUCKET=temporarybucket
OUTBUCKET=outputbucket
PROJECT=myprojectid

python -m apache_beam.examples.wordcount \
  --input gs://dataflow-samples/shakespeare/kinglear.txt \
  --output gs://$OUTBUCKET/wordcount/outputs \
  --runner DataflowRunner \
  --project $PROJECT \
  --temp_location gs://$TMPBUCKET/tmp/

Аналогичным образом я создаю задание потока данных из существующего Cloud Pub / Sub в шаблон BigQuery. Он может записывать в любую таблицу в том же проекте без разрешения. Кто-нибудь может объяснить, как это могло быть возможно?

Кроме того, это потенциальная проблема безопасности в соответствии с Принципом минимальных привилегий Google ?


Ответы [ 2 ]

1 голос
/ 06 января 2020

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

export GOOGLE_APPLICATIONS_CREDENRTIALS=<path-to-credential>

, используется для создания конвейера потока данных, но не используется работниками конвейера.

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

0 голосов
/ 06 января 2020

Это зависит от того, какую учетную запись службы вы используете для запуска задания или от пользователя (я полагаю)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...