Запись в корзину S3 с ограниченными разрешениями с использованием Apache Spark - PullRequest
1 голос
/ 09 июля 2020

Я использую протокол S3a для записи в корзину, которая принадлежит кому-то другому. Мне разрешено использовать только ограниченный набор действий S3 (я не знаю, какие именно).

При попытке записать данные с помощью искры, используя AWS Glue, я получаю сообщение об ошибке 403 : AccessDenied .

Использование s3distcp работает из EMR, но мне придется изменить настройку инфраструктуры. Использование корзины со всеми разрешенными действиями S3 также работает, но я предполагаю, что владелец корзины не захотел бы изменять разрешения.

Есть ли способ сообщить Spark, чтобы он записывал данные, не требуя наличия такого количества разрешений?

Изменить: Spark требуется разрешение S3: DeleteObject. Есть ли способ обойти это?

Вот код:

sparkSession.sparkContext.hadoopConfiguration.set("fs.s3a.bucket.some-bucket.access.key", "accesskey")
sparkSession.sparkContext.hadoopConfiguration.set("fs.s3a.bucket.some-bucket.secret.key", "secretkey")

data.write.csv(s"s3a://some-bucket/test")

1 Ответ

2 голосов
/ 10 июля 2020

Spark требуется разрешение S3: DeleteObject. Есть ли способ обойти это?

нет

Необходимо

  • удалить объекты маркеров каталога
  • реализовать rename () как copy + delete
  • очистить каталоги попыток задания
  • удалить деревья каталогов перед записью в них

Had oop 3.1+ S3A коннектор должен уметь справляться без удалить доступ на всем пути вверх по дереву. Договоритесь с группой администраторов о том, чтобы ваша учетная запись IAM имела права на удаление на пути к сегменту, в котором идет весь вывод

...