AWS Glue Job получает отказ в доступе при записи в S3 - PullRequest
0 голосов
/ 28 июня 2019

У меня есть задание Glue ETL, созданное CloudFormation.Это задание извлекает данные из RDS Aurora и выполняет запись в S3.

Когда я запускаю это задание, появляется сообщение об ошибке ниже.

Задание имеет роль службы IAM.

Эта роль службы позволяет

  1. Служба склеивания и RDS,
  2. предполагает использование arn: aws: iam :: aws: policy / AmazonS3FullAccess и arn: aws: iam :: aws: policy / service-role / AWSGlueServiceRole и
  3. имеет полный диапазон действий rds: *, kms: * и s3: *, разрешающих соответствующие ресурсы RDS, KMS и S3.

У меня та же ошибка, независимо от того, зашифрована ли корзина S3 с помощью AES256 или aws: kms.

Я получаю ту же ошибку, независимо от того, имеет ли задание конфигурацию безопасности или нет.

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

Чего мне не хватает?Вот полный журнал ошибок

"/ mnt / yarn / usercache / root / appcache / application_1 ... 5_0002 / container_15 ... 45_0002_01_000001 / py4j-0.10.4-src.zip / py4j /protocol.py ", строка 319, в get_return_value py4j.protocol.Py4JJavaError: Произошла ошибка при вызове o145.pyWriteDynamicFrame.: org.apache.spark.SparkException: задание прервано из-за сбоя этапа: задание 3 на этапе 2.0 не выполнено 4 раза, последний сбой: потерянное задание 3.3 на этапе 2.0 (TID 30, ip-10 -.... us-west-2.compute.internal, исполнитель 1): com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: доступ запрещен (услуга: Amazon S3; код состояния: 403;Код ошибки: AccessDenied; идентификатор запроса: F ... 49), расширенный идентификатор запроса S3: eo ... wXZw = at com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse (AmazonHttpClient.java:1588

Ответы [ 2 ]

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

К сожалению, ошибка не говорит нам о многом, за исключением того, что она терпит неудачу во время записи вашего DynamicFrame.

Существует только несколько возможных причин для 403, вы можете проверить, выполнили ли вы их все:

  1. Правила политики корзины в контейнере назначения.
  2. Роль IAM нуждается в разрешениях (хотя вы упомянули наличие S3 *)
  3. Если это кросс-аккаунт, тогда есть еще что проверить в отношении таких вещей, как allow-policy для корзины и пользователя.(Как правило, доверие для идентификатора учетной записи Canonical является самым простым)
  4. Я не знаю, насколько сложными могут быть ваши документы политики для роли и корзины, но помните, что явное утверждение Deny имеет приоритет над разрешением.
  5. Если проблема связана с KMS, я хотел бы убедиться, что ваша подсеть, выбранная вами для Glue Connection, имеет маршрут для достижения конечных точек KMS (вы можете добавить конечную точку для KMS в VPC)
  6. Убедитесь, что проблема не во временном каталоге, который также настроен для вашей работы или, возможно, операций записи, которые не являются вашими последними.
  7. Убедитесь, что ваша учетная запись является «владельцем объекта» местоположения, в которое вы пишете (обычно это проблема при чтении / записи данных между учетными записями)

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

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

Вы выполнили необходимые настройки группы параметров RDS, я не вижу ссылки на это в вашем вопросе?Я предполагаю, что вы пропустили определенные конфигурации в группах параметров RDS для чтения / записи из S3 & RDS.Если это не сделано, обратитесь по этой ссылке и выполните необходимые настройки.Это должно работать.

...