Проблемы при чтении и записи зашифрованного фрейма данных KMS в корзину S3 с pyspark - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь записать фрейм данных Spark в корзину AWS S3 с помощью Pyspark и получаю исключения, что указанный метод шифрования не поддерживается.В корзине есть настройка шифрования на стороне сервера.

У меня следующие пакеты запускаются из spark-default.conf: spark.jars.packages com.amazonaws: aws-java-sdk: 1.9.5, org.apache.hadoop: hadoop-aws: 3.2.0

Просмотрите этот существующий поток: Не поддерживает Spark / Hadoop шифрование SSE-KMS на AWS S3 и упоминает, что вышеприведенная версиядолжен поддерживать шифрование SSE-KMS.

Я также включил файл core-site.xml, чтобы свойство 'fs.s3a.server-side-encryption-алгоритма' было установлено в 'SSE-KMS'

Но я все еще получаю ошибку.Обратите внимание, что для корзин без SSE-KMS это работает нормально.

Сообщение об ошибке: AmazonS3Exception: Код состояния: 400, Сервис AWS: Amazon S3, Код ошибки AWS: InvalidArgument, Сообщение об ошибке AWS:Указанный метод шифрования не поддерживается

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Спасибо за ваш вклад, Стив.Добавление в файл spark-defaults.conf следующего исправило нашу проблему:

spark.hadoop.fs.s3a.server-side-encryption-алгоритма AES256

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

Hadoop 3.2.0 полностью поддерживает SSE-KMS, поэтому с какой бы проблемой она ни была: ключ SSE-KMS, используемый в конфигурации, ваши права доступа к нему или какая-то другая особенность (например, ключ нев том же регионе, что и корзина).

Но: этот выпуск построен на AWS 1.11.375 mvnrepo hadoop-aws .Смешивание банок обычно обречено.Это может быть фактором, а может и не быть.

Вы получили 400 с дальнего конца, что означает, что что-то там было отклонено.

Рекомендовать

  1. Вы смотритена странице Устранение неполадок s3a
  2. Загрузите cloudtore и запустите его хранилище для начальной загрузки диагностики подключения
  3. попробуйте использовать интерфейс командной строки AWS для работы с данными с помощьюта же настройка

Примечание: совершенно неважно, какие настройки fs.s3a.encryption используются при попытке чтения данных -S3 знает используемый ключ KMS и автоматически использует его для расшифровки, если у вас есть разрешения.Это хороший способ проверить, есть ли у вас права на чтение ключа

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