Невозможно использовать кластер Dataproc для многопользовательского с GCS с ограниченным доступом для пользователей - PullRequest
0 голосов
/ 29 октября 2018

@ Деннис-Хо

Использование нестандартной учетной записи службы в Google Cloud dataproc

В продолжение вышеуказанной проблемы

Я хотел настроить кластер dataproc для многопользовательского режима. Поскольку вычислительный механизм кластера Dataproc использует учетные данные службы по умолчанию или учетную запись настраиваемой службы для подключения к корзине хранения с использованием --properties core:fs.gs.auth.service.account.json.keyfile, который не имеет никакого отношения к принципалам пользователя, которые отправляют задания, или я не смог найти вариант для его управления , который делает кластер dataproc небезопасным и создает проблему , он вводит другой уровень косвенности в многопользовательской среде, когда используемый файл ключа не соответствует принципалу.

В моем случае мы отправляем задание, используя gcloud dataproc jobs submit hadoop, потому что моя мысль состоит в том, чтобы управлять доступом к кластеру dataproc с помощью ролей IAM, но во время передачи задания участники не переходят в кластер hadoop, а также в gcloud cli. не выполняет никакой проверки доступа к хранилищам на стороне клиента, задание всегда выполняется как пользователь root. Могу ли я узнать, как привязать пользователей к их учетной записи службы? У вас есть какое-либо решение для этого случая?

Все, что нам нужно, - это Hadoop Map Reduce, отправленное пользователями, использующими gcloud dataproc jobs submit hadoop, должно иметь возможность использовать только те области памяти или папку, к которым у пользователя есть доступ.

Ток:

Задания gcloud dataproc (IAM - основной пользователь) -> Кластер Dataproc (IAM - основной пользователь) -> (SA по умолчанию / пользовательский) -> Ведро хранения

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

Обязательно:

Задания gcloud dataproc (IAM - основной пользователь) -> Кластер Dataproc (IAM - основной пользователь) -> (IAM - основной пользователь) -> Область хранения

Пользователь имеет доступ к отправке заданий в кластер Dataproc. может использовать только те хранилища, к которым имеет доступ учетная запись пользователя.

До сих пор я не мог найти способ сделать это. Можете ли вы помочь мне в этом

Есть ли какое-нибудь решение или решение для этой проблемы?

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете попробовать это:

  1. Добавить пользовательскую роль, например, создать роль A для BucketA / roleB для BucketB
  2. Назначить служебную учетную запись или IAM для этой роли. например, user1, user2 roleA user1, user3 roleB
  3. С помощью разрешения Изменить сегмент добавьте члена к определенной роли, например, bucketA -> roleA

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

...