Проблема с разрешениями в Google Cloud Data Fusion - PullRequest
4 голосов
/ 28 июня 2019

Я следую инструкциям в учебном пособии Cloud Data Fusion и все вроде работает, пока я не попытаюсь запустить конвейер прямо в конце.Разрешения API Cloud Data Fusion Service устанавливаются для учетной записи управляемой службы Google в соответствии с инструкциями.Функция предварительного просмотра конвейера работает без проблем.

Однако при развертывании и запуске конвейера происходит сбой через пару минут.Вскоре после изменения состояния от подготовки к выполнению конвейер останавливается со следующей ошибкой разрешений:

   com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
    {
      "code" : 403,
      "errors" : [ {
        "domain" : "global",
        "message" : "xxxxxxxxxxx-compute@developer.gserviceaccount.com does not have storage.buckets.create access to project X.",
        "reason" : "forbidden"
      } ],
      "message" : "xxxxxxxxxxx-compute@developer.gserviceaccount.com does not have storage.buckets.create access to project X."
    }

xxxxxxxxxxx-compute@developer.gserviceaccount.com - учетная запись службы Compute Engine по умолчанию для моего проекта.

"Project X" не является моим, хотя я не представляю, почему код запуска конвейера пытается создать там сегмент, он успешно создает временные сегменты (один называется df-xxx, а другой -dataproc-xxx) в моем проекте до того, как он провалится.

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

Ответы [ 2 ]

8 голосов
/ 03 июля 2019

Я думаю, что смог воспроизвести это. Происходит то, что плагин BigQuery Source сначала создает временную рабочую корзину GCS для экспорта данных, и я подозреваю, что она пытается создать ее в идентификаторе проекта набора данных по умолчанию вместо вашего собственного проекта как это должно.

В качестве обходного пути, создайте корзину GCS в своей учетной записи, а затем в конфигурации источника BigQuery своего конвейера установите для конфигурации «Временное имя корзины» значение «gs: // »

0 голосов
/ 29 июня 2019

Вам не хватает настройки шагов разрешений после создания экземпляра.Инструкции по предоставлению прав доступа учетной записи службы приведены на этой странице https://cloud.google.com/data-fusion/docs/how-to/create-instance

...