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


1

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

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

Однак завантаження невеликих файлів (близько 200 млн) не є проблемою, також у мене немає проблем із створенням нових папок і файлів із кібердуком та тими ж обліковими записами для входу. Тож у мене, безумовно, є доступ для читання / запису.

Крім того, якщо я додаю заздалегідь задану політику (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": "*"
    }
  ]
}

Відповіді:


2

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

Все, що мені потрібно було зробити в підсумку - це додати відсутні права доступу (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 Policy Simulator також виявився дуже корисним, щоб з’ясувати, чого не вистачає і де його слід розмістити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.