3fs: сообщение AWS: доступ запрещен Ubuntu 11.10 - PullRequest
1 голос
/ 30 января 2012

я устанавливаю s3fs, как описано здесь http://code.google.com/p/s3fs/wiki/InstallationNotes

затем я создаю пользователя bucket_user

затем поместите его accessKeyId: secretAccessKey в / etc / passwd-s3fs

это S3, я создаю ведро super_bucket

и установите его политику:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AddCanned",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::234234234234:user/bucket_user"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::super_bucket/*"
        }
    ]
}

затем на моем сервере / usr / bin / s3fs super_bucket / mnt / s3 /

и получите ответ:

s3fs: CURLE_HTTP_RETURNED_ERROR

s3fs: код ошибки HTTP: 403

s3fs: Код ошибки AWS: AccessDenied

s3fs: Сообщение AWS: доступ запрещен

Используемая версия s3fs (s3fs --version): 1.61

Версия используемого предохранителя (pkg-config --modversion fuse): 2.8.4

Системная информация (uname -a): Linux Ubuntu-1110-oneiric-64-minimal 3.0.0-14-сервер # 23-Ubuntu SMP Пн 21 ноября 20:49:05 UTC 2011 x86_64 x86_64 x86_64 GNU / Linux

Distro (cat / etc / issue): Ubuntu 11.10 \ n \ l

Сообщения системного журнала s3fs (grep s3fs / var / log / syslog): пусто

поэтому я начинаю с начала

на сервере

nano ~ / .passwd-s3fs

cmd + v accessKeyId: secretAccessKey

chmod 600 ~ / .passwd-s3fs

в ведре политики { "Version": "2008-10-17", "Statement": [ { "Sid": "AddPerm", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::super_bucket/*", "arn:aws:s3:::super_bucket" ] } ] }

"сохранить"

/ usr / bin / s3fs super_bucket / mnt / s3 /

и снова получите

s3fs: Сообщение AWS: доступ запрещен

Ответы [ 2 ]

4 голосов
/ 16 февраля 2012

и никто не сказал, что мне нужно установить политику пользователя в AWS IAM

1 голос
/ 30 января 2012

Обновление

Анализ

По-видимому, s3fs имеет проблемы с поддержкой IAM вплоть до самой последней стабильной версию 1.61, которую вы используете, пожалуйста, просмотрите вопрос о разрешениях пользователей IAM для подробностей, в частности комментарий 4 :

Очевидно, есть звонок на [ListAllMyBuckets () ], необходимый для определения наличия запрошенного сегмента перед попыткой монтирования.

Теперь ListAllMyBuckets () - это операция наservice вместо bucket или object , которые являются единственными объектами, на которые в настоящее время направлен ваш оператор Resource, таким образом, использование ListAllMyBuckets () эффективноОтклонено вашей текущей политикой.

Решение

Как указано в комментарий 4 , вы должны добавить дополнительный фрагмент политики, чтобы выполнить это требование для вашей версии s3fs соответственно:

"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:ListAllMyBuckets",
        "Resource": "arn:aws:s3:::*"
    }
]

В качестве альтернативы вы можете собрать s3fs версии 1.61 из исходного кода после применения патча, предоставленного в comment 9 , который предположительно решает проблему (хотя я сам не тестировал патч).Очевидно, что более поздняя версия может также включать исправление, см. комментарий 11 ff .

Удачи!


Учитываяпредполагаемая функциональность (т. е. монтировать корзину как локальную файловую систему для чтения / записи ), s3fs предположительно требует доступа и к самому контейнеру, а не только к содержащимся в нем объектам, которые обрабатываютсяотдельно - попробуйте заменить ваш оператор Resource следующим:

"Resource": [
    "arn:aws:s3:::super_bucket",
    "arn:aws:s3:::super_bucket/*",
]

Первый ресурс предназначен для корзины, а второй - для объекта, содержащегося в нем.

...