Ошибка операции Datapro c: INVALID_ARGUMENT: пользователь не авторизован для работы в качестве учетной записи службы - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь запустить конвейер из Cloud Data Fusion, но получаю следующую ошибку:

io.cdap.cdap.runtime.spi.provisioner.dataproc.DataprocRuntimeException: Dataproc operation failure: INVALID_ARGUMENT: User not authorized to act as service account 'XXXXXXXX-compute@developer.gserviceaccount.com'. To act as a service account, user must have one of [Owner, Editor, Service Account Actor] roles. See https://cloud.google.com/iam/docs/understanding-service-accounts for additional details.

Кто-то уже столкнулся с этой ошибкой?

Ответы [ 3 ]

2 голосов
/ 04 августа 2020

Эта ошибка связана с отсутствием роли пользователя учетной записи службы (roles/iam.serviceAccountUser), связанной с учетной записью пользователя / службы, используемой для запуска задания DataPro c.

Чтобы преодолеть эту ошибку, вам необходимо go в Консоль политики IAM и присвоить роль пользователя учетной записи службы , как описано здесь , текущему учетная запись пользователя / службы, которую вы используете для выполнения задания. Как показано ниже:

  1. Go в IAM и консоль администратора
  2. Нажмите IAM
  3. Выберите участника, которого вы используете для выполнения задания
  4. Щелкните значок перо справа от информации об участнике
  5. Добавьте роль пользователя учетной записи службы

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

Примечание : в шаге 3, вы также можете дать конкретному пользователю (по электронной почте) roles/iam.serviceAccountUser, нажав + ДОБАВИТЬ (в верхней части консоли). Затем напишите электронное письмо и выберите разрешение. Хотя, я должен подчеркнуть, что это разрешение будет дано на уровне проекта. Таким образом, этот пользователь сможет выдавать себя за любую из существующих учетных записей служб.

1 голос
/ 24 августа 2020

Я хотел бы добавить, что роль пользователя учетной записи службы должна быть добавлена ​​к учетной записи службы Cloud Data Fusion, которая была автоматически создана Data Fusion при включении API.

В моем случае участник вызывается что-то вроде:

service-############@gcp-sa-datafusion.iam.gserviceaccount.com

И его имя: Учетная запись службы Cloud Data Fusion

0 голосов
/ 25 августа 2020

В моем случае ошибка вводила в заблуждение. Несмотря на то, что в сообщении об ошибке говорилось, что проблема связана с отсутствием прав для пользователя «XXXXXXXX-compute@developer.gserviceaccount.com», реальная проблема была устранена только после того, как я предоставил роль службе - ####### #####@gcp-sa-datafusion.iam.gserviceaccount.com пользователь. Я выполнил шаги, которые предоставил @Alexandre Moraes, чтобы предоставить правильный уровень доступа к учетной записи службы Cloud Data Fusion.

...