Доступ к файлу s3 запрещен для больших файлов с использованием Cyberduck

3119
user1525248

Когда я использую пользовательскую политику ниже, я получаю следующую ошибку при загрузке больших файлов (1G и более) с помощью Cyberduck

доступ к файлу запрещен. пожалуйста, обратитесь к поставщику услуг веб-хостинга за помощью

Однако загрузка небольших файлов (около 200 МБ) не является проблемой, также у меня нет проблем с созданием новых папок и файлов с Cyberduck и теми же учетными данными для входа. Так что у меня определенно есть доступ для чтения / записи.

Кроме того, если я добавляю предварительно определенную политику (AmazonS3FullAccess), то загрузка больших файлов также работает нормально. Я немного потерян здесь. Как моя политика ограничивает загрузку больших файлов? Что мне не хватает?

моя политика

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::photoshoot2016" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::photoshoot2016/*" } ] } 

Политика AmazonS3FullAccess

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] } 
1

1 ответ на вопрос

2
user1525248

Я продолжал копаться и обнаружил, что Amazon рекомендует использовать многоэтапную загрузку для всех файлов размером более 100M ( http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html ), что, как мне кажется, делается Cyberduck.

Все, что мне нужно было сделать, это добавить отсутствующие разрешения (ListMultipartUploadParts и ListBucketMultipartUploads), чтобы включить многочастную загрузку. Теперь моя политика выглядит так

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListMultipartUploadParts" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListMultipartUploadParts", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::photoshoot2016" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::photoshoot2016/*" } ] } 

Я нашел основную подсказку, включив ведение журнала, в котором было много ошибок «AccessDenied 243» для REST.GET.UPLOADS. Amazon Simulator Policy также оказался очень полезным, чтобы выяснить, чего не хватает, и где его следует разместить.