2017-01-10 3 views
0

Я знаю, что этот вопрос, возможно, был задан несколько раз, но я пробовал эти решения и не тренировался. Поэтому, спрашивая его в новой теме для определенного решения.Код ошибки Amazon S3 403 Запрещен кластером EMR

Я создал пользователя IAM с разрешением только для чтения S3 (Get и List для всех ресурсов S3), но когда я пытаюсь получить доступ к S3 из кластера EMR с помощью команды HDFS, он генерирует исключение «Error Code 403 Forbidden» для определенных папок. Люди в другой должности ответили, что это вопрос разрешения; который я не нашел правильного решения, так как это «Запрещено» вместо «Доступ запрещен». Поведение этой ошибки появилось только для определенных папок (содержащих объекты) внутри ведра и для определенных пустых папок. Было отмечено, что, если я использую собственные вызовы API, то он работает нормально следующим образом:

Исключение «Forbidden» при использовании S3A вызовов:

hdfs dfs -ls s3a://<bucketname>/<folder>

Нет ошибок при использовании s3 выходца вызывает s3n и s3:

hdfs dfs -ls s3://<bucketname>/<folder>

hdfs dfs -ls s3n://<bucketname>/<folder>

Подобное поведение наблюдалось и для пустых папок, и я понимаю, что на S3 только объекты являются физическими файлами, тогда как остальные «ведра и папки» являются просто владельцем места. Однако, если я создаю новую пустую папку, то вызовы s3a не выбрасывают это исключение.

P.S. - Ключ доступа к корневому IAM превосходит это исключение.

ответ

0

Я бы порекомендовал вам подать JIRA по проблемам.apache.org, проект HADOOP, компонент fs/s3 с точной версией хаоса, которую вы используете. Добавьте трассировку стека в качестве первого комментария, так как это единственный способ начать работу над тем, что происходит.

FWIW, мы не тестировали ограниченные разрешения, кроме простых только для чтения и R/W; смешение разрешений по пути неизбежно приведет к разрыву вещей, так как клиентский код ожидает, что он сможет использовать HEAD, GET & СПИСОК что-нибудь в ковше.

BTW, клиенты Hadoop S3 все пустые пустые каталоги, создавая 0 байт объектов с суффиксом «/», e/g «папка /»; затем используйте HEAD, чтобы исследовать пустую ведро. Когда данные добавляются под пустым каталогом, макет родительского каталога DELETE-d.

+0

Благодарим вас за ответ, и я открою для него JIRA. –

Смежные вопросы